stringtranslate.com

Singularidad (sistema operativo)

Singularity es un sistema operativo experimental desarrollado por Microsoft Research entre el 9 de julio de 2003, [3] y el 7 de febrero de 2015. [4] Fue diseñado como un sistema operativo de alta confiabilidad en el que se escribieron el kernel , los controladores de dispositivo y el software de aplicación . en código administrado . La seguridad interna utiliza seguridad de tipos en lugar de protección de memoria de hardware .

Operación

El código de distribución de interrupciones x86 de nivel más bajo está escrito en lenguaje ensamblador y C. Una vez que este código ha hecho su trabajo, invoca el kernel, cuyo sistema de ejecución y recolector de basura están escritos en Sing# (una versión extendida de Spec#, en sí misma una extensión de C# ) y se ejecuta en modo desprotegido. [5] : 14  [6] : 4  La capa de abstracción de hardware está escrita en C++ y se ejecuta en modo protegido. También hay algo de código C para manejar la depuración. El sistema básico de entrada/salida ( BIOS ) de la computadora se invoca durante la etapa de arranque en modo real de 16 bits ; Una vez en modo de 32 bits , Singularity nunca vuelve a invocar el BIOS, pero invoca los controladores de dispositivo escritos en Sing#. Durante la instalación, los códigos de operación del lenguaje intermedio común (CIL) se compilan en códigos de operación x86 utilizando el compilador Bartok . [6] : 11 

Diseño de seguridad

Singularity es un sistema operativo de microkernel . A diferencia de la mayoría de los microkernels históricos, sus componentes se ejecutan en el mismo espacio de direcciones ( proceso ), que contiene procesos aislados por software (SIP). Cada SIP tiene su propio diseño de datos y códigos y es independiente de otros SIP. Estos SIP se comportan como procesos normales, pero evitan el costo de los cambios de tareas. [5] : 4,11,35 

La protección en este sistema la proporciona un conjunto de reglas llamadas invariantes que se verifican mediante análisis de programas estáticos . Por ejemplo, en los estados invariantes de memoria no debe haber referencias cruzadas (o punteros de memoria) entre dos SIP; La comunicación entre SIP se produce a través de canales de comunicación de orden superior gestionados por el sistema operativo. Las invariantes se verifican durante la instalación de la aplicación. (En Singularity, la instalación la gestiona el sistema operativo).

La mayoría de las invariantes se basan en el uso de lenguajes administrados en memoria más seguros , como Sing#, que tienen un recolector de basura , no permiten punteros arbitrarios y permiten verificar que el código cumpla con una política de seguridad informática determinada .

Estado del proyecto

El primer kit de desarrollo de investigación (RDK) de Singularity, RDK 1.1, se lanzó inicialmente el 4 de marzo de 2008, [1] bajo una licencia de fuente compartida que permite el uso académico no comercial y está disponible en CodePlex . [7] RDK 2.0 se lanzó posteriormente el 14 de noviembre de 2008. [2]

Proyectos similares

Ver también

Referencias

  1. ^ ab "Singularidad RDK 1.1". CódigoPlex . Archivado desde el original el 4 de mayo de 2009 . Consultado el 16 de enero de 2022 .
  2. ^ ab "Lanzamiento inicial de Singularity RDK 2.0 (17067)". CódigoPlex . 14 de noviembre de 2008. Archivado desde el original el 6 de diciembre de 2008 . Consultado el 16 de enero de 2022 .
  3. ^ "Singularidad". Microsoft . Consultado el 16 de enero de 2022 .
  4. ^ "Singularidad RDK". CódigoPlex . Archivado desde el original el 2 de enero de 2018 . Consultado el 16 de enero de 2022 .
  5. ^ ab "Una descripción general del proyecto Singularity" (PDF) . Microsoft . Consultado el 16 de enero de 2022 .
  6. ^ ab Hunt, Galeno; Larus, James. "Singularidad: repensar la pila de software" (PDF) . Microsoft . Investigación de Microsoft Redmond . Consultado el 16 de enero de 2022 .
  7. ^ Ricciuti, Mike (5 de marzo de 2008). "¿Es la 'Singularidad' de Microsoft el sistema operativo del futuro?". CNET . Consultado el 16 de enero de 2022 .

enlaces externos