El prototipo del sistema operativo nacional Phantom basado en Genode estará listo para finales de año.

Dmitry Zavalishin habló sobre el proyecto de portación de la máquina virtual del sistema operativo Phantom para funcionar en el entorno del sistema operativo microkernel Genode. En la entrevista se menciona que la versión principal de Phantom ya está lista para proyectos piloto, mientras que la versión basada en Genode estará lista para su uso a finales de año. Actualmente, en el sitio del proyecto solo se ha anunciado un prototipo conceptual funcional, cuya estabilidad y funcionalidad no han alcanzado un nivel adecuado para el uso industrial, y entre los planes más inmediatos se menciona la formación de una versión alfa, adecuada para experimentos por parte de 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 centra en el repositorio con el fork para Genode, que desde diciembre de 2020 es mantenido por Anton Antonov, un estudiante de la Universidad de Innopolis.

El sistema operativo Phantom ha evolucionado, desde principios de la década de 2000, como un proyecto personal de Dmitry Zavalishin, y desde 2010 ha estado bajo la protección de la empresa Digital Zone, creada por Dmitry. El sistema es notable por su enfoque en alta fiabilidad y por utilizar el concepto de 'todo es objeto' en lugar de 'todo es archivo', lo que permite prescindir del uso de archivos al conservar el estado de la memoria y mantener un ciclo de trabajo continuo. Las aplicaciones en Phantom no se cierran, sino que se suspenden y reanudan desde el punto interrumpido. Todas las variables y estructuras de datos pueden almacenarse el tiempo que necesite la aplicación, sin que el programador tenga que preocuparse por la conservación de datos.

Las aplicaciones en Phantom se compilan en bytecode, que se ejecuta en una máquina virtual de pila, similar a la máquina virtual de Java. La máquina virtual proporciona persistencia de la memoria de las aplicaciones: el sistema periódicamente guarda instantáneas del estado de la máquina virtual en un medio permanente. Después de un apagado o un cierre inesperado, se puede continuar el trabajo a partir de la última instantánea de memoria guardada. Las instantáneas se crean de forma asíncrona y sin pausar el funcionamiento de la máquina virtual, pero en la instantánea se captura un corte instantáneo, como si se hubiera detenido la máquina virtual, guardado en el disco y luego reiniciado.

Todas las aplicaciones se ejecutan en un espacio de direcciones global compartido, lo que permite prescindir de los cambios de contexto entre el núcleo y las aplicaciones, así como simplificar y acelerar significativamente la interacción entre las aplicaciones que están en ejecución en la máquina virtual, las cuales pueden intercambiar objetos mediante el paso de referencias. La separación de acceso se realiza a nivel de objetos, cuyas referencias solo se pueden obtener a través de la invocación de los métodos correspondientes (no hay aritmética de punteros). Cualquier dato, incluidos los valores numéricos, se trata como objetos separados.

Para la aplicación, el trabajo parece continuo y no depende de los reinicios del sistema operativo, cierres inesperados o apagones del ordenador. El modelo de programación de Phantom se compara con el funcionamiento ininterrumpido de servidores aplicaciones para un lenguaje de programación orientado a objetos. Como uno de los principales métodos de desarrollo de aplicaciones se considera la portación de programas para Phantom escritos en Java, lo que se facilita por la similitud de la máquina virtual Phantom con la JVM. Además del compilador de bytecode para el lenguaje Java, se planea la creación de compiladores para Python y C#, así como la implementación de un traductor desde el código intermedio WebAssembly.

Para realizar operaciones que requieren un alto rendimiento, como el procesamiento de video y audio, se ofrece la posibilidad de ejecutar binarios con código nativo en hilos separados (para la construcción de binarios se utiliza LLVM). Para acceder a los servicios de bajo nivel del núcleo, parte de las clases de VM (clases "internas") se implementa a nivel del núcleo del sistema operativo. Se proporciona una capa POSIX para ejecutar aplicaciones de Linux, que emula las llamadas necesarias para el funcionamiento de procesos Unix (la persistencia para aplicaciones en la capa POSIX aún no está garantizada).

El prototipo del sistema operativo nacional Phantom basado en Genode estará listo para finales de año.

El sistema operativo tradicional Phantom, además de la máquina virtual, incluye su propio núcleo con implementación de hilos, gestor de memoria, recolector de basura, mecanismos de sincronización, sistema de entrada/salida y controladores para trabajar con hardware, lo que complica considerablemente llevar el proyecto a una aplicación generalizada. Se desarrollan por separado componentes con pila de red, subsistema gráfico e interfaz de usuario. Es notable que el subsistema gráfico y el gestor de ventanas funcionan a nivel de núcleo.

Para aumentar la estabilidad, portabilidad y seguridad del proyecto, se ha intentado portar la máquina virtual Phantom para trabajar utilizando componentes del sistema operativo de microkernel abierto Genode, cuyo desarrollo está supervisado por la empresa alemana Genode Labs. Se ha preparado un entorno de construcción especial basado en Docker para quienes deseen experimentar con Phantom sobre Genode.

El uso de Genode permitirá utilizar microkernels y controladores ya comprobados, así como llevar los controladores al espacio de usuario (en su forma actual, los controladores están escritos en C y se ejecutan a nivel del núcleo de Phantom). También se permitirá el uso del microkernel seL4, que ha pasado por una verificación matemática de fiabilidad, confirmando que su implementación se ajusta completamente a las especificaciones definidas en un lenguaje formal. Se considera la posibilidad de preparar una demostración similar de fiabilidad también para la máquina virtual Phantom, lo que permitirá verificar todo el entorno del sistema operativo.

La principal área de aplicación de un puerto basado en Genode es el desarrollo de aplicaciones para diversos dispositivos industriales y embebidos. Actualmente, ya se ha preparado un conjunto de cambios para la máquina virtual y se han añadido capas funcionales sobre Genode que aseguran la persistencia de los componentes del núcleo y las principales interfaces de bajo nivel. Se destaca que máquina virtual Phantom ya puede funcionar en un entorno de 64 bits de Genode, pero aún queda por implementar la operación de VM en modo de persistencia, reestructurar el subsistema de controladores y adaptar los componentes con pila de red y subsistema gráfico para Genode.

El prototipo del sistema operativo nacional Phantom basado en Genode estará listo para finales de año.
El prototipo del sistema operativo nacional Phantom basado en Genode estará listo para finales de año.
El prototipo del sistema operativo nacional Phantom basado en Genode estará listo para finales de año.


Fuente: opennet.ru
Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster