Como todo buen enganchado al mundo de la tecnología me maravillo ante cosas nuevas o con aproximaciones distintas. Quizá por eso una de las partes que más me gusta de la malvada Spectra, es el area de Microsoft Research, de la que han salido siempre proyectos peculiares. Esa parte se encarga de intentar unir, en forma de trabajos de investigación, el mundo académico y el mundo tecnológico de manera real, sacando adelante nuevas ideas.
Uno de los proyectos que tienen allí incubándose, y que desconocía hasta que me han avisado de ello por correo electrónico, es el que se encarga de evolucionar y mantener una nueva aproximación de sistema operativo. El tema de los nuevos paradigmas en sistemas operativos siempre me llama la atención, por eso he aprovechado a hablar aquí de ReactOS, de los WebOS o de incluso el kernel escrito en Pascal llamado Toro. Y como no, todo esto toma más interés cuando tenemos en ciernes Mac OS X Lion, que ya está muy avanzado el proceso, y Windows 8, de la que ya hay un build disponible para descarga.
El proyecto de Microsoft se llama Singularity y es un sistema operativo basado en un diseño de microkernel. La mayor parte del sistema, incluida gran parte del kernel, está desarrollada en Sign# - una extensión de Spec# que a su vez es una versión extendida de C# - aunque para areas específicas se utilizan otros lenguajes, como C++ para la HAL, C para debugging, y asm para partes del CLI en el proceso de instalación.
Figura 1: Arquitectura de Singularity
La idea principal del sistema operativo, es proteger los procesos en memoria con lo que se llaman invariantes, que son condiciones analizadas por un análisis estático del código en cada ejecución. Esto funciona así ya que el código es manejado, incluyendo la gestión de la memoria.
El objetivo por el que se trabaja con esta arquitectura es para garantizar lo que denominan SIP (Software-Isolated Proecess), así, por ejemplo, se comprueba la existencia de referencias cruzadas de memoria entre distintos procesos. El funcionamiento en detalle de las variantes y el SIP lo tienen explicado con código en el artículo Singularity: Rethinking the Software Stack.
Figura 2: Singularity arrancado
El proyecto comenzó en el año 2003 haciendo pública la primera versión del proyecto en 2007 y liberando la versión 2.0 en Noviembre de 2008. El proyecto es Open Source y todo el código fuente puede ser descargado desde la página del mismo en CodePlex: Singularity en CodePlex. Si quieres más información del proyecto puedes ir a la página de Singularity en Microsoft Research, donde hay presentaciones y vídeos del proyecto.
La verdad es que me encanta ver que las grandes empresas siguen haciendo estas pequeñas perlas de ingeniería que puedan ser usadas, estudiadas y analizadas por todo el mundo, con nuevas idéas y nuevos caminos por abrir.
Saludos Malignos!
Uno de los proyectos que tienen allí incubándose, y que desconocía hasta que me han avisado de ello por correo electrónico, es el que se encarga de evolucionar y mantener una nueva aproximación de sistema operativo. El tema de los nuevos paradigmas en sistemas operativos siempre me llama la atención, por eso he aprovechado a hablar aquí de ReactOS, de los WebOS o de incluso el kernel escrito en Pascal llamado Toro. Y como no, todo esto toma más interés cuando tenemos en ciernes Mac OS X Lion, que ya está muy avanzado el proceso, y Windows 8, de la que ya hay un build disponible para descarga.
El proyecto de Microsoft se llama Singularity y es un sistema operativo basado en un diseño de microkernel. La mayor parte del sistema, incluida gran parte del kernel, está desarrollada en Sign# - una extensión de Spec# que a su vez es una versión extendida de C# - aunque para areas específicas se utilizan otros lenguajes, como C++ para la HAL, C para debugging, y asm para partes del CLI en el proceso de instalación.
Figura 1: Arquitectura de Singularity
La idea principal del sistema operativo, es proteger los procesos en memoria con lo que se llaman invariantes, que son condiciones analizadas por un análisis estático del código en cada ejecución. Esto funciona así ya que el código es manejado, incluyendo la gestión de la memoria.
El objetivo por el que se trabaja con esta arquitectura es para garantizar lo que denominan SIP (Software-Isolated Proecess), así, por ejemplo, se comprueba la existencia de referencias cruzadas de memoria entre distintos procesos. El funcionamiento en detalle de las variantes y el SIP lo tienen explicado con código en el artículo Singularity: Rethinking the Software Stack.
Figura 2: Singularity arrancado
El proyecto comenzó en el año 2003 haciendo pública la primera versión del proyecto en 2007 y liberando la versión 2.0 en Noviembre de 2008. El proyecto es Open Source y todo el código fuente puede ser descargado desde la página del mismo en CodePlex: Singularity en CodePlex. Si quieres más información del proyecto puedes ir a la página de Singularity en Microsoft Research, donde hay presentaciones y vídeos del proyecto.
La verdad es que me encanta ver que las grandes empresas siguen haciendo estas pequeñas perlas de ingeniería que puedan ser usadas, estudiadas y analizadas por todo el mundo, con nuevas idéas y nuevos caminos por abrir.
Saludos Malignos!
Muy bonita tu apología del software libre en la última frase:
ResponderEliminar"..perlas de ingeniería que puedan ser usadas, estudiadas y analizadas por todo el mundo, .."
;P
@Inma, tienes ganas de oirme, ¿eh?Que atribuyas esos deseos únicamente al software libre es un poco torticero. Ya sabes que a mí, solo el uso del termino libertad, me parece aberrante, arrogante y fuera de contexto. };))
ResponderEliminarSaludos...muy malignos!
Hasta que los romanos no hagan microprocesadores capaces de ejecutar msil directamente (e incluso dar soporte al clr y al cts), hacer un sistema operativo basado en C# es un tontería como un castillo.
ResponderEliminarNo es más que tener C# encima de un núcleo tradicional en C/C++.
O dicho de otro modo: ¿por qué no se dejan de tonterías y hacen el .NET como un subsistema completo de Windows y no como una capa sobre win32? ¿Están ciegos estos romanos?
Y a mi que esto de aislar procesos etc me suena tanto a LinuxSE... que ya funciona hace tiempo.
ResponderEliminar@Anonimo, SELinux
ResponderEliminarQue raro, quise Twittear este articulo pero no esta el boton Twett, y entonces me dieron gans de escupir la pantalla e insultar este blog.
ResponderEliminar@Anónimo, es una protección contra subnormales como tú. Déjanos tu Twitter para que sepamos quién eres y te lo retwitteamos.
ResponderEliminarSaludos!