Singularidad (sistema operativo)

Sistema operativo experimental de Microsoft Research
Sistema operativo
Proyecto Singularidad
Singularidad después del arranque
ReveladorInvestigación de Microsoft ( Microsoft Corporation )
Escrito enLenguaje ensamblador , C , C++ , C# , Sing#
Familia de sistemas operativosSistemas basados ​​en el lenguaje
Estado de funcionamientoInterrumpido
Modelo fuenteFuente disponible (a través de la Iniciativa de Fuente Compartida )
Lanzamiento inicial4 de marzo de 2008 ; hace 16 años [1] ( 04-03-2008 )
Versión final2.0 / 14 de noviembre de 2008 ; hace 15 años ( 14 de noviembre de 2008 )
Disponible enInglés
Plataformasx86 , x86-64 [2]
Tipo de kernel Basado en lenguaje microkernel

Interfaz de usuario predeterminada
Interfaz de línea de comandos
LicenciaLicencia de investigación de Microsoft
Sitio web oficialresearch.microsoft.com/en-us/projects/singularity

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 el núcleo , los controladores de dispositivos y el software de aplicación estaban escritos 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 despacho 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 núcleo, 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, sino que invoca controladores de dispositivos escritos en Sing#. Durante la instalación, los códigos de operación de 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ódigo, 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 se proporciona mediante un conjunto de reglas llamadas invariantes que se verifican mediante el análisis estático del programa . 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 comprueban durante la instalación de la aplicación. (En Singularity, la instalación la gestiona el sistema operativo).

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

Estado del proyecto

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

Proyectos similares

Véase también

  • Sistema basado en lenguaje , diseño de núcleo general 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 en Singularity y relacionado con él.

Referencias

  1. ^ ab "Singularity RDK 1.1". CodePlex . Archivado desde el original el 4 de mayo de 2009 . Consultado el 16 de enero de 2022 .
  2. ^ ab "Singularity RDK 2.0 Initial Release (17067)". CodePlex . 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. ^ "Singularity RDK". CodePlex . 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 Singularidad" (PDF) . Microsoft . Consultado el 16 de enero de 2022 .
  6. ^ ab Hunt, Galen; Larus, James. "Singularidad: replanteando la pila de software" (PDF) . Microsoft . Microsoft Research Redmond . Consultado el 16 de enero de 2022 .
  7. ^ Ricciuti, Mike (5 de marzo de 2008). "¿Es 'Singularity' de Microsoft el sistema operativo del futuro?". CNET . Consultado el 16 de enero de 2022 .
  • Sitio web oficial
  • Motivación y visión general del proyecto Singularity Design
  • Código fuente de Singularity en CodePlex
  • Singularity: Un sistema operativo de investigación escrito en C#: entrevista del equipo de Channel 9 a Jim Larus y Galen Hunt (video e hilo)
  • Singularity III: La venganza del SIP, una entrevista del equipo de Canal 9 a 3 investigadores del equipo del Proyecto Singularity (video e hilo).
  • Singularity IV: Return of the UI, una demostración de Singularity funcionando realmente (video e hilo).
  • Singularity Revisited, entrevista del equipo de Channel 9 a 4 investigadores del equipo del Proyecto Singularity (video e hilo)
Obtenido de "https://es.wikipedia.org/w/index.php?title=Singularidad_(sistema_operativo)&oldid=1252220112"