Singularity (sistema operativo)
Singularity | ||
---|---|---|
![]() | ||
Información general | ||
Tipo de programa | sistema operativo | |
Desarrollador | Microsoft | |
Modelo de desarrollo | Fuente compartida | |
Licencia | Microsoft Research License | |
Estado actual | Bajo desarrollo por Microsoft Research | |
Idiomas | Inglés | |
Información técnica | ||
Programado en | Ensamblador, C, C++ y C# | |
Tipo de núcleo | Micronúcleo | |
Plataformas admitidas | x86 | |
Interfaz gráfica predeterminada | Línea de comandos | |
Versiones | ||
Última versión estable | 2.0 ( 14 de noviembre de 2008) | |
Enlaces | ||
Singularity es un producto de Microsoft Research comenzado en 2003 para desarrollar un sistema operativo en el que el núcleo, dispositivos y aplicaciones estén escritos todos con código gestionado (managed code).
El nivel más bajo de interrupciones está escrito en lenguaje ensamblador y C. Por encima, el núcleo, cuyo entorno de ejecución y recolector de basura están escritos en C#, se ejecuta en modo no seguro.
La capa de abstracción del hardware está escrita en C++ y se ejecuta en modo seguro.
También hay algo de código C para manejar la depuración. La BIOS del ordenador solo se invoca durante la fase de arranque de 16 bits. Una vez se está en modo 32 bits, Singularity nunca vuelve a llamar a la BIOS, aunque sí llama a los controladores de los dispositivos escritos en Sing#, una extensión de Spec#, que a su vez es una extensión de C#. Durante la instalación, los códigos de operación CIL (Common Intermediate Language o Lenguaje intermedio común) se compilan a códigos de operación x86 usando el compilador Bartok.
Singularity 1.0 fue completado en el año 2007. Un paquete de desarrollo e investigación (RDK) para Singularity ha sido publicado con una licencia de fuente compartida que permite el uso no comercial y académico y está disponible en CodePlex. La investigación actual se mueve hacia el desarrollo de Singularity RDK 2.0[1]
Diseño
[editar]Singularity es un sistema operativo con micronúcleo; de todos modos, al contrario que muchos microkernel anteriores, sus componentes no se ejecutan en distintos procesos de espacios de memoria. De hecho, solo hay un único espacio de memoria en el que los procesos de programa aislados (SIP, Software-Isolated Processes) residen. Cada SIP tiene su propio espacio de código y datos y es independiente de otros SIP. Éstos se comportan como procesos normales, pero no requieren penalizaciones por cambio de tarea.
Véase también
[editar]- SharpOS, un esfuerzo en código abierto para escribir un sistema operativo utilizando C#
- Spec#, lenguaje de programación.
- Sing#, lenguaje de programación, canales y construcción a bajo nivel añadidas a Spec#, utilizado para desarrollar Singularity
- Language-based system, diseño general del núcleo utilizando protección basada en lenguaje en lugar de protección hardware.
- JX, un sistema en Java que, como Singularity, utiliza seguridad de tipos en lugar de protección de memoria.
- JNode, concepto similar, pero con Java en lugar de CIL/C#.
- JavaOS, sistema operativo basado en el mismo concepto que Singularity.
Referencias
[editar]- ↑ «Microsoft Research Singularity Project». Consultado el 9 de diciembre de 2007.
Enlaces externos
[editar]- Página oficial
- Código fuente de Singularity
- Motivación del diseño de Singularity (pdf) (inglés) (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
- Descripción del proyecto Singularity (pdf) (inglés) (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).