Prototip domaćeg OS-a Phantom temeljen na Genodeu bit će spreman prije kraja godine

Dmitrij Zavališin govorio je o projektu prijenosa virtualnog stroja operativnog sustava Phantom za rad u okruženju Genode microkernel OS. U intervjuu se navodi da je glavna verzija Phantoma već spremna za pilot projekte, a verzija temeljena na Genode bit će spremna za korištenje krajem godine. Pritom je na stranicama projekta najavljen samo izvediv konceptualni prototip čija stabilnost i funkcionalnost nisu dovedene na razinu primjerenu industrijskoj uporabi, a među neposrednim planovima je i formiranje alpha verzije pogodne za eksperimente programera trećih strana spominje se.

Kôd projekta distribuira se pod licencom LGPL, ali zadnja promjena u glavnom repozitoriju datirana je u studenom 2019. Javna aktivnost povezana s projektom koncentrirana je u repozitoriju s forkom za Genode, koji od prosinca 2020. održava Anton Antonov, student sa Sveučilišta Innopolis.

Od ranih 2000-ih operativni sustav Phantom razvijao se kao osobni projekt Dmitrija Zavalishina, a od 2010. godine prešao je pod okrilje tvrtke Digital Zone koju je stvorio Dmitry. Sustav je poznat po svojoj usmjerenosti na visoku pouzdanost i korištenju koncepta "sve je objekt" umjesto "sve je datoteka", što vam omogućuje da radite bez upotrebe datoteka zbog očuvanja stanja memorije i kontinuirani ciklus rada. Aplikacije u Phantomu se ne prekidaju, već se samo obustavljaju i nastavljaju s prekinute točke. Sve varijable i podatkovne strukture mogu se pohraniti onoliko dugo koliko je potrebno aplikaciji, a programer ne mora posebno brinuti o spremanju podataka.

Aplikacije u Phantomu kompajliraju se u bajt kod, koji se izvodi u virtualnom stroju temeljenom na stogu, sličnom Java virtualnom stroju. Virtualni stroj osigurava postojanost memorije aplikacije - sustav povremeno resetira snimke stanja virtualnog stroja na trajni medij. Nakon gašenja ili pada, rad se može nastaviti počevši od posljednje spremljene snimke memorije. Snapshotovi se izrađuju u asinkronom načinu rada i bez pauziranja rada virtualnog stroja, ali se u snimku bilježi jednokratni isječak, kao da je virtualni stroj zaustavljen, spremljen na disk i ponovno pokrenut.

Sve aplikacije rade u zajedničkom globalnom adresnom prostoru, što eliminira potrebu za kontekstnim prebacivanjem između kernela i aplikacija, a također značajno pojednostavljuje i ubrzava interakciju između aplikacija koje se izvode u virtualnom stroju, a koje mogu razmjenjivati ​​objekte putem prosljeđivanja referenci. Razdvajanje pristupa provodi se na razini objekata čije se reference mogu dobiti samo pozivom odgovarajućih metoda (nema pokazivačke aritmetike). Svi podaci, uključujući numeričke vrijednosti, obrađuju se kao zasebni objekti.

Čini se da je rad aplikacije kontinuiran i ne ovisi o ponovnom pokretanju OS-a, padovima i gašenjima računala. Model programiranja za Phantom uspoređuje se s pokretanjem neprestanog aplikacijskog poslužitelja za objektni programski jezik. Prijenos Java programa na Phantom smatra se jednom od glavnih metoda razvoja aplikacija, što je olakšano sličnošću Phantom virtualnog stroja s JVM-om. Osim kompajlera bajt-koda za jezik Java, projekt planira kreirati kompajlere za Python i C#, kao i implementirati prevoditelj iz međukoda WebAssembly.

Za izvođenje operacija koje zahtijevaju visoku izvedbu, kao što je video i audio obrada, moguće je pokretati binarne objekte s izvornim kodom u zasebnim nitima (LLVM se koristi za sastavljanje binarnih objekata). Za pristup uslugama jezgre niske razine, neke VM klase ("interne" klase) implementirane su na razini jezgre OS-a. Za pokretanje Linux aplikacija, osiguran je POSIX sloj koji emulira pozive potrebne za rad Unix procesa (postojanost za aplikacije u POSIX sloju još nije osigurana).

Prototip domaćeg OS-a Phantom temeljen na Genodeu bit će spreman prije kraja godine

Tradicionalni Phantom OS, osim virtualnog stroja, uključuje vlastitu jezgru s implementacijom niti, upravitelj memorije, skupljač smeća, mehanizme sinkronizacije, ulazno/izlazni sustav i upravljačke programe za rad s hardverom, što znatno komplicira dovođenje projekta do spremnosti za široku upotrebu. Zasebno se razvijaju komponente s mrežnim stogom, grafički podsustav i korisničko sučelje. Važno je napomenuti da grafički podsustav i upravitelj prozora rade na razini jezgre.

Kako bi se povećala stabilnost, prenosivost i sigurnost projekta, pokušalo se prenijeti Phantom virtualni stroj za rad pomoću komponenti otvorenog mikrokernel operativnog sustava Genode, čiji razvoj nadzire njemačka tvrtka Genode Labs. Za one koji žele eksperimentirati s Phantomom temeljenim na Genodeu, pripremljeno je posebno okruženje za izgradnju temeljeno na Dockeru.

Korištenje Genodea omogućit će korištenje već dokazanih mikrojezgri i upravljačkih programa, kao i premještanje upravljačkih programa u korisnički prostor (u svom trenutnom obliku, upravljački programi su napisani u C-u i izvode se na razini Phantom kernela). Konkretno, bit će moguće koristiti mikrojezgru seL4, koja je prošla matematičku provjeru pouzdanosti, potvrđujući da je implementacija u potpunosti u skladu sa specifikacijama navedenim u formalnom jeziku. Razmatra se mogućnost pripreme sličnog dokaza pouzdanosti za virtualni stroj Phantom, koji će omogućiti provjeru cjelokupnog OS okruženja.

Glavno područje primjene porta temeljenog na Genodeu je razvoj aplikacija za razne industrijske i ugrađene uređaje. Trenutačno je već pripremljen skup promjena za virtualni stroj i dodana su povezivanja koja rade na Genodeu kako bi se osigurala postojanost komponenti kernela i glavnih sučelja niske razine. Napominje se da Phantom virtualni stroj već može raditi u 64-bitnom Genode okruženju, ali je još uvijek potrebno implementirati VM u persistence modu, preraditi podsustav upravljačkog programa i prilagoditi komponente s mrežnim stogom i grafičkim podsustavom za Genode.

Prototip domaćeg OS-a Phantom temeljen na Genodeu bit će spreman prije kraja godine
Prototip domaćeg OS-a Phantom temeljen na Genodeu bit će spreman prije kraja godine
Prototip domaćeg OS-a Phantom temeljen na Genodeu bit će spreman prije kraja godine


Izvor: opennet.ru

Dodajte komentar