Prototyp domácího OS Phantom na bázi Genode bude hotov do konce roku

Dmitrij Zavalishin hovořil o projektu portování virtuálního stroje operačního systému Phantom pro práci v prostředí operačního systému Genode microkernel. Rozhovor uvádí, že hlavní verze Phantoma je již připravena pro pilotní projekty a verze založená na Genode bude připravena k použití na konci roku. Zároveň je na stránkách projektu oznámen pouze funkční koncepční prototyp, jehož stabilita a funkčnost nebyla dovedena na úroveň vhodnou pro průmyslové využití a mezi nejbližšími plány je vytvoření alfa verze vhodné pro experimenty. od vývojářů třetích stran.

Kód projektu je distribuován pod licencí LGPL, ale poslední změna v hlavním úložišti byla z listopadu 2019. Veřejná aktivita související s projektem je soustředěna v úložišti s vidlicí pro Genode, které od prosince 2020 spravuje Anton Antonov, student z Innopolis University.

Od počátku roku 2000 se operační systém Phantom vyvíjel jako osobní projekt Dmitrije Zavalishina a od roku 2010 byl převeden pod křídla společnosti Digital Zone vytvořené Dmitrijem. Systém se vyznačuje zaměřením na vysokou spolehlivost a používáním konceptu „vše je objekt“ místo „všechno je soubor“, což umožňuje obejít se bez použití souborů z důvodu zachování stavu paměti a nepřetržitý cyklus práce. Aplikace ve Phantomu nejsou ukončeny, ale pouze pozastaveny a obnoveny od místa přerušení. Všechny proměnné a datové struktury mohou být uloženy tak dlouho, jak to aplikace potřebuje, a programátor se nemusí konkrétně starat o ukládání dat.

Aplikace ve Phantomu jsou zkompilovány do bajtkódu, který běží ve virtuálním stroji založeném na zásobníku, podobném virtuálnímu stroji Java. Virtuální stroj zajišťuje perzistenci aplikační paměti – systém periodicky obnovuje snímky stavu virtuálního stroje na trvalé médium. Po vypnutí nebo zhroucení může práce pokračovat od posledního uloženého snímku paměti. Snímky jsou vytvářeny v asynchronním režimu a bez pozastavení provozu virtuálního stroje, ale do snímku je zaznamenán jednorázový řez, jako by byl virtuální stroj zastaven, uložen na disk a znovu spuštěn.

Všechny aplikace běží ve společném globálním adresním prostoru, což eliminuje nutnost přepínání kontextu mezi jádrem a aplikacemi a také výrazně zjednodušuje a zrychluje interakci mezi aplikacemi běžícími ve virtuálním stroji, které si mohou vyměňovat objekty prostřednictvím předávání referencí. Oddělení přístupu se provádí na úrovni objektů, odkazy na které lze získat pouze voláním příslušných metod (neexistuje žádná aritmetika ukazatele). Jakákoli data, včetně číselných hodnot, jsou zpracovávána jako samostatné objekty.

U aplikace se zdá, že práce je nepřetržitá a nezávisí na restartech OS, pádech a vypínání počítače. Programovací model pro Phantom je srovnáván s provozováním nikdy nekončícího aplikačního serveru pro objektový programovací jazyk. Portování programů Java na Phantom je považováno za jednu z hlavních metod vývoje aplikací, což je usnadněno podobností virtuálního stroje Phantom s JVM. Kromě kompilátoru bytecode pro jazyk Java projekt plánuje vytvoření kompilátorů pro Python a C# a také implementaci překladače z mezikódu WebAssembly.

Pro provádění operací, které vyžadují vysoký výkon, jako je zpracování videa a zvuku, je možné spouštět binární objekty s nativním kódem v samostatných vláknech (LLVM se používá k sestavení binárních objektů). Pro přístup k nízkoúrovňovým službám jádra jsou některé třídy virtuálních počítačů („interní“ třídy) implementovány na úrovni jádra operačního systému. Pro běh linuxových aplikací je poskytována vrstva POSIX, která emuluje volání nezbytná pro provoz unixových procesů (perzistence pro aplikace ve vrstvě POSIX zatím není zajištěna).

Prototyp domácího OS Phantom na bázi Genode bude hotov do konce roku

Tradiční Phantom OS kromě virtuálního stroje obsahuje vlastní jádro s implementací vláken, správce paměti, garbage collector, synchronizační mechanismy, vstupní/výstupní systém a ovladače pro práci s hardwarem, což výrazně komplikuje uvedení projektu. k připravenosti k širokému použití. Samostatně jsou vyvíjeny komponenty se síťovým zásobníkem, grafickým subsystémem a uživatelským rozhraním. Je pozoruhodné, že grafický subsystém a správce oken fungují na úrovni jádra.

Pro zvýšení stability, přenositelnosti a bezpečnosti projektu byl učiněn pokus o portování virtuálního stroje Phantom pro práci s využitím komponent otevřeného mikrojádrového operačního systému Genode, na jehož vývoj dohlíží německá společnost Genode Labs. Pro ty, kteří chtějí experimentovat s Phantomem založeným na Genode, bylo připraveno speciální prostředí pro sestavení založené na Dockeru.

Použití Genode umožní používat již osvědčená mikrojádra a ovladače a také přesunout ovladače do uživatelského prostoru (v současné podobě jsou ovladače napsány v C a spouštěny na úrovni jádra Phantom). Zejména bude možné použít mikrokernel seL4, který prošel matematickým ověřením spolehlivosti potvrzujícím, že implementace plně vyhovuje specifikacím uvedeným ve formálním jazyce. Uvažuje se o možnosti připravit podobný důkaz spolehlivosti pro virtuální stroj Phantom, který umožní ověření celého prostředí OS.

Hlavní aplikační oblastí pro port založený na Genode je vývoj aplikací pro různá průmyslová a vestavěná zařízení. V současné době je již připravena sada změn pro virtuální stroj a byly přidány vazby, které fungují nad Genode pro zajištění perzistence komponent jádra a hlavních nízkoúrovňových rozhraní. Je třeba poznamenat, že virtuální stroj Phantom již může pracovat v 64bitovém prostředí Genode, ale stále je nutné implementovat VM v režimu persistence, přepracovat subsystém ovladače a přizpůsobit komponenty se síťovým zásobníkem a grafickým subsystémem pro Genode.

Prototyp domácího OS Phantom na bázi Genode bude hotov do konce roku
Prototyp domácího OS Phantom na bázi Genode bude hotov do konce roku
Prototyp domácího OS Phantom na bázi Genode bude hotov do konce roku


Zdroj: opennet.ru

Přidat komentář