Genoodil põhinev kodumaise OS Phantomi prototüüp saab valmis enne aasta lõppu

Dmitri Zavalishin rääkis projektist Phantom operatsioonisüsteemi virtuaalmasina töötamiseks Genode mikrokerneli OS-i keskkonnas. Intervjuus märgitakse, et Phantomi põhiversioon on juba pilootprojektideks valmis ning Genoodil põhinev versioon on kasutusvalmis aasta lõpus. Samas on projekti kodulehel välja kuulutatud vaid töötav kontseptuaalne prototüüp, mille stabiilsus ja funktsionaalsus pole viidud tööstuslikuks kasutamiseks sobivale tasemele ning lähiplaanide hulgas katseteks sobiva alfaversiooni moodustamine. on mainitud kolmandate osapoolte arendajate poolt.

Projekti koodi levitatakse LGPL-i litsentsi all, kuid viimane muudatus põhihoidlas pärineb 2019. aasta novembrist. Projektiga seotud avalik tegevus on koondunud Genoodi hargiga hoidlasse, mida alates 2020. aasta detsembrist hooldab Innopolise ülikooli tudeng Anton Antonov.

Alates 2000. aastate algusest on operatsioonisüsteem Phantom arenenud Dmitri Zavalishini isikliku projektina ja alates 2010. aastast on see üle antud Dmitri loodud ettevõtte Digital Zone tiiva alla. Süsteem on tähelepanuväärne selle poolest, et keskendub suurele töökindlusele ja kasutab mõistet "kõik on objekt" selle asemel, et "kõik on fail", mis võimaldab teil mäluseisundi säilimise tõttu ilma failide kasutamiseta hakkama saada. pidev töötsükkel. Phantomi rakendusi ei lõpetata, vaid need peatatakse ja jätkatakse katkestatud kohast. Kõiki muutujaid ja andmestruktuure saab salvestada nii kaua, kui rakendus vajab ning programmeerija ei pea eriti muretsema andmete salvestamise pärast.

Phantomi rakendused kompileeritakse baitkoodiks, mis töötab pinupõhises virtuaalmasinas sarnaselt Java virtuaalmasinale. Virtuaalmasin tagab rakenduste mälu püsivuse – süsteem lähtestab perioodiliselt virtuaalmasina oleku hetktõmmised püsimeediumile. Pärast seiskamist või krahhi võib tööd jätkata alates viimasest salvestatud mäluhetkest. Snapshots luuakse asünkroonses režiimis ja ilma virtuaalmasina tööd peatamata, kuid hetktõmmisesse salvestatakse ühekordne lõik, justkui oleks virtuaalmasin peatatud, salvestatud kettale ja käivitatud uuesti.

Kõik rakendused töötavad ühises globaalses aadressiruumis, mis välistab vajaduse kerneli ja rakenduste vahelise konteksti vahetamise järele ning lihtsustab ja kiirendab oluliselt ka virtuaalmasinas töötavate rakenduste vahelist suhtlust, mis suudavad objekte vahetada viiteedastuse kaudu. Juurdepääsu eraldamine toimub objektide tasemel, millele viiteid saab ainult vastavate meetodite väljakutsumise kaudu (osuti aritmeetika puudub). Kõiki andmeid, sealhulgas arvväärtusi, töödeldakse eraldi objektidena.

Rakenduse puhul näib töö olevat pidev ega sõltu OS-i taaskäivitustest, krahhidest ega arvuti väljalülitamisest. Phantomi programmeerimismudelit võrreldakse objekti programmeerimiskeele jaoks pideva rakendusserveri käitamisega. Java programmide portimist Phantomi peetakse üheks peamiseks rakenduste arendamise meetodiks, mida soodustab Phantomi virtuaalmasina sarnasus JVM-iga. Lisaks Java keele baitkoodi kompilaatorile on projektis kavas luua kompilaatorid Pythoni ja C# jaoks, samuti juurutada WebAssembly vahekoodist tõlkija.

Kõrget jõudlust nõudvate toimingute, näiteks video- ja helitöötluse sooritamiseks on võimalik käivitada natiivse koodiga binaarobjekte eraldi lõimedes (binaarobjektide koostamiseks kasutatakse LLVM-i). Madala taseme kerneliteenustele juurdepääsuks on mõned VM-klassid (“sisemised” klassid) rakendatud OS-i kerneli tasemel. Linuxi rakenduste käitamiseks on ette nähtud POSIX-i kiht, mis emuleerib Unixi protsesside tööks vajalikke kõnesid (POSIX-i kihi rakenduste püsivust veel ei pakuta).

Genoodil põhinev kodumaise OS Phantomi prototüüp saab valmis enne aasta lõppu

Traditsiooniline Phantom OS sisaldab lisaks virtuaalmasinale ka oma tuuma koos lõimede juurutamisega, mäluhaldurit, prügikogujat, sünkroonimismehhanisme, sisend-/väljundsüsteemi ja draivereid riistvaraga töötamiseks, mis raskendab oluliselt projekti toomist. laialdaseks kasutamiseks valmis. Eraldi arendatakse võrgupinu, graafika alamsüsteemi ja kasutajaliidesega komponente. Tähelepanuväärne on, et graafika alamsüsteem ja aknahaldur töötavad kerneli tasemel.

Projekti stabiilsuse, kaasaskantavuse ja turvalisuse suurendamiseks üritati Phantom virtuaalmasinat tööle portida avatud mikrokerneli operatsioonisüsteemi Genode komponentide abil, mille arendamist juhendab Saksa firma Genode Labs. Neile, kes soovivad Genoodil põhineva Phantomiga katsetada, on ette valmistatud spetsiaalne Dockeri-põhine ehituskeskkond.

Genode kasutamine võimaldab kasutada juba tõestatud mikrotuumasid ja draivereid, samuti teisaldada draivereid kasutajaruumi (praegusel kujul on draiverid kirjutatud C-keeles ja käivitatud Phantom-kerneli tasemel). Eelkõige on võimalik kasutada seL4 mikrokernelit, mis on läbinud matemaatilise usaldusväärsuse kontrolli, kinnitades, et juurutamine vastab täielikult ametlikus keeles määratud spetsifikatsioonidele. Kaalumisel on võimalus koostada Phantom virtuaalmasinale sarnane töökindluse tõend, mis võimaldab kontrollida kogu OS-i keskkonda.

Genoodil põhineva pordi peamine rakendusvaldkond on rakenduste arendamine erinevatele tööstuslikele ja sisseehitatud seadmetele. Praegu on virtuaalmasina jaoks juba ette valmistatud muudatuste komplekt ja lisatud on Genode'i peal töötavad sidumised, et tagada kerneli komponentide ja peamiste madala taseme liideste püsivus. Märgitakse, et Phantom virtuaalmasin võib töötada juba 64-bitises Genode keskkonnas, kuid endiselt on vaja VM-i realiseerida püsirežiimis, draiveri alamsüsteem ümber töötada ja Genode jaoks kohandada võrgupinu ja graafika alamsüsteemiga komponente.

Genoodil põhinev kodumaise OS Phantomi prototüüp saab valmis enne aasta lõppu
Genoodil põhinev kodumaise OS Phantomi prototüüp saab valmis enne aasta lõppu
Genoodil põhinev kodumaise OS Phantomi prototüüp saab valmis enne aasta lõppu


Allikas: opennet.ru

Lisa kommentaar