Prototyp domáceho OS Phantom založený na Genode bude hotový do konca roka

Dmitrij Zavalishin hovoril o projekte portovania virtuálneho stroja operačného systému Phantom pre prácu v prostredí OS Genode microkernel. V rozhovore sa uvádza, že hlavná verzia Phantomu je už pripravená na pilotné projekty a verzia založená na Genode bude pripravená na použitie na konci roka. Zároveň je na stránke projektu ohlásený iba funkčný koncepčný prototyp, ktorého stabilita a funkčnosť nie je dovedená na úroveň vhodnú pre priemyselné využitie a medzi najbližšie plány je vytvorenie alfa verzie vhodnej na experimenty. od vývojárov tretích strán.

Kód projektu je distribuovaný pod licenciou LGPL, ale posledná zmena v hlavnom úložisku bola z novembra 2019. Verejná aktivita súvisiaca s projektom je sústredená v úložisku s vidlicou pre Genode, ktoré od decembra 2020 spravuje Anton Antonov, študent z Univerzity Innopolis.

Od začiatku roku 2000 sa operačný systém Phantom vyvíjal ako osobný projekt Dmitrija Zavalishina a od roku 2010 prešiel pod krídla spoločnosti Digital Zone, ktorú vytvoril Dmitrij. Systém sa vyznačuje zameraním na vysokú spoľahlivosť a používaním konceptu „všetko je objekt“ namiesto „všetko je súbor“, čo vám umožňuje zaobísť sa bez použitia súborov z dôvodu zachovania stavu pamäte a nepretržitý cyklus práce. Aplikácie v Phantome nie sú ukončené, ale iba pozastavené a obnovené od bodu prerušenia. Všetky premenné a dátové štruktúry môžu byť uložené tak dlho, ako to aplikácia potrebuje, a programátor sa nemusí špeciálne starať o ukladanie dát.

Aplikácie v Phantome sú kompilované do bajtkódu, ktorý beží vo virtuálnom stroji založenom na zásobníku, podobne ako virtuálny stroj Java. Virtuálny stroj zabezpečuje stálosť aplikačnej pamäte – systém periodicky obnovuje snímky stavu virtuálneho stroja na trvalé médium. Po vypnutí alebo zlyhaní môže práca pokračovať od poslednej uloženej snímky pamäte. Snímky sa vytvárajú v asynchrónnom režime a bez pozastavenia prevádzky virtuálneho stroja, ale do snímky sa zaznamená jednorazový výsek, ako keby sa virtuálny stroj zastavil, uložil na disk a znova spustil.

Všetky aplikácie bežia v spoločnom globálnom adresnom priestore, čo eliminuje potrebu prepínania kontextu medzi jadrom a aplikáciami a tiež výrazne zjednodušuje a zrýchľuje interakciu medzi aplikáciami bežiacimi vo virtuálnom stroji, ktoré si môžu vymieňať objekty prostredníctvom odovzdávania referencií. Oddelenie prístupu sa vykonáva na úrovni objektov, ktorých referencie možno získať iba volaním príslušných metód (neexistuje žiadna aritmetika ukazovateľa). Akékoľvek údaje vrátane číselných hodnôt sa spracúvajú ako samostatné objekty.

V prípade aplikácie sa zdá, že práca prebieha nepretržite a nezávisí od reštartovania operačného systému, zlyhania a vypínania počítača. Programovací model pre Phantom je prirovnaný k prevádzke neustáleho aplikačného servera pre objektový programovací jazyk. Portovanie programov Java na Phantom sa považuje za jednu z hlavných metód vývoja aplikácií, čo je uľahčené podobnosťou virtuálneho stroja Phantom s JVM. Okrem kompilátora bytecode pre jazyk Java projekt plánuje vytvorenie kompilátorov pre Python a C#, ako aj implementáciu prekladača zo stredného kódu WebAssembly.

Na vykonávanie operácií vyžadujúcich vysoký výkon, ako je spracovanie videa a zvuku, je možné spúšťať binárne objekty s natívnym kódom v samostatných vláknach (LLVM sa používa na zostavovanie binárnych objektov). Na prístup k nízkoúrovňovým službám jadra sú niektoré triedy VM („interné“ triedy) implementované na úrovni jadra OS. Na spustenie linuxových aplikácií je k dispozícii vrstva POSIX, ktorá emuluje volania potrebné na fungovanie procesov Unix (perzistencia pre aplikácie vo vrstve POSIX zatiaľ nie je k dispozícii).

Prototyp domáceho OS Phantom založený na Genode bude hotový do konca roka

Tradičný Phantom OS okrem virtuálneho stroja obsahuje vlastné jadro s implementáciou vlákien, správcu pamäte, garbage collector, synchronizačné mechanizmy, vstupno/výstupný systém a ovládače pre prácu s hardvérom, čo výrazne komplikuje uvedenie projektu. k pripravenosti na široké použitie. Samostatne sa vyvíjajú komponenty so sieťovým zásobníkom, grafickým subsystémom a používateľským rozhraním. Je pozoruhodné, že grafický subsystém a správca okien fungujú na úrovni jadra.

Pre zvýšenie stability, prenosnosti a bezpečnosti projektu bol urobený pokus o portovanie virtuálneho stroja Phantom na fungovanie s použitím komponentov otvoreného mikrokernelu operačného systému Genode, na ktorého vývoj dohliada nemecká spoločnosť Genode Labs. Pre tých, ktorí chcú experimentovať s Phantom založeným na Genode, bolo pripravené špeciálne prostredie na zostavenie založené na Docker.

Použitie Genode umožní použiť už osvedčené mikrokernely a ovládače, ako aj presunúť ovládače do užívateľského priestoru (v súčasnej podobe sú ovládače napísané v jazyku C a spúšťané na úrovni jadra Phantom). Predovšetkým bude možné použiť mikrokernel seL4, ktorý prešiel matematickým overením spoľahlivosti, potvrdzujúcim, že implementácia plne vyhovuje špecifikáciám uvedeným vo formálnom jazyku. Uvažuje sa o možnosti pripraviť podobný dôkaz spoľahlivosti pre virtuálny stroj Phantom, ktorý umožní overenie celého prostredia OS.

Hlavnou oblasťou použitia pre port založený na Genode je vývoj aplikácií pre rôzne priemyselné a vstavané zariadenia. V súčasnosti je už pripravený súbor zmien pre virtuálny stroj a boli pridané väzby, ktoré fungujú nad Genode, aby sa zabezpečila trvalosť komponentov jadra a hlavných nízkoúrovňových rozhraní. Je potrebné poznamenať, že virtuálny stroj Phantom už môže pracovať v 64-bitovom prostredí Genode, ale stále je potrebné implementovať VM v režime perzistencie, prepracovať podsystém ovládačov a prispôsobiť komponenty so sieťovým zásobníkom a grafickým podsystémom pre Genode.

Prototyp domáceho OS Phantom založený na Genode bude hotový do konca roka
Prototyp domáceho OS Phantom založený na Genode bude hotový do konca roka
Prototyp domáceho OS Phantom založený na Genode bude hotový do konca roka


Zdroj: opennet.ru

Pridať komentár