Cosmos | |
---|---|
| |
Desarrollador | Proyecto Cosmos |
ultima versión | 20220209 ( 9 de febrero de 2022 ) |
tipo de núcleo | micronúcleo |
Licencia | BSD |
Estado | Pruebas beta |
Repositorio de código fuente | https://github.com/CosmosOS/Cosmos... |
Sitio web | gocosmos.org |
Archivos multimedia en Wikimedia Commons |
Cosmos es un kit de desarrollo de sistema operativo de código abierto escrito en el lenguaje de programación C# . Además, contiene un compilador de Microsoft Intermediate Language ( IL2CPU ) que le permite crear módulos de programa completos que incluyen las bibliotecas de .NET Framework y el propio sistema operativo Cosmos, lo que le permite crear módulos de arranque que no requieren un sistema operativo externo para su trabajo. Se puede iniciar desde un disquete , una unidad flash USB , un CD-ROM o en una máquina virtual . Actualmente solo se admite la arquitectura x86, aunque el sistema está dirigido a C#, se puede usar con la mayoría de los lenguajes .NET compatibles, como: Visual Basic y X# (requiere compilación CIL "pura" sin usar P/Invoke ). Cosmos está diseñado principalmente para usarse solo con Microsoft .NET Framework , pero se puede compilar usando Mono confiando en el bloque System.Threading, la clase ReaderWriterLockSlim.
Según el sitio web de Cosmos, Cosmos es un acrónimo de C # Open Source Managed Operating System . Cosmos es ahora un conjunto de herramientas que facilita a otros desarrolladores la creación de sus propios sistemas operativos o, como dijo uno de los líderes del proyecto, actúa como un " sistema operativo tipo Lego ". También funciona como una capa de abstracción, ocultando gran parte del trabajo de hardware interno.
El lanzamiento actual de Cosmos es Milestone 5 , pero el trabajo en futuros lanzamientos está en pleno apogeo. La mayor parte del trabajo en Cosmos se centra actualmente en el desarrollo de una interfaz de red, sin embargo, el sistema ya admite algunas tarjetas de red y algunas características de TCP/IP . Actualmente hay dos versiones de Cosmos, una versión de origen (posterior) y una versión de lanzamiento (conocida como kit personalizado). La versión fuente es para aquellos que quieren ayudar a desarrollar el kernel , mientras que el kit personalizado es para aquellos que solo quieren usar Cosmos para desarrollar su propio sistema operativo. Algún tiempo antes del lanzamiento de Milestone 3 , se recomendó que todos los usuarios descargaran el código fuente, ya que el paquete anterior de Milestone 2 no está actualizado.
En la última versión, los desarrolladores volvieron a GRUB como cargador de arranque , sin embargo, Syslinux y el GRUB mencionado anteriormente también se usaron anteriormente.
Un sistema operativo basado en Cosmos comienza su vida como un proyecto .NET (en particular, aplicaciones de consola ). En las nuevas versiones, se ha simplificado la escritura del código. El archivo principal Kernel.cs se divide en dos métodos: BeforeRun() y Run(). El primero describe las acciones que se realizan después de cargar el sistema operativo. En el segundo, el código se ejecuta en un bucle infinito, pero por lo general los desarrolladores completan el método con una función para apagar la PC.
Existen clases en Cosmos como System para tratar con el sistema de archivos , las redes y la energía de la computadora; HAL, para trabajar con gráficos y controladores ; Núcleo para administrar RAM , ACPI y ver datos de CPU ; Depuración para depuración y común.
La configuración de compilación se encuentra en las propiedades del proyecto, la compilación se realiza a través de la pestaña "Generar" en el panel superior de la ventana de Visual Studio.
El kit personalizado es parte de Cosmos y tiene como objetivo hacer que Cosmos sea más fácil de usar para los desarrolladores que usan Microsoft Visual Studio . La instalación del paquete agrega un nuevo tipo de proyecto a Visual Studio llamado Cosmos Project. Es una versión modificada de la aplicación de consola, con el compilador de Cosmos ya agregado y el código de carga incompleto.
Una vez que el código está completo, el usuario puede compilar el proyecto utilizando su compilador .NET preferido. Esto convierte las aplicaciones de su código fuente original ( C# o de otro tipo) en Microsoft Intermediate Language , el idioma nativo de .NET Framework. A continuación, inicie la aplicación, apuntando a la ventana de Cosmos Builder, que presenta al desarrollador opciones que determinan cómo compilar el proyecto. Estas opciones incluyen cargar el proyecto a través de emuladores como QEMU , Virtual PC y VMWare , escribir en una imagen de disco (archivo ISO) que luego puede grabarse en un CD-ROM o iniciarse a través de una red PXE , y una opción de depuración de Cosmos usando depurador integrado y otras opciones.
Cuando el usuario ha seleccionado las opciones deseadas, hace clic en el botón "Construir". Esto da como resultado una llamada al compilador IL2CPU , que pasa sistemáticamente por todas las aplicaciones del código CIL (con la excepción del código del compilador Cosmos), convirtiéndolo en lenguaje ensamblador para la arquitectura de procesador seleccionada. A continuación, Cosmos llama al ensamblador elegido para convertir este código del lenguaje ensamblador al código de operación nativo del procesador . Finalmente, se habilitan los resultados deseados, ya sea iniciando un emulador, iniciando un motor PXE o leyendo desde un archivo ISO.
Cosmos ofrece varias opciones para depurar la salida.
VirtualizaciónCosmos permite al usuario arrancar su sistema operativo usando una máquina virtual . Esto permite a los desarrolladores probar el sistema en su propia máquina sin tener que reiniciar, brindando los beneficios de no requerir hardware adicional o requerir que el desarrollador abandone su entorno de desarrollo . Para resolver esto, Cosmos permite usar uno de los tres emuladores. QEMU , la opción de arranque predeterminada, es un emulador gratuito que viene con Cosmos. VMWare es un emulador que se puede descargar desde el sitio web de VMware, con versiones gratuitas y de pago. Virtual PC es un emulador gratuito que se puede descargar desde el sitio web de Microsoft [1] . Además, estos emuladores tienen una función de compilación de imágenes de disco que permite cargar el proyecto Cosmos en cualquier emulador que le permita cargar una imagen de disco.
Otra función disponible con QEMU es el depurador , que permite al usuario ver el código fuente como en Visual Studio mientras ejecuta su sistema operativo en QEMU. Funciona agregando código al sistema operativo que se comunica con el depurador a través de una red virtual .
Imágenes de discoEsta opción graba el sistema operativo en una imagen de disco (archivo ISO) que puede cargarse en algunos emuladores (como Virtual PC ) o escribirse en un CD-ROM y arrancarse en hardware real.
Arranque de red PXEEsta opción le permite configurar el sistema operativo para que arranque en hardware real. Los datos se transmiten a través de la LAN a la máquina cliente. Esto requiere dos computadoras, una como máquina cliente (en la que se carga el sistema operativo) y otra como servidor (generalmente la máquina del desarrollador). También requiere una red que conecte las dos computadoras, y la máquina cliente debe tener una tarjeta de red y BIOS que admitan el arranque PXE.
El ensamblador principal de los sistemas Cosmos iba a ser un ensamblador especialmente diseñado . Sin embargo, debido a su ineficiencia y lentitud, se utiliza el ensamblador NASM .