Prototipul sistemului de operare intern Phantom bazat pe Genode va fi gata înainte de sfârșitul anului

Dmitry Zavalishin a vorbit despre un proiect de portare a unei mașini virtuale a sistemului de operare Phantom pentru a funcționa în mediul de operare cu microkernel Genode. Interviul notează că versiunea principală a Phantom este deja pregătită pentru proiecte pilot, iar versiunea bazată pe Genode va fi gata de utilizare la sfârșitul anului. În același timp, pe site-ul proiectului a fost anunțat doar un prototip conceptual funcțional, a cărui stabilitate și funcționalitate nu au fost aduse la un nivel adecvat utilizării industriale, iar printre planurile imediate formarea unei versiuni alfa potrivite pentru experimente de către dezvoltatori terți este menționat.

Codul proiectului este distribuit sub licența LGPL, dar ultima modificare în depozitul principal a fost datată noiembrie 2019. Activitatea publică legată de proiect este concentrată într-un depozit cu furcă pentru Genode, care este întreținut din decembrie 2020 de Anton Antonov, student de la Universitatea Innopolis.

De la începutul anilor 2000, sistemul de operare Phantom s-a dezvoltat ca proiect personal al lui Dmitry Zavalishin, iar din 2010 a fost transferat sub aripa companiei Digital Zone creată de Dmitry. Sistemul se remarcă prin concentrarea pe fiabilitatea ridicată și prin utilizarea conceptului de „totul este un obiect” în loc de „totul este un fișier”, ceea ce vă permite să faceți fără utilizarea fișierelor datorită păstrării stării memoriei și un ciclu continuu de muncă. Aplicațiile în Phantom nu sunt încheiate, ci sunt doar suspendate și reluate din punctul întrerupt. Toate variabilele și structurile de date pot fi stocate atâta timp cât are nevoie aplicația, iar programatorul nu trebuie să-și facă griji în mod specific cu privire la salvarea datelor.

Aplicațiile din Phantom sunt compilate în bytecode, care rulează într-o mașină virtuală bazată pe stivă, similar cu mașina virtuală Java. Mașina virtuală asigură persistența memoriei aplicației - sistemul resetează periodic instantaneele stării mașinii virtuale pe medii permanente. După o oprire sau un accident, lucrul poate continua începând de la ultimul instantaneu de memorie salvat. Instantaneele sunt create în modul asincron și fără a întrerupe funcționarea mașinii virtuale, dar o porțiune unică este înregistrată în instantaneu, ca și cum mașina virtuală a fost oprită, salvată pe disc și repornită.

Toate aplicațiile rulează într-un spațiu de adrese global comun, ceea ce elimină nevoia de comutare de context între kernel și aplicații și, de asemenea, simplifică și accelerează semnificativ interacțiunea dintre aplicațiile care rulează în mașina virtuală, care poate schimba obiecte prin trecerea referințelor. Separarea accesului se realizează la nivelul obiectelor, referințele la care pot fi obținute doar prin apelarea metodelor adecvate (nu există aritmetică pointer). Orice date, inclusiv valorile numerice, sunt procesate ca obiecte separate.

Pentru aplicație, munca pare a fi continuă și nu depinde de repornirile sistemului de operare, blocările și opririle computerului. Modelul de programare pentru Phantom este comparat cu rularea unui server de aplicații neîncetat pentru un limbaj de programare obiect. Portarea programelor Java la Phantom este considerată una dintre principalele metode de dezvoltare a aplicațiilor, care este facilitată de asemănarea mașinii virtuale Phantom cu JVM. Pe lângă compilatorul de bytecode pentru limbajul Java, proiectul intenționează să creeze compilatoare pentru Python și C#, precum și să implementeze un traducător din codul intermediar WebAssembly.

Pentru a efectua operațiuni care necesită performanțe ridicate, cum ar fi procesarea video și audio, este posibil să rulați obiecte binare cu cod nativ în fire separate (LLVM este folosit pentru a asambla obiecte binare). Pentru a accesa serviciile de nucleu de nivel scăzut, unele clase VM (clase „interne”) sunt implementate la nivel de nucleu al sistemului de operare. Pentru a rula aplicații Linux, este prevăzut un strat POSIX care emulează apelurile necesare pentru funcționarea proceselor Unix (persistența pentru aplicațiile din stratul POSIX nu este încă furnizată).

Prototipul sistemului de operare intern Phantom bazat pe Genode va fi gata înainte de sfârșitul anului

Sistemul de operare Phantom tradițional, pe lângă mașina virtuală, include propriul nucleu cu implementarea de fire, un manager de memorie, un colector de gunoi, mecanisme de sincronizare, un sistem de intrare/ieșire și drivere pentru lucrul cu hardware, ceea ce complică semnificativ aducerea proiectului. la pregătirea pentru utilizare pe scară largă. Separat, sunt dezvoltate componente cu o stivă de rețea, un subsistem grafic și o interfață cu utilizatorul. Este de remarcat faptul că subsistemul grafic și managerul de ferestre funcționează la nivel de kernel.

Pentru a crește stabilitatea, portabilitatea și securitatea proiectului, s-a încercat portarea mașinii virtuale Phantom pentru a funcționa folosind componente ale sistemului de operare microkernel deschis Genode, a cărui dezvoltare este supravegheată de compania germană Genode Labs. Pentru cei care doresc să experimenteze cu Phantom bazat pe Genode, a fost pregătit un mediu de construcție special bazat pe Docker.

Utilizarea Genode va face posibilă utilizarea microkernel-urilor și driverelor deja dovedite, precum și mutarea driverelor în spațiul utilizatorului (în forma lor actuală, driverele sunt scrise în C și executate la nivelul nucleului Phantom). În special, va fi posibilă utilizarea microkernel-ului seL4, care a fost supus verificării fiabilității matematice, confirmând că implementarea respectă pe deplin specificațiile specificate în limbajul formal. Se are în vedere posibilitatea pregătirii unei dovezi similare de fiabilitate pentru mașina virtuală Phantom, care să permită verificarea întregului mediu OS.

Principala zonă de aplicare pentru portul bazat pe Genode este dezvoltarea de aplicații pentru diverse dispozitive industriale și încorporate. În prezent, un set de modificări pentru mașina virtuală a fost deja pregătit și au fost adăugate legături care funcționează pe lângă Genode pentru a asigura persistența componentelor kernelului și a principalelor interfețe de nivel scăzut. Se observă că mașina virtuală Phantom poate funcționa deja în mediul Genode pe 64 de biți, dar este încă necesară implementarea VM-ului în modul de persistență, reelaborarea subsistemului driverului și adaptarea componentelor cu o stivă de rețea și un subsistem grafic pentru Genode.

Prototipul sistemului de operare intern Phantom bazat pe Genode va fi gata înainte de sfârșitul anului
Prototipul sistemului de operare intern Phantom bazat pe Genode va fi gata înainte de sfârșitul anului
Prototipul sistemului de operare intern Phantom bazat pe Genode va fi gata înainte de sfârșitul anului


Sursa: opennet.ru

Adauga un comentariu