Prototip domačega OS Phantom, ki temelji na Genode, bo pripravljen pred koncem leta

Dmitrij Zavališin je govoril o projektu prenosa virtualnega stroja operacijskega sistema Phantom za delo v okolju OS mikrojedra Genode. Intervju ugotavlja, da je glavna različica Phantoma že pripravljena za pilotne projekte, različica, ki temelji na Genode, pa bo pripravljena za uporabo konec leta. Hkrati je na spletni strani projekta napovedan le delujoč konceptualni prototip, katerega stabilnost in funkcionalnost še nista spravljeni na raven, primerno za industrijsko rabo, med neposrednimi načrti pa je oblikovanje alfa različice, primerne za eksperimente. omenjajo razvijalci tretjih oseb.

Projektna koda se distribuira pod licenco LGPL, vendar je bila zadnja sprememba v glavnem repozitoriju z datumom november 2019. Javna dejavnost v zvezi s projektom je skoncentrirana v repozitoriju z vilico za Genode, ki ga od decembra 2020 vzdržuje Anton Antonov, študent Univerze Innopolis.

Od začetka 2000-ih se je operacijski sistem Phantom razvijal kot osebni projekt Dmitrija Zavalishina, od leta 2010 pa je bil prenesen pod okrilje podjetja Digital Zone, ki ga je ustvaril Dmitry. Sistem je znan po osredotočenosti na visoko zanesljivost in uporabi koncepta "vse je predmet" namesto "vse je datoteka", kar vam omogoča, da brez uporabe datotek zaradi ohranjanja stanja pomnilnika in neprekinjen cikel dela. Aplikacije v Phantomu se ne prekinejo, temveč le začasno prekinejo in nadaljujejo s prekinjene točke. Vse spremenljivke in podatkovne strukture so lahko shranjene toliko časa, kolikor aplikacija potrebuje, programerju pa ni treba posebej skrbeti za shranjevanje podatkov.

Aplikacije v Phantomu so prevedene v bajtno kodo, ki se izvaja v navideznem stroju, ki temelji na skladu, podobno kot navidezni stroj Java. Virtualni stroj zagotavlja obstojnost aplikacijskega pomnilnika - sistem občasno ponastavi posnetke stanja virtualnega stroja na trajni medij. Po zaustavitvi ali zrušitvi se lahko delo nadaljuje od zadnjega shranjenega posnetka pomnilnika. Posnetki se ustvarjajo v asinhronem načinu in brez prekinitve delovanja virtualnega stroja, vendar se v posnetek zabeleži enkratna rezina, kot da bi bil virtualni stroj ustavljen, shranjen na disk in znova zagnan.

Vse aplikacije se izvajajo v skupnem globalnem naslovnem prostoru, kar odpravlja potrebo po kontekstnih preklapljanjih med jedrom in aplikacijami ter bistveno poenostavi in ​​pospeši interakcijo med aplikacijami, ki se izvajajo v virtualnem stroju, ki si lahko izmenjujejo objekte prek referenčnega posredovanja. Ločevanje dostopa se izvaja na ravni objektov, sklicevanja na katere je mogoče pridobiti le s klicem ustreznih metod (ni kazalne aritmetike). Vsi podatki, vključno s številskimi vrednostmi, se obdelujejo kot ločeni objekti.

Za aplikacijo se zdi, da je delo neprekinjeno in ni odvisno od ponovnih zagonov OS, zrušitev in izklopov računalnika. Programski model za Phantom se primerja z delovanjem aplikacijskega strežnika, ki se nikoli ne ustavi za objektni programski jezik. Prenos programov Java na Phantom velja za enega glavnih načinov razvoja aplikacij, kar je olajšano zaradi podobnosti virtualnega stroja Phantom z JVM. Poleg prevajalnika bajtne kode za jezik Java projekt načrtuje ustvarjanje prevajalnikov za Python in C# ter implementacijo prevajalnika iz vmesne kode WebAssembly.

Za izvajanje operacij, ki zahtevajo visoko zmogljivost, kot je obdelava videa in zvoka, je možno izvajati binarne objekte z izvorno kodo v ločenih nitih (LLVM se uporablja za sestavljanje binarnih objektov). Za dostop do storitev jedra na nizki ravni so nekateri razredi VM (»notranji« razredi) implementirani na ravni jedra OS. Za izvajanje aplikacij Linux je na voljo sloj POSIX, ki posnema klice, potrebne za delovanje procesov Unix (vztrajnost za aplikacije v sloju POSIX še ni na voljo).

Prototip domačega OS Phantom, ki temelji na Genode, bo pripravljen pred koncem leta

Tradicionalni Phantom OS poleg virtualnega stroja vključuje lastno jedro z implementacijo niti, upravljalnik pomnilnika, zbiralnik smeti, sinhronizacijske mehanizme, vhodno/izhodni sistem in gonilnike za delo s strojno opremo, kar bistveno oteži izvedbo projekta. pripravljenost za široko uporabo. Ločeno se razvijajo komponente z omrežnim skladom, grafični podsistem in uporabniški vmesnik. Omeniti velja, da grafični podsistem in upravitelj oken delujeta na ravni jedra.

Za povečanje stabilnosti, prenosljivosti in varnosti projekta je bil poskus virtualnega stroja Phantom prenesti za delovanje s komponentami odprtega mikrojedrnega operacijskega sistema Genode, katerega razvoj nadzoruje nemško podjetje Genode Labs. Za tiste, ki želijo eksperimentirati s Phantomom, ki temelji na Genode, je bilo pripravljeno posebno gradbeno okolje, ki temelji na Dockerju.

Uporaba Genode bo omogočila uporabo že preizkušenih mikrojeder in gonilnikov ter premik gonilnikov v uporabniški prostor (v trenutni obliki so gonilniki napisani v C in se izvajajo na ravni jedra Phantom). Zlasti bo mogoče uporabiti mikrojedro seL4, ki je prestalo matematično preverjanje zanesljivosti, ki potrjuje, da je izvedba v celoti v skladu s specifikacijami, določenimi v formalnem jeziku. Razmišlja se o možnosti priprave podobnega dokaza zanesljivosti za virtualni stroj Phantom, ki bo omogočal preverjanje celotnega okolja OS.

Glavno področje uporabe vrat, ki temeljijo na Genode, je razvoj aplikacij za različne industrijske in vgrajene naprave. Trenutno je nabor sprememb za virtualni stroj že pripravljen in dodane so bile vezave, ki delujejo na vrhu Genode za zagotavljanje obstojnosti komponent jedra in glavnih vmesnikov nizke ravni. Opozoriti je treba, da virtualni stroj Phantom že lahko deluje v 64-bitnem okolju Genode, vendar je še vedno treba implementirati VM v vztrajnem načinu, predelati gonilniški podsistem in prilagoditi komponente z omrežnim skladom in grafičnim podsistemom za Genode.

Prototip domačega OS Phantom, ki temelji na Genode, bo pripravljen pred koncem leta
Prototip domačega OS Phantom, ki temelji na Genode, bo pripravljen pred koncem leta
Prototip domačega OS Phantom, ki temelji na Genode, bo pripravljen pred koncem leta


Vir: opennet.ru

Dodaj komentar