El prototipo del sistema operativo doméstico Phantom basado en Genode estará listo antes de fin de año

Dmitry Zavalishin habló sobre un proyecto para portar una máquina virtual del sistema operativo Phantom para que funcione en el entorno del sistema operativo microkernel Genode. La entrevista señala que la versión principal de Phantom 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, en el sitio web del proyecto solo se ha anunciado un prototipo conceptual viable, cuya estabilidad y funcionalidad no se han llevado a un nivel adecuado para uso industrial, y entre los planes inmediatos está la formación de una versión alfa adecuada para experimentos. por desarrolladores externos.

El código del proyecto se distribuye bajo la licencia LGPL, pero el último cambio en el repositorio principal data de noviembre de 2019. La actividad pública relacionada con el proyecto se concentra en un repositorio con un fork para Genode, que es mantenido desde diciembre de 2020 por Anton Antonov, un estudiante de la Universidad de Innopolis.

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 ha estado bajo el ala de la empresa Digital Zone creada por Dmitry. El sistema destaca por su enfoque en la alta confiabilidad y el uso del concepto "todo es un objeto" en lugar de "todo es un archivo", lo que permite prescindir del uso de archivos debido a la preservación del estado de la memoria y un ciclo continuo de trabajo. Las aplicaciones en Phantom no finalizan, solo se suspenden y se reanudan desde el punto interrumpido. Todas las variables y estructuras de datos se pueden almacenar durante el tiempo que la aplicación lo necesite y el programador no necesita preocuparse específicamente por guardar los datos.

Las aplicaciones en Phantom se compilan en código de bytes, que se ejecuta en una máquina virtual basada en pila, similar a la máquina virtual Java. La máquina virtual garantiza la persistencia de la memoria de la aplicación: el sistema restablece periódicamente instantáneas del estado de la máquina virtual en medios permanentes. Después de un apagado o falla, el trabajo puede continuar a partir de la última instantánea de la memoria guardada. Las instantáneas se crean en modo asincrónico y sin pausar el funcionamiento de la máquina virtual, pero se registra un segmento único en la instantánea, como si la máquina virtual se detuviera, se guardara en el disco y se iniciara nuevamente.

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 también simplifica y acelera significativamente la interacción entre las aplicaciones que se ejecutan en la máquina virtual, que pueden intercambiar objetos mediante el paso de referencias. La separación de acceso se lleva a cabo a nivel de objetos, cuyas referencias solo se pueden obtener llamando a los métodos apropiados (no hay aritmética de punteros). Todos los datos, incluidos los valores numéricos, se procesan como objetos separados.

Para la aplicación, el trabajo parece ser continuo y no depende de reinicios, fallas y apagados del sistema operativo. El modelo de programación de Phantom se compara con la ejecución de un servidor de aplicaciones ininterrumpido para un lenguaje de programación de objetos. La migración de programas Java a Phantom se considera uno de los principales métodos de desarrollo de aplicaciones, lo que se ve facilitado por la similitud de la máquina virtual Phantom con la JVM. Además del compilador de código de bytes para el lenguaje Java, el proyecto planea crear compiladores para Python y C#, así como implementar un traductor a partir del código intermedio WebAssembly.

Para realizar operaciones que requieren un alto rendimiento, como el procesamiento de vídeo y audio, es posible ejecutar objetos binarios con código nativo en subprocesos separados (LLVM se utiliza para ensamblar objetos binarios). Para acceder a los servicios del kernel de bajo nivel, algunas clases de VM (clases "internas") se implementan en el nivel del kernel del sistema operativo. Para ejecutar aplicaciones Linux, se proporciona una capa POSIX que emula las llamadas necesarias para el funcionamiento de los procesos Unix (aún no se proporciona persistencia para aplicaciones en la capa POSIX).

El prototipo del sistema operativo doméstico Phantom basado en Genode estará listo antes de fin de año

El Phantom OS tradicional, además de la máquina virtual, incluye su propio kernel con implementación de subprocesos, un administrador de memoria, un recolector de basura, mecanismos de sincronización, un sistema de entrada/salida y controladores para trabajar con hardware, lo que complica significativamente la ejecución del proyecto. hasta que esté listo para su uso generalizado. Por separado, se están desarrollando componentes con una pila de red, un subsistema de gráficos y una interfaz de usuario. Cabe destacar que el subsistema de gráficos y el administrador de ventanas funcionan a nivel del kernel.

Para aumentar la estabilidad, portabilidad y seguridad del proyecto, se intentó portar la máquina virtual Phantom para que funcione utilizando 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 compilación especial basado en Docker.

El uso de Genode permitirá utilizar microkernels y controladores ya probados, así como mover 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 micronúcleo seL4, que ha sido sometido a una verificación de confiabilidad matemática, lo que confirma que la implementación cumple plenamente con las especificaciones especificadas en el lenguaje formal. Se está considerando la posibilidad de preparar una prueba similar de confiabilidad para la máquina virtual Phantom, que permitirá verificar todo el entorno del sistema operativo.

El principal área de aplicación del puerto basado en Genode es el desarrollo de aplicaciones para diversos dispositivos industriales e integrados. Actualmente, ya se ha preparado una serie de cambios para la máquina virtual y se han agregado enlaces que funcionan sobre Genode para garantizar la persistencia de los componentes del kernel y las principales interfaces de bajo nivel. Cabe señalar que la máquina virtual Phantom ya puede funcionar en el entorno Genode de 64 bits, pero aún es necesario implementar la VM en modo persistente, reelaborar el subsistema del controlador y adaptar los componentes con una pila de red y un subsistema de gráficos para Genode.

El prototipo del sistema operativo doméstico Phantom basado en Genode estará listo antes de fin de año
El prototipo del sistema operativo doméstico Phantom basado en Genode estará listo antes de fin de año
El prototipo del sistema operativo doméstico Phantom basado en Genode estará listo antes de fin de año


Fuente: opennet.ru

Añadir un comentario