Activa las notificaciones para estar al tanto de lo más nuevo en tecnología.

Cosmos: un sistema operativo alternativo en C#

Los que usamos computadoras normalmente nos ceñimos a los sistemas operativos que están más disponibles para el público en general. Hay -desde luego- los adeptos...

Los que usamos computadoras normalmente nos ceñimos a los sistemas operativos que están más disponibles para el público en general. Hay -desde luego- los adeptos a Windows, Mac OS X o Linux. Y a partir de ahí se forman grupos que defienden a capa y espada lo que sus respectivos sistemas pueden hacer y que los rivales no hacen. Así se forman los equipos de fanáticos, que aman su sistema operativo y desdeñan a todos los demás.

Pero evidentemente el mundo es mucho más amplio que estas tres opciones (Windows, Mac OS X y Linux). Y con el afán de no sólo crear un sistema operativo utilizable para aprender, los creadores decidieron implementarlo en C# para .NET. Dicho sistema operativo se llama “Cosmos” y según sus desarrolladores, el sistema puede compilarse con la versión Express de .NET. Además, esperan agregar Visual Basic para .NET en un futuro.

Cabe señalar que este tipo de iniciativas se ve con cierta frecuencia. Por ejemplo, Minix, que fue un sistema tipo Unix, escrito en C, para una computadora 8086, el cual se usó en general para enseñar los conceptos básicos del sistema operativo y hay incluso un libro al respecto, por su autor original, Andrew S. Tanenbaum (1987). Hoy en día Minix ha sido reescrito y puede verse la información al respecto aquí.

Cosmos demuestra que se puede escribir un sistema operativo sin necesidad de tener que escribir un kérnel (o núcleo de funciones)  de bajo nivel. Es quizás una buena herramienta para entender cómo es posible escribir una pieza de software que se antoja tan compleja como un sistema operativo completo.

El proyecto Cosmos incluye un compilador (IL2CPU, el cual es parte de Cosmos), que le un archivo de entrada (usualmente desde el shell), así como las bibliotecas de Cosmos y compila en código x86. el IL2CPU contiene una capa para la compilación cruzada (es decir, poder compilar en otros procesadores y platadormas, incluyendo los sistemas de 64 bits). También el software permite ciertos métodos que hacen que el código de C# interactúe directamente con el CPU, los registros y los puertos en el kérnel. IL2CPU contiene algunas partes de ensamblador dentro del código de C# pero no se requieren archivos ASM para poder “linkear” los fuentes.

Actualmente IL2CPU crea un archivo ASM y éste se procesa a través de nasm (un ensamblador gratuito). Sin embargo, a pesar de los entusiastas planes, parece ser que el proyecto camina muy lentamente y los avances parecen haberse detenido. El código fuente puede bajarse de aquí, para quien le guste experimentar con estas ideas.

Fuente: Code Project

Comentarios