O prototipo do sistema operativo doméstico Phantom baseado en Genode estará listo antes de finais de ano

Dmitry Zavalishin falou sobre un proxecto para portar unha máquina virtual do sistema operativo Phantom para que funcione no entorno do sistema operativo do microkernel Genode. A entrevista sinala que a versión principal de Phantom xa está lista para proxectos piloto e que a versión baseada en Genode estará lista para o seu uso a finais de ano. Ao mesmo tempo, no sitio web do proxecto só se anunciou un prototipo conceptual viable, cuxa estabilidade e funcionalidade non foron levadas a un nivel axeitado para o uso industrial, e entre os plans inmediatos a formación dunha versión alfa apta para experimentos. menciónase por desenvolvedores de terceiros.

O código do proxecto distribúese baixo a licenza LGPL, pero o último cambio no repositorio principal foi de novembro de 2019. A actividade pública relacionada co proxecto concéntrase nun repositorio con garfo para Genode, que mantén desde decembro de 2020 Anton Antonov, estudante da Universidade de Innopolis.

Desde principios da década de 2000, o sistema operativo Phantom desenvolveuse como un proxecto persoal de Dmitry Zavalishin, e desde 2010 foi transferido baixo a á da empresa Digital Zone creada por Dmitry. O sistema destaca polo seu foco na alta fiabilidade e polo uso do concepto de "todo é un obxecto" en lugar de "todo é un ficheiro", o que permite prescindir do uso de ficheiros debido á conservación do estado da memoria e un ciclo continuo de traballo. As aplicacións en Phantom non finalizan, senón que só se suspenden e retoman desde o punto interrompido. Todas as variables e estruturas de datos pódense almacenar durante o tempo que necesite a aplicación, e o programador non necesita preocuparse específicamente por gardar os datos.

As aplicacións en Phantom compílanse en bytecode, que se executa nunha máquina virtual baseada en pilas, semellante á máquina virtual Java. A máquina virtual garante a persistencia da memoria da aplicación: o sistema restablece periodicamente as instantáneas do estado da máquina virtual a medios permanentes. Despois dun apagado ou fallo, o traballo pode continuar a partir da última instantánea de memoria gardada. As instantáneas créanse en modo asíncrono e sen deter o funcionamento da máquina virtual, pero na instantánea grávase unha porción única, coma se a máquina virtual estivese parada, gardada no disco e iniciada de novo.

Todas as aplicacións execútanse nun espazo de enderezos global común, o que elimina a necesidade de cambios de contexto entre o núcleo e as aplicacións, e tamén simplifica e acelera significativamente a interacción entre as aplicacións que se executan na máquina virtual, que pode intercambiar obxectos mediante o paso de referencia. A separación de acceso realízase a nivel de obxectos, cuxos referencias só se poden obter mediante a chamada dos métodos axeitados (non hai aritmética de punteiros). Calquera dato, incluídos os valores numéricos, trátase como obxectos separados.

Para a aplicación, o traballo parece ser continuo e non depende dos reinicios do sistema operativo, fallos e paradas do ordenador. O modelo de programación para Phantom compárase coa execución dun servidor de aplicacións ininterrompido para unha linguaxe de programación de obxectos. Portar programas Java a Phantom considérase un dos principais métodos de desenvolvemento de aplicacións, o que se ve facilitado pola semellanza da máquina virtual Phantom coa JVM. Ademais do compilador de bytecode para a linguaxe Java, o proxecto prevé crear compiladores para Python e C#, así como implementar un tradutor do código intermedio WebAssembly.

Para realizar operacións que requiren un alto rendemento, como o procesamento de vídeo e audio, é posible executar obxectos binarios con código nativo en fíos separados (utilízase LLVM para ensamblar obxectos binarios). Para acceder aos servizos do núcleo de baixo nivel, algunhas clases de VM (clases internas) están implementadas a nivel do núcleo do SO. Para executar aplicacións de Linux, ofrécese unha capa POSIX que emula as chamadas necesarias para o funcionamento dos procesos Unix (aínda non se proporciona a persistencia das aplicacións na capa POSIX).

O prototipo do sistema operativo doméstico Phantom baseado en Genode estará listo antes de finais de ano

O sistema operativo Phantom tradicional, ademais da máquina virtual, inclúe o seu propio núcleo coa implementación de fíos, un xestor de memoria, un colector de lixo, mecanismos de sincronización, un sistema de entrada/saída e controladores para traballar con hardware, o que dificulta considerablemente levar o proxecto. á disposición para o uso xeneralizado. Por separado, están a desenvolverse compoñentes cunha pila de rede, un subsistema gráfico e unha interface de usuario. Cabe destacar que o subsistema de gráficos e o xestor de ventás funcionan a nivel do núcleo.

Para aumentar a estabilidade, portabilidade e seguridade do proxecto, intentouse portar a máquina virtual Phantom para que funcione utilizando compoñentes do sistema operativo de micronúcleo aberto Genode, cuxo desenvolvemento está supervisado pola empresa alemá Genode Labs. Para aqueles que queiran experimentar con Phantom baseado en Genode, preparouse un ambiente de construción especial baseado en Docker.

Usar Genode permitirá usar micronúcleos e controladores xa probados, así como mover os controladores ao espazo do usuario (na súa forma actual, os controladores están escritos en C e execútanse a nivel de núcleo Phantom). En particular, poderase utilizar o micronúcleo seL4, que foi sometido a verificación de fiabilidade matemática, confirmando que a implantación cumpre totalmente coas especificacións especificadas na linguaxe formal. Estase considerando a posibilidade de preparar unha proba similar de fiabilidade para a máquina virtual Phantom, que permita verificar todo o entorno do SO.

A principal área de aplicación para o porto baseado en Genode é o desenvolvemento de aplicacións para varios dispositivos industriais e integrados. Actualmente, xa se preparou un conxunto de cambios para a máquina virtual e engadíronse enlaces que funcionan enriba de Genode para garantir a persistencia dos compoñentes do núcleo e das principais interfaces de baixo nivel. Nótase que a máquina virtual Phantom xa pode funcionar no ambiente Genode de 64 bits, pero aínda é necesario implementar a VM en modo de persistencia, reelaborar o subsistema de controladores e adaptar compoñentes cunha pila de rede e un subsistema de gráficos para Genode.

O prototipo do sistema operativo doméstico Phantom baseado en Genode estará listo antes de finais de ano
O prototipo do sistema operativo doméstico Phantom baseado en Genode estará listo antes de finais de ano
O prototipo do sistema operativo doméstico Phantom baseado en Genode estará listo antes de finais de ano


Fonte: opennet.ru

Engadir un comentario