Sistema operativo experimental de Microsoft Research
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
- Inferno , creado por primera vez en 1995, basado en el Plan 9 de Bell Labs ; los programas se ejecutan en una máquina virtual y se escriben en Limbo en lugar de C# con CIL; software de código abierto
- JavaOS , un sistema operativo heredado basado en el mismo concepto que Singularity
- JNode, un SO similar en concepto a Singularity, pero con Java en lugar de C# con CIL
- JX , un sistema operativo Java que, como Singularity, utiliza seguridad de tipos en lugar de protección de memoria del hardware de la computadora.
- Phantom OS , un SO gestionado
- SharpOS , un esfuerzo anterior para escribir un sistema operativo usando C#; software de código abierto
- MOSA, un compilador y sistema operativo de .NET Framework que utiliza C#
- Cosmos , un conjunto de herramientas de bloques de construcción para desarrollar un sistema operativo usando C#; software de código abierto
- TempleOS , un sistema operativo ring-0 con compilador JIT; software de código abierto
Ver también
- Sistema basado en lenguaje , diseño general del kernel que utiliza protección basada en lenguaje en lugar de protección de hardware.
- Midori , un sistema operativo basado en microkernel desarrollado por Microsoft. Basado y relacionado con Singularity.
Referencias
- ^ ab "Singularidad RDK 1.1". CódigoPlex . Archivado desde el original el 4 de mayo de 2009 . Consultado el 16 de enero de 2022 .
- ^ 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 .
- ^ "Singularidad". Microsoft . Consultado el 16 de enero de 2022 .
- ^ "Singularidad RDK". CódigoPlex . Archivado desde el original el 2 de enero de 2018 . Consultado el 16 de enero de 2022 .
- ^ ab "Una descripción general del proyecto Singularity" (PDF) . Microsoft . Consultado el 16 de enero de 2022 .
- ^ 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 .
- ^ 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
- Página web oficial
- Motivación del diseño de Singularity y descripción general del Proyecto Singularity
- Código fuente de singularidad en CodePlex
- Singularidad: un sistema operativo de investigación escrito en C# una entrevista del equipo de Channel 9 a Jim Larus y Galen Hunt (vídeo e hilo)
- Singularidad III: La venganza del SIP, una entrevista del equipo de Canal 9 a 3 investigadores del Equipo del Proyecto Singularidad (vídeo e hilo).
- Singularity IV: Regreso de la interfaz de usuario, una demostración de Singularity en ejecución (vídeo e hilo).
- Singularity Revisited, una entrevista del equipo de Channel 9 a 4 investigadores del Singularity Project Team (vídeo e hilo)