Phantom OS, tomara la base de Genode y que estará listo para fin de año
Hace poco se dio a conocer información sobre el proyecto para portar la máquina virtual del sistema operativo Phantom para trabajar en el entorno del sistema operativo microkernel Genode.
La información fue dada a conocer en una entrevista en la cual se señala que la versión principal de Phantom OS ya está lista para proyectos piloto, y la versión basada en Genode estará lista para su uso a finales de año. Al mismo tiempo, hasta el momento solo se ha anunciado un prototipo conceptual viable en el sitio web del proyecto, cuya estabilidad y funcionalidad no se han llevado a un nivel adecuado para uso industrial, y entre los planes más cercanos está la formación de una versión alfa.
Desde principios de la década de 2000, el sistema operativo Phantom se ha desarrollado como un proyecto personal de Dmitry Zavalishin y desde 2010 se transfiere bajo el ala de la empresa Digital Zone creada por Dmitry.
El sistema se destaca por su enfoque en la alta confiabilidad y el uso del concepto de «todo es un objeto» en lugar de «todo es un archivo», lo que elimina el uso de archivos debido a la preservación del estado de la memoria y un ciclo continuo de trabajo.
Las aplicaciones en Phantom no se terminan, sino que solo se pausan y se reanudan desde donde se quedaron. Todas las variables y estructuras de datos se pueden almacenar durante el tiempo que la aplicación lo necesite, y el programador no tiene que tener especial cuidado para guardar los datos.
Las aplicaciones en Phantom se compilan en bytecode, que se ejecuta en una máquina virtual basada en pila, similar a la máquina virtual de Java. La máquina virtual proporciona persistencia de la memoria de la aplicación: el sistema descarga periódicamente instantáneas del estado de la máquina virtual en medios persistentes.
Después de un apagado o bloqueo, el trabajo puede continuar a partir de la última instantánea de memoria guardada. Las instantáneas se crean de forma asíncrona y sin suspender la máquina virtual, pero una instantánea captura un segmento único, como si la máquina virtual se detuviera, se guardara en el disco y se iniciara de nuevo.
Todas las aplicaciones se ejecutan en un espacio de direcciones global común, lo que elimina la necesidad de cambios de contexto entre el kernel y las aplicaciones, y simplifica y acelera enormemente la comunicación entre las aplicaciones que se ejecutan en una máquina virtual que puede intercambiar objetos a través del paso de referencia.
La migración de programas Java para Phantom se considera una de las principales formas de desarrollar aplicaciones, lo que se ve facilitado por la similitud de la máquina virtual Phantom con la JVM. Además del compilador bytecode para el lenguaje Java, el proyecto prevé la creación de compiladores para Python y C#, así como la implementación de un traductor a partir del código intermedio de WebAssembly.
Phantom OS tradicional, además de la máquina virtual, incluye su propio kernel con la implementación de hilos, un administrador de memoria, un recolector de basura, mecanismos de sincronización, un sistema de E/S y controladores para trabajar con equipos, lo que complica significativamente traer el proyecto a la preparación para el uso generalizado.
Por separado, se están desarrollando componentes con una pila de red, un subsistema gráfico y una interfaz de usuario. Cabe destacar que el subsistema de gráficos y el administrador de ventanas funcionan a nivel de kernel.
Para mejorar la estabilidad, portabilidad y seguridad del proyecto, se intentó trasladar la máquina virtual Phantom para que funcione utilizando los componentes del sistema operativo de microkernel abierto Genode, cuyo desarrollo está supervisado por la empresa alemana Genode Labs. Para aquellos que quieran experimentar con Phantom basado en Genode, se ha preparado un entorno de construcción especial basado en Docker.
El uso de Genode hará posible el uso de micronúcleos y controladores ya probados, así como traer los controladores al espacio del usuario (en su forma actual, los controladores están escritos en C y se ejecutan en el nivel del kernel Phantom).
En particular, será posible utilizar el microkernel seL4, que ha pasado la verificación de confiabilidad matemática, lo que confirma que la implementación cumple completamente con las especificaciones especificadas en el lenguaje formal. Se está considerando la posibilidad de preparar una prueba de confiabilidad similar para la máquina virtual Phantom, que permitirá verificar todo el entorno del sistema operativo.
El área de aplicación principal del port basado en Genode es el desarrollo de aplicaciones para varios dispositivos industriales e integrados.
Actualmente, ya se ha preparado un conjunto de cambios para la máquina virtual y se han agregado enlaces que se ejecutan sobre Genode para los componentes de persistencia del kernel y las principales interfaces de bajo nivel.
Se observa que la máquina virtual Phantom ya puede funcionar en un entorno Genode de 64 bits, pero la VM aún no se ha implementado en modo de persistencia, el subsistema del controlador debe reelaborarse y los componentes con una pila de red y un subsistema de gráficos tienen para ser adaptado para Genode.
Si quieres conocer más sobre el trabajo del sistema, puedes consultar los detalles en el siguiente enlace.