El prototip del sistema operatiu domèstic Phantom basat en Genode estarà llest abans de finals d'any

Dmitry Zavalishin va parlar d'un projecte per portar una màquina virtual del sistema operatiu Phantom per treballar a l'entorn del sistema operatiu del micronucli Genode. L'entrevista assenyala que la versió principal de Phantom ja està preparada per a projectes pilot i la versió basada en Genode estarà a punt per utilitzar-se a finals d'any. Al mateix temps, només s'ha anunciat un prototip conceptual viable al lloc web del projecte, l'estabilitat i funcionalitat del qual no s'han portat a un nivell adequat per a l'ús industrial, i entre els plans immediats la formació d'una versió alfa adequada per a experiments. s'esmenta per desenvolupadors de tercers.

El codi del projecte es distribueix sota la llicència LGPL, però l'últim canvi al repositori principal data de novembre de 2019. L'activitat pública relacionada amb el projecte es concentra en un dipòsit amb una forquilla per a Genode, que es manté des del desembre de 2020 per Anton Antonov, estudiant de la Universitat d'Innopolis.

Des de principis dels anys 2000, el sistema operatiu Phantom s'ha desenvolupat com a projecte personal de Dmitry Zavalishin, i des del 2010 s'ha transferit sota l'ala de l'empresa Digital Zone creada per Dmitry. El sistema destaca pel seu enfocament en l'alta fiabilitat i l'ús del concepte de "tot és un objecte" en lloc de "tot és un fitxer", que permet prescindir de l'ús de fitxers a causa de la preservació de l'estat de la memòria i un cicle continu de treball. Les aplicacions a Phantom no s'acaben, sinó que només es suspenen i es reprenen des del punt interromput. Totes les variables i estructures de dades es poden emmagatzemar durant el temps que necessiti l'aplicació i el programador no s'ha de preocupar específicament per desar les dades.

Les aplicacions a Phantom es compilen en bytecode, que s'executa en una màquina virtual basada en pila, similar a la màquina virtual Java. La màquina virtual garanteix la persistència de la memòria de l'aplicació: el sistema restableix periòdicament instantànies de l'estat de la màquina virtual a suport permanent. Després d'un apagat o d'un error, el treball pot continuar començant des de la darrera instantània de memòria desada. Les instantànies es creen en mode asíncron i sense aturar el funcionament de la màquina virtual, però s'enregistra una porció única a la instantània, com si la màquina virtual s'hagués aturat, desat al disc i tornat a començar.

Totes les aplicacions s'executen en un espai d'adreces global comú, la qual cosa elimina la necessitat de canvis de context entre el nucli i les aplicacions, i també simplifica i accelera significativament la interacció entre les aplicacions que s'executen a la màquina virtual, que pot intercanviar objectes mitjançant el pas de referència. La separació d'accés es realitza a nivell d'objectes, les referències dels quals només es poden obtenir mitjançant la crida als mètodes adequats (no hi ha aritmètica de punters). Qualsevol dada, inclosos els valors numèrics, es processa com a objectes separats.

Per a l'aplicació, sembla que el treball és continu i no depèn dels reinicis del sistema operatiu, els bloquejos i l'apagada de l'ordinador. El model de programació de Phantom es compara amb l'execució d'un servidor d'aplicacions sense parar per a un llenguatge de programació d'objectes. Portar programes Java a Phantom es considera un dels principals mètodes de desenvolupament d'aplicacions, fet que es facilita per la similitud de la màquina virtual Phantom amb la JVM. A més del compilador de bytecode per al llenguatge Java, el projecte té previst crear compiladors per a Python i C#, així com implementar un traductor del codi intermedi WebAssembly.

Per realitzar operacions que requereixen un alt rendiment, com ara el processament de vídeo i àudio, és possible executar objectes binaris amb codi natiu en fils separats (LLVM s'utilitza per muntar objectes binaris). Per accedir als serveis del nucli de baix nivell, algunes classes de VM (classes "internes") s'implementen al nivell del nucli del sistema operatiu. Per executar aplicacions Linux, es proporciona una capa POSIX que emula les trucades necessàries per al funcionament dels processos Unix (encara no s'ha proporcionat la persistència de les aplicacions a la capa POSIX).

El prototip del sistema operatiu domèstic Phantom basat en Genode estarà llest abans de finals d'any

El sistema operatiu Phantom tradicional, a més de la màquina virtual, inclou un nucli propi amb la implementació de fils, un gestor de memòria, un col·lector d'escombraries, mecanismes de sincronització, un sistema d'entrada/sortida i controladors per treballar amb maquinari, cosa que dificulta notablement portar el projecte. a la disposició per a un ús generalitzat. Per separat, s'estan desenvolupant components amb una pila de xarxa, un subsistema gràfic i una interfície d'usuari. Cal destacar que el subsistema gràfic i el gestor de finestres operen a nivell del nucli.

Per augmentar l'estabilitat, la portabilitat i la seguretat del projecte, es va intentar portar la màquina virtual Phantom perquè funcionés mitjançant components del sistema operatiu de micronucli obert Genode, el desenvolupament del qual està supervisat per l'empresa alemanya Genode Labs. Per a aquells que vulguin experimentar amb Phantom basat en Genode, s'ha preparat un entorn de construcció especial basat en Docker.

L'ús de Genode permetrà utilitzar micronuclis i controladors ja provats, així com moure els controladors a l'espai d'usuari (en la seva forma actual, els controladors s'escriuen en C i s'executen al nivell del nucli Phantom). En particular, es podrà utilitzar el micronucli seL4, que ha estat sotmès a una verificació de fiabilitat matemàtica, confirmant que la implementació compleix plenament les especificacions especificades en el llenguatge formal. S'està considerant la possibilitat de preparar una prova similar de fiabilitat per a la màquina virtual Phantom, que permetrà la verificació de tot l'entorn del sistema operatiu.

La principal àrea d'aplicació del port basat en Genode és el desenvolupament d'aplicacions per a diversos dispositius industrials i encastats. Actualment, ja s'ha preparat un conjunt de canvis per a la màquina virtual i s'han afegit enllaços que funcionen a sobre de Genode per garantir la persistència dels components del nucli i les principals interfícies de baix nivell. Cal assenyalar que la màquina virtual Phantom ja pot funcionar a l'entorn Genode de 64 bits, però encara és necessari implementar la VM en mode de persistència, reelaborar el subsistema del controlador i adaptar components amb una pila de xarxa i un subsistema gràfic per a Genode.

El prototip del sistema operatiu domèstic Phantom basat en Genode estarà llest abans de finals d'any
El prototip del sistema operatiu domèstic Phantom basat en Genode estarà llest abans de finals d'any
El prototip del sistema operatiu domèstic Phantom basat en Genode estarà llest abans de finals d'any


Font: opennet.ru

Afegeix comentari