Prototip domaćeg OS Phantom baziran na Genodeu biće gotov do kraja godine

Dmitrij Zavališin je govorio o projektu portiranja virtuelne mašine pod operativnim sistemom Phantom za rad u okruženju mikrokernel OS Genode. U intervjuu se navodi da je glavna verzija Phantom-a već spremna za pilot projekte, a verzija zasnovana na Genodeu biće spremna za upotrebu krajem godine. Istovremeno, na web stranici projekta najavljen je samo izvodljivi konceptualni prototip čija stabilnost i funkcionalnost nisu dovedeni na nivo pogodan za industrijsku upotrebu, a među neposrednim planovima formiranje alfa verzije pogodne za eksperimente pominju se programeri trećih strana.

Šifra projekta se distribuira pod licencom LGPL, ali posljednja promjena u glavnom repozitoriju data je u novembru 2019. Javna aktivnost u vezi sa projektom koncentrisana je u repozitoriju sa viljuškom za Genode, koji od decembra 2020. održava Anton Antonov, student sa Univerziteta Innopolis.

Od ranih 2000-ih, operativni sistem Phantom se razvija kao lični projekat Dmitrija Zavališina, a od 2010. prebačen je pod okrilje kompanije Digital Zone koju je stvorio Dmitrij. Sistem je poznat po svom fokusu na visoku pouzdanost i korištenje koncepta "sve je objekt" umjesto "sve je datoteka", što vam omogućava da ne koristite datoteke zbog očuvanja stanja memorije i kontinuiran ciklus rada. Aplikacije u Phantomu se ne prekidaju, već se samo obustavljaju i nastavljaju sa prekinute tačke. Sve varijable i strukture podataka mogu se čuvati onoliko dugo koliko je potrebno aplikaciji, a programer ne mora posebno da brine o čuvanju podataka.

Aplikacije u Phantomu se kompajliraju u bajt kod, koji radi u virtuelnoj mašini zasnovanoj na steku, sličnoj Java virtuelnoj mašini. Virtuelna mašina osigurava postojanost memorije aplikacije - sistem periodično resetuje snimke stanja virtuelne mašine na trajni medij. Nakon isključivanja ili pada, rad se može nastaviti počevši od posljednje sačuvane snimke memorije. Snimci se kreiraju u asinhronom režimu i bez pauziranja rada virtuelne mašine, ali se jednokratni isečak snima u snimak, kao da je virtuelna mašina zaustavljena, sačuvana na disk i ponovo pokrenuta.

Sve aplikacije rade u zajedničkom globalnom adresnom prostoru, što eliminiše potrebu za prebacivanjem konteksta između kernela i aplikacija, a takođe značajno pojednostavljuje i ubrzava interakciju između aplikacija koje se pokreću u virtuelnoj mašini, koje mogu da razmenjuju objekte putem prosleđivanja referenci. Odvajanje pristupa se vrši na nivou objekata, na koje se reference mogu dobiti samo pozivanjem odgovarajućih metoda (nema pokazivačke aritmetike). Svi podaci, uključujući numeričke vrijednosti, obrađuju se kao zasebni objekti.

Za aplikaciju se čini da je rad kontinuiran i ne zavisi od ponovnog pokretanja OS-a, rušenja i isključivanja računara. Model programiranja za Phantom se poredi sa pokretanjem servera aplikacija koji se ne zaustavlja za objektni programski jezik. Prenošenje Java programa na Phantom smatra se jednim od glavnih metoda razvoja aplikacija, što je olakšano sličnošću Phantom virtuelne mašine sa JVM-om. Pored kompajlera bajt koda za jezik Java, projekat planira kreiranje kompajlera za Python i C#, kao i implementaciju prevodioca iz srednjeg koda WebAssembly.

Za obavljanje operacija koje zahtijevaju visoke performanse, kao što su video i audio obrada, moguće je pokrenuti binarne objekte s izvornim kodom u odvojenim nitima (LLVM se koristi za sastavljanje binarnih objekata). Za pristup uslugama kernela niskog nivoa, neke VM klase („interne“ klase) implementiraju se na nivou kernela OS-a. Za pokretanje Linux aplikacija, obezbeđen je POSIX sloj koji emulira pozive neophodne za rad Unix procesa (upornost za aplikacije u POSIX sloju još nije obezbeđena).

Prototip domaćeg OS Phantom baziran na Genodeu biće gotov do kraja godine

Tradicionalni Phantom OS, pored virtuelne mašine, uključuje i sopstveno jezgro sa implementacijom niti, menadžer memorije, sakupljač smeća, mehanizme za sinhronizaciju, ulazno/izlazni sistem i drajvere za rad sa hardverom, što značajno otežava dovođenje projekta do spremnosti za široku upotrebu. Odvojeno se razvijaju komponente sa mrežnim stekom, grafičkim podsistemom i korisničkim interfejsom. Važno je napomenuti da grafički podsistem i upravitelj prozora rade na nivou kernela.

Kako bi se povećala stabilnost, prenosivost i sigurnost projekta, pokušano je da se virtuelna mašina Phantom portira za rad koristeći komponente otvorenog mikrokernel operativnog sistema Genode, čiji razvoj nadzire njemačka kompanija Genode Labs. Za one koji žele da eksperimentišu sa Phantomom baziranim na Genodeu, pripremljeno je posebno okruženje za izgradnju zasnovano na Dockeru.

Korišćenje Genode-a će omogućiti korišćenje već proverenih mikrokernela i drajvera, kao i premeštanje drajvera u korisnički prostor (u svom trenutnom obliku, drajveri su napisani u C-u i izvršavaju se na nivou Phantom kernela). Konkretno, biće moguće koristiti seL4 mikrokernel, koji je prošao matematičku verifikaciju pouzdanosti, potvrđujući da je implementacija u potpunosti usklađena sa specifikacijama navedenim u formalnom jeziku. Razmatra se mogućnost pripreme sličnog dokaza pouzdanosti za Phantom virtuelnu mašinu, koji će omogućiti verifikaciju celokupnog OS okruženja.

Glavno područje primjene porta baziranog na Genode je razvoj aplikacija za različite industrijske i ugrađene uređaje. Trenutno je već pripremljen skup izmjena za virtuelnu mašinu i dodana su veza koja rade na vrhu Genode-a kako bi se osigurala postojanost komponenti kernela i glavnih interfejsa niskog nivoa. Napominje se da virtuelna mašina Phantom već može da radi u 64-bitnom Genode okruženju, ali je i dalje potrebno implementirati VM u perzistentnom režimu, preraditi drajverski podsistem i prilagoditi komponente sa mrežnim stekom i grafičkim podsistemom za Genode.

Prototip domaćeg OS Phantom baziran na Genodeu biće gotov do kraja godine
Prototip domaćeg OS Phantom baziran na Genodeu biće gotov do kraja godine
Prototip domaćeg OS Phantom baziran na Genodeu biće gotov do kraja godine


izvor: opennet.ru

Dodajte komentar