Vietinės OS Phantom prototipas, pagrįstas Genode, bus paruoštas iki metų pabaigos

Dmitrijus Zavalishinas papasakojo apie projektą, skirtą Phantom operacinės sistemos virtualios mašinos perkėlimui dirbti Genode mikrobranduolių OS aplinkoje. Interviu pažymima, kad pagrindinė „Phantom“ versija jau paruošta bandomiesiems projektams, o „Genode“ pagrindu sukurta versija bus paruošta naudoti metų pabaigoje. Tuo pat metu projekto svetainėje paskelbtas tik veikiantis konceptualus prototipas, kurio stabilumas ir funkcionalumas nebuvo pasiektas iki pramoniniam naudojimui tinkamo lygio, o artimiausiuose planuose – eksperimentams tinkamos alfa versijos formavimas. paminėta trečiųjų šalių kūrėjų.

Projekto kodas platinamas pagal LGPL licenciją, tačiau paskutinis pakeitimas pagrindinėje saugykloje datuojamas 2019 m. lapkričio mėn. Su projektu susijusi visuomeninė veikla sutelkta saugykloje su šakute Genodui, kurią nuo 2020 metų gruodžio tvarko Innopolio universiteto studentas Antonas Antonovas.

Nuo 2000-ųjų pradžios „Phantom“ operacinė sistema buvo kuriama kaip asmeninis Dmitrijaus Zavalishino projektas, o nuo 2010 metų ji buvo perkelta į Dmitrijaus sukurtos įmonės „Digital Zone“ sparną. Sistema išsiskiria tuo, kad orientuojasi į didelį patikimumą ir naudoja sąvoką „viskas yra objektas“, o ne „viskas yra failas“, o tai leidžia apsieiti be failų naudojimo dėl atminties būsenos išsaugojimo ir nenutrūkstamas darbo ciklas. Phantom programos nėra nutraukiamos, o tik sustabdomos ir atnaujinamos nuo pertraukto taško. Visi kintamieji ir duomenų struktūros gali būti saugomi tiek laiko, kiek reikia programai, o programuotojui nereikia specialiai rūpintis duomenų išsaugojimu.

„Phantom“ programos yra kompiliuojamos į baitinį kodą, kuris veikia dėklo virtualioje mašinoje, panašiai kaip „Java“ virtualioji mašina. Virtuali mašina užtikrina programų atminties išlikimą – sistema periodiškai iš naujo nustato virtualios mašinos būsenos momentines nuotraukas į nuolatinę laikmeną. Po išjungimo ar gedimo darbas gali tęstis nuo paskutinės išsaugotos atminties momentinės nuotraukos. Momentinės nuotraukos kuriamos asinchroniniu režimu ir nestabdant virtualios mašinos veikimo, tačiau momentinėje nuotraukoje įrašomas vienkartinis pjūvis, tarsi virtualioji mašina būtų sustabdyta, išsaugoma diske ir paleidžiama iš naujo.

Visos programos veikia bendroje visuotinėje adresų erdvėje, todėl nebereikia konteksto perjungimo tarp branduolio ir programų, taip pat žymiai supaprastina ir pagreitina virtualioje mašinoje veikiančių programų, kurios gali keistis objektais per nuorodų perdavimą, sąveiką. Prieigos atskyrimas atliekamas objektų lygiu, į kuriuos nuorodas galima gauti tik iškvietus atitinkamus metodus (nėra rodyklės aritmetikos). Bet kokie duomenys, įskaitant skaitines reikšmes, apdorojami kaip atskiri objektai.

Atrodo, kad programos darbas yra nenutrūkstamas ir nepriklauso nuo OS perkrovimų, gedimų ir kompiuterio išjungimų. „Phantom“ programavimo modelis lyginamas su nuolatinio taikomųjų programų serverio valdymu objektų programavimo kalbai. „Java“ programų perkėlimas į „Phantom“ laikomas vienu iš pagrindinių taikomųjų programų kūrimo būdų, kurį palengvina Phantom virtualios mašinos panašumas į JVM. Be Java kalbos baitinio kodo kompiliatoriaus, projekte planuojama sukurti Python ir C# kompiliatorius, taip pat įdiegti vertėją iš WebAssembly tarpinio kodo.

Norint atlikti didelio našumo reikalaujančias operacijas, tokias kaip vaizdo ir garso apdorojimas, galima paleisti dvejetainius objektus su vietiniu kodu atskirose gijose (LLVM naudojamas dvejetainiams objektams surinkti). Norint pasiekti žemo lygio branduolio paslaugas, kai kurios VM klasės („vidinės“ klasės) yra įdiegtos OS branduolio lygiu. Norint paleisti Linux programas, yra numatytas POSIX sluoksnis, kuris emuliuoja Unix procesų veikimui būtinus iškvietimus (POSIX sluoksnio taikomųjų programų išlikimas dar nenumatytas).

Vietinės OS Phantom prototipas, pagrįstas Genode, bus paruoštas iki metų pabaigos

Tradicinė Phantom OS, be virtualios mašinos, apima savo branduolį su gijų diegimu, atminties tvarkyklę, šiukšlių rinktuvą, sinchronizavimo mechanizmus, įvesties / išvesties sistemą ir tvarkykles darbui su aparatine įranga, o tai labai apsunkina projekto įgyvendinimą. iki pasirengimo plačiai naudoti. Atskirai kuriami komponentai su tinklo kaminu, grafine posisteme ir vartotojo sąsaja. Pažymėtina, kad grafikos posistemis ir langų tvarkyklė veikia branduolio lygiu.

Siekiant padidinti projekto stabilumą, perkeliamumą ir saugumą, Phantom virtualią mašiną buvo bandoma perkelti į darbą naudojant atviros mikrobranduolių operacinės sistemos Genode komponentus, kurių kūrimą kuruoja Vokietijos įmonė Genode Labs. Norintiems eksperimentuoti su Phantom, paremtu Genode, buvo paruošta speciali Docker pagrindu sukurta kūrimo aplinka.

Naudojant Genodą, bus galima naudoti jau patikrintus mikrobranduolius ir tvarkykles, taip pat perkelti tvarkykles į vartotojo erdvę (dabartinėje formoje tvarkyklės parašytos C ir vykdomos Phantom branduolio lygiu). Visų pirma bus galima naudoti seL4 mikrobrandulį, kuriam atlikta matematinė patikimumo patikra, patvirtinanti, kad diegimas visiškai atitinka oficialioje kalboje nurodytas specifikacijas. Svarstoma galimybė parengti panašų Phantom virtualios mašinos patikimumo įrodymą, kuris leis patikrinti visą OS aplinką.

Pagrindinė „Genode“ pagrindu veikiančio prievado taikymo sritis yra programų kūrimas įvairiems pramoniniams ir įterptiesiems įrenginiams. Šiuo metu jau yra paruoštas virtualios mašinos pakeitimų rinkinys ir pridėti susiejimai, veikiantys Genode, siekiant užtikrinti branduolio komponentų ir pagrindinių žemo lygio sąsajų išlikimą. Pažymima, kad Phantom virtuali mašina jau gali veikti 64 bitų Genode aplinkoje, tačiau vis dar reikia įdiegti VM persistengimo režimu, perdaryti tvarkyklės posistemį ir pritaikyti komponentus su tinklo stekeliu ir grafiniu posistemiu Genode.

Vietinės OS Phantom prototipas, pagrįstas Genode, bus paruoštas iki metų pabaigos
Vietinės OS Phantom prototipas, pagrįstas Genode, bus paruoštas iki metų pabaigos
Vietinės OS Phantom prototipas, pagrįstas Genode, bus paruoštas iki metų pabaigos


Šaltinis: opennet.ru

Добавить комментарий