Articulo de referencia

Direccionamiento basado en capacidades

En informática , el direccionamiento basado en capacidades es un esquema utilizado por algunos ordenadores para controlar el acceso a la memoria como una implementación eficient...

En informática , el direccionamiento basado en capacidades es un esquema utilizado por algunos ordenadores para controlar el acceso a la memoria como una implementación eficiente de la seguridad basada en capacidades . En un esquema de direccionamiento basado en capacidades, los punteros se reemplazan por objetos protegidos (denominados capacidades ) que especifican tanto una ubicación en la memoria como los derechos de acceso que definen el conjunto de operaciones que se pueden realizar en dicha ubicación. [ 1 ] Las capacidades solo se pueden crear o modificar mediante el uso de instrucciones privilegiadas que solo pueden ser ejecutadas por el núcleo u otro proceso privilegiado autorizado para ello. De este modo, un núcleo puede limitar el acceso del código de la aplicación y otros subsistemas a las porciones mínimas necesarias de la memoria (y deshabilitar el acceso de escritura cuando corresponda), sin necesidad de utilizar espacios de direcciones separados y, por lo tanto, sin requerir un cambio de contexto cuando se produce un acceso.

Implementaciones prácticas

Existen dos técnicas disponibles para su implementación:

  • Se requiere que las capacidades se almacenen en un área específica de la memoria a la que el proceso que las utilizará no pueda escribir. Por ejemplo, el sistema Plessey 250 requería que todas las capacidades se almacenaran en segmentos de lista de capacidades.
  • Amplía la memoria con un bit adicional, modificable solo en modo supervisor, que indica que una ubicación específica es una capacidad. Esta es una generalización del uso de bits de etiqueta para proteger los descriptores de segmento en los sistemas Burroughs Large Systems , y se utilizó para proteger las capacidades en el IBM System/38 .

Direccionamiento de capacidades en los sistemas IBM System/38 y AS/400

El System/38 admitía dos tipos de punteros de objeto: punteros autorizados y punteros no autorizados . Los primeros correspondían a la implementación de la plataforma del direccionamiento basado en capacidades. [ 2 ] Ambos tipos de punteros solo podían manipularse mediante instrucciones privilegiadas y se diferenciaban en si las autorizaciones de objeto (es decir, los derechos de acceso) estaban codificadas en el contenido del puntero. Los punteros no autorizados no codificaban las autorizaciones de objeto y requerían que el sistema operativo verificara la autorización del objeto por separado para determinar si se permitía el acceso al mismo. Los punteros autorizados codificaban las autorizaciones de objeto, lo que significaba que la posesión del puntero implicaba acceso, y el sistema operativo no tenía que verificar la autorización por separado. Los punteros autorizados eran irrevocables por diseño: si se alteraban las autorizaciones del objeto, esto no alteraría las autorizaciones codificadas en ningún puntero autorizado que ya existiera.

Las primeras versiones del sistema operativo OS/400 para AS/400 también admitían punteros autorizados y, por extensión, direccionamiento basado en capacidades. Sin embargo, los punteros autorizados se eliminaron en la versión V1R3 de OS/400, ya que su naturaleza irrevocable se consideró un riesgo de seguridad. [ 3 ] Todas las versiones posteriores de OS/400 (más tarde IBM i) se basan exclusivamente en punteros no autorizados que no admiten direccionamiento basado en capacidades.

Cronología de los sistemas que adoptan el direccionamiento basado en capacidades

Referencias

  1. Levy, Henry M. (16 de mayo de 2014). «Capability and Object-Based System Concepts» (PDF) . Capability-Based Computer Systems . Digital Press. págs.  3-4. ISBN 978-1-4831-0106-4.
  2. Levy, Henry M. (16 de mayo de 2014). "El sistema IBM/38" (PDF) . Sistemas informáticos basados ​​en capacidades . Digital Press. ISBN 978-1-4831-0106-4.
  3. Soltis, Frank (1997). Inside the AS/400 – Featuring the AS400e series (2.ª ed.). Duke Press. ISBN  978-1-882419-66-1.

Lecturas adicionales

  • Fabry, RS (1974). "Direccionamiento basado en capacidades" . Communications of the ACM . 17 (7): 403– 412. doi : 10.1145/361011.361070 . S2CID 5702682 . 
  • Wulf, W.; Cohen, E.; Corwin, W.; Jones, A.; Levin, R.; Pierson, C.; Pollack, F. (junio de 1974). "HYDRA: el núcleo de un sistema operativo multiprocesador" . Communications of the ACM . 17 (6): 337–345 . doi : 10.1145/355616.364017 . ISSN 0001-0782 . S2CID 8011765 .  
  • Denning, PJ (diciembre de 1976). "Sistemas operativos tolerantes a fallos". ACM Computing Surveys . 8 (4): 359– 389. doi : 10.1145/356678.356680 . ISSN 0360-0300 . S2CID 207736773 .  
  • Levy, Henry M. (1984). Sistemas informáticos basados ​​en capacidades . Maynard, Mass: Digital Press. ISBN 978-0-932376-22-0.
  • Linden, Theodore A. (diciembre de 1976). "Estructuras de sistemas operativos para respaldar la seguridad y el software confiable". ACM Computing Surveys . 8 (4): 409– 445. doi : 10.1145/356678.356682 . hdl : 2027/mdp.39015086560037 . ISSN 0360-0300 . S2CID 16720589 .  El mismo documento que el informe para el NIST de EE. UU.
  • Berstis, Viktors (6-8 de mayo de 1980). "Seguridad y protección de datos en el IBM System/38" . Actas del 7.º simposio anual sobre arquitectura de computadoras . La Baule, Estados Unidos. pp. 245-252 . doi : 10.1145/800053.801932 . 
  • Sincoskie, W. David ; Farber, David J. (julio de 1980). "SODS/OS: Sistema operativo distribuido para la serie IBM/1". ACM SIGOPS Operating Systems Review . 14 (3): 46– 54. doi : 10.1145/850697.850704 . S2CID 14245116 . 
  • Myers, GJ ; Buckingham, BRS (octubre de 1980). "Una implementación de hardware de direccionamiento basado en capacidades" . ACM SIGOPS Operating Systems Review . 14 (4): 13–25 . doi : 10.1145/641914.641916 . S2CID 17390439 . 
  • Houdek, ME; Soltis, FG ; Hoffman, RL (mayo de 1981). "Soporte de IBM System/38 para direccionamiento basado en capacidades" . Actas del 8.º Simposio Internacional de Arquitectura de Computadoras de la ACM . ACM/IEEE. págs. 341–348 . 
  • Buzzard, GD; Mudge, TN (agosto de 1983). Sistemas informáticos basados ​​en objetos y el lenguaje de programación Ada (Informe). Universidad de Michigan – Laboratorio de Investigación en Computación y Laboratorio de Investigación en Robótica, Departamento de Ingeniería Eléctrica e Informática. hdl : 2027.42/3992 .
  • "Sobre la difusión del enfoque de capacidades" . cap-talk (Lista de correo). Archivado del original el 6 de septiembre de 2015. Consultado el 17 de julio de 2026 .