Prototyp domácího operačního systému Phantom na bázi Genode bude připraven do konce roku.

Dmitrij Zavališin hovořil o projektu portování virtuálního stroje operačního systému Phantom pro práci v prostředí mikrokernele OS Genode. V rozhovoru se zdůrazňuje, že základní verze Phantom je již připravena na pilotní projekty, a verze založená na Genode bude připravena k použití na konci roku. Na webových stránkách projektu je zatím uveden pouze funkční konceptuální prototyp, jehož stabilita a funkčnost nejsou na úrovni vhodné pro průmyslové využití, a mezi nejbližšími plány se zmiňuje vytvoření alpha verze, vhodné pro experimenty externích vývojářů.

Kód projektu je distribuován pod licencí LGPL, ale poslední změna v hlavním repozitáři datuje k listopadu 2019. Společenská aktivita související s projektem je soustředěna v repozitáři s forkem pro Genode, který od prosince 2020 udržuje Anton Antonov, student z univerzity Innopolis.

Operační systém Phantom se od počátku 2000. let vyvíjel jako osobní projekt Dmitrije Zavališina, a od roku 2010 přešel pod společnost Digital Zone, kterou založil Dmitrij. Systém se vyznačuje orientací na vysokou spolehlivost a využitím konceptu "všechno je objekt" místo "všechno je soubor", což umožňuje obejít se bez používání souborů díky uchovávání stavu paměti a nepřetržitému pracovnímu cyklu. Aplikace v Phantom se neskončí, ale pouze pozastaví a obnoví práci z přerušeného bodu. Všechny proměnné a struktury dat mohou být uchovávány tak dlouho, jak je to pro aplikaci potřeba, přičemž programátor se nemusí zvlášť starat o uchovávání dat.

Aplikace v Phantom jsou kompilovány do bajtkódu, který se vykonává ve zásobníkové virtuální stroji podobné virtuální stroji Java. Virtuální stroj zajišťuje perzistenci paměti aplikací — systém pravidelně ukládá snímky stavu virtuálního stroje na trvalý nosič. Po vypnutí nebo havarijním ukončení se práce může obnovit od posledního uloženého snímku paměti. Snímky se vytvářejí asynchronně a bez pozastavení práce virtuálního stroje, ale ve snímku je fixován okamžitý ř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ž umožňuje obejít se bez přepínání kontextu mezi jádrem a aplikacemi a také výrazně zjednodušuje a zrychluje interakci mezi běžícími aplikacemi ve virtuálním stroji, které mohou vyměňovat objekty prostřednictvím předávání odkazů. Rozdělení přístupu se realizuje na úrovni objektů, jejichž odkazy lze získat pouze voláním příslušných metod (aritmetika ukazatelů chybí). Jakákoli data, včetně číselných hodnot, se zpracovávají jako samostatné objekty.

Pro aplikaci vypadá práce jako kontinuální a nezávisí na restartování operačního systému, havarijním ukončení a vypnutí počítače. Programovací model pro Phantom je srovnáván s provozem nikdy se nezastavujícího serveru aplikací pro objektový programovací jazyk. Jako jeden z hlavních způsobů vývoje aplikací se zvažuje portování pro Phantom aplikací v jazyce Java, což usnadňuje podobnost virtuálního stroje Phantom s JVM. Kromě kompilátoru bajtkódu pro jazyk Java projekt plánuje vytvoření kompilátorů pro Python a C#, jakož i realizaci překladače z mezikódu WebAssembly.

Pro provádění operací vyžadujících vysoký výkon, jako je zpracování videa a zvuku, je k dispozici možnost spouštění v oddělených vláknech binárních objektů s nativním kódem (pro sestavení binárních objektů se používá LLVM). Pro přístup k nízkoúrovňovým službám jádra je část tříd VM („interní“ třídy) implementována na úrovni jádra OS. Pro spuštění aplikací Linux je připravena POSIX vrstva, která provádí emulaci volání potřebných pro provoz Unixových procesů (perzistence pro aplikace v POSIX vrstvě zatím není zajištěna).

Prototyp domácího operačního systému Phantom na bázi Genode bude připraven do konce roku.

Tradiční OS Phantom kromě virtuálního stroje zahrnuje vlastní jádro s implementací vláken, správce paměti, garbage collector, mechanismy synchronizace, systém vstupu/výstupu a ovladače pro práci s hardwarem, což výrazně komplikuje dokončení projektu pro široké použití. Významné komponenty se vyvíjejí samostatně, včetně síťového stacku, grafického subsystému a uživatelského rozhraní. Zajímavé je, že grafický subsystém a správce oken pracují na úrovni jádra.

Pro zvýšení stability, přenosnosti a bezpečnosti projektu byla učiněna snaha o přenesení virtuálního stroje Phantom pro práci s komponenty otevřeného mikro-jádra operačního systému Genode, jehož vývoj řídí německá společnost Genode Labs. Pro ty, kteří chtějí experimentovat s Phantom na základě Genode, bylo připraveno speciální sestavovací prostředí na základě Dockeru.

Použití Genode umožní využití již osvědčených mikro-jader a ovladačů, a také přesunout ovladače do prostoru uživatele (v současné podobě jsou ovladače napsány v C a vykonávají se na úrovni jádra Phantom). Mezi jinými se otevře možnost využití mikro-jádra seL4, které prošlo matematickou verifikací spolehlivosti potvrzující, že implementace zcela odpovídá speciifikacím stanoveným ve formálním jazyce. Zvažuje se možnost připravit podobný důkaz spolehlivosti i pro virtuální stroj Phantom, což umožní dosáhnout verifikace celého prostředí operačního systému.

Hlavní oblastí použití portu na bázi Genode je vývoj aplikací pro různá průmyslová a vestavěná zařízení. V současnosti už byl připraven soubor změn pro virtuální stroj a byly přidány funkční obálky nad Genode, které zajišťují perzistenci komponent jádra a hlavních nízkoúrovňových rozhraní. Je zdůrazněno, že virtuální stroj Phantom již může fungovat v 64bitovém prostředí Genode, ale stále je třeba implementovat práci VM v režimu perzistence, přepracovat subsystém ovladačů a přizpůsobit pro Genode komponenty se síťovým zásobníkem a grafickým subsystémem.

Prototyp domácího operačního systému Phantom na bázi Genode bude připraven do konce roku.
Prototyp domácího operačního systému Phantom na bázi Genode bude připraven do konce roku.
Prototyp domácího operačního systému Phantom na bázi Genode bude připraven do konce roku.


Zdroj: opennet.ru
Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster