Prototypen af ​​det indenlandske OS Phantom baseret på Genode vil være klar inden årets udgang

Dmitry Zavalishin talte om projektet med at portere den virtuelle maskine i Phantom-operativsystemet til at arbejde i Genode-mikrokerne OS-miljøet. Interviewet bemærker, at hovedversionen af ​​Phantom allerede er klar til pilotprojekter, og versionen baseret på Genode vil blive gjort klar til brug i slutningen af ​​året. Samtidig er der hidtil kun annonceret en brugbar konceptuel prototype på projektets hjemmeside, hvis stabilitet og funktionalitet ikke er bragt til et niveau, der er egnet til industriel brug, og blandt de nærmeste planer er dannelsen af ​​en alfaversion velegnet til eksperimenter udført af tredjepartsudviklere.

Projektkoden er distribueret under LGPL-licensen, men den sidste ændring i hovedlageret er dateret november 2019. Den offentlige aktivitet relateret til projektet er koncentreret i depotet med en gaffel til Genode, som siden december 2020 er blevet vedligeholdt af Anton Antonov, en studerende fra Innopolis University.

Siden begyndelsen af ​​2000'erne er Phantom-operativsystemet blevet udviklet som et personligt projekt af Dmitry Zavalishin, og siden 2010 er det blevet overført under fløjen af ​​Digital Zone-firmaet skabt af Dmitry. Systemet er bemærkelsesværdigt for dets fokus på høj pålidelighed og brugen af ​​konceptet "alt er et objekt" i stedet for "alt er en fil", hvilket eliminerer brugen af ​​filer på grund af bevarelsen af ​​hukommelsestilstand og en kontinuerlig cyklus af arbejde. Ansøgninger i Phantom afsluttes ikke, men sættes kun på pause og genoptages fra det sted, hvor de slap. Alle variabler og datastrukturer kan gemmes så længe, ​​som applikationen har brug for, og programmøren skal ikke være særlig opmærksom på at gemme dataene.

Applikationer i Phantom er kompileret til bytekode, som kører i en stack-baseret virtuel maskine, der ligner den virtuelle Java-maskine. Den virtuelle maskine giver vedvarende applikationshukommelse - systemet fjerner med jævne mellemrum snapshots af den virtuelle maskines tilstand til vedvarende medier. Efter nedlukning eller nedbrud kan arbejdet fortsættes fra det sidst gemte hukommelsessnapshot. Snapshots oprettes asynkront og uden at suspendere den virtuelle maskine, men et snapshot fanger et engangsudsnit, som om den virtuelle maskine blev stoppet, gemt på disken og startet igen.

Alle applikationer kører i et fælles globalt adresserum, hvilket eliminerer behovet for kontekstskift mellem kernen og applikationer, og i høj grad forenkler og fremskynder kommunikationen mellem applikationer, der kører i en virtuel maskine, der kan udveksle objekter gennem referenceoverførsel. Adgangsadskillelse udføres på objektniveau, hvortil referencer kun kan opnås ved at kalde de tilsvarende metoder (der er ingen pointer-aritmetik). Alle data, inklusive numeriske værdier, behandles som separate objekter.

For applikationen ser arbejdet kontinuerligt ud og afhænger ikke af OS-genstarter, nedbrud og computernedlukninger. Programmeringsmodellen for Phantom sammenlignes med at køre en uophørlig applikationsserver til et objektprogrammeringssprog. Portering af Java-programmer til Phantom betragtes som en af ​​de vigtigste måder at udvikle applikationer på, hvilket lettes af ligheden mellem den virtuelle Phantom-maskine og JVM. Udover bytecode-kompileren til Java-sproget planlægger projektet at skabe compilere til Python og C# samt implementering af en oversætter fra WebAssembly-mellemkoden.

For at udføre operationer, der kræver høj ydeevne, såsom video- og lydbehandling, er det muligt at køre binære objekter med native kode i separate tråde (LLVM bruges til at bygge binære objekter). For at få adgang til kernetjenester på lavt niveau er nogle VM-klasser ("interne" klasser) implementeret på OS-kerneniveau. For at køre Linux-applikationer leveres et POSIX-lag, der emulerer de kald, der er nødvendige for driften af ​​Unix-processer (vedholdenhed for applikationer i POSIX-laget er endnu ikke tilvejebragt).

Prototypen af ​​det indenlandske OS Phantom baseret på Genode vil være klar inden årets udgang

Det traditionelle Phantom OS inkluderer, udover den virtuelle maskine, sin egen kerne med implementering af tråde, en hukommelsesmanager, en skraldeopsamler, synkroniseringsmekanismer, et I/O-system og drivere til at arbejde med udstyr, hvilket i høj grad komplicerer at bringe projektet til klarhed til udbredt brug. Separat udvikles komponenter med en netværksstack, et grafisk undersystem og en brugergrænseflade. Det er bemærkelsesværdigt, at det grafiske undersystem og vindueshåndteringen fungerer på kerneniveau.

For at forbedre stabiliteten, portabiliteten og sikkerheden af ​​projektet blev der gjort et forsøg på at overføre den virtuelle Phantom-maskine til arbejde ved hjælp af komponenterne i det åbne mikrokerne-operativsystem Genode, hvis udvikling overvåges af det tyske firma Genode Labs. For dem, der ønsker at eksperimentere med Phantom baseret på Genode, er der udarbejdet et særligt byggemiljø baseret på Docker.

Brug af Genode vil gøre det muligt at bruge allerede testede mikrokerner og drivere, samt at bringe drivere ind i brugerrummet (i deres nuværende form er driverne skrevet i C og køres på Phantom-kerneniveau). Især vil det være muligt at bruge seL4-mikrokernen, som har bestået matematisk verifikation af pålidelighed, hvilket bekræfter, at implementeringen fuldt ud overholder specifikationerne angivet i det formelle sprog. Muligheden for at udarbejde et lignende bevis på pålidelighed for den virtuelle Phantom-maskine overvejes, hvilket vil tillade verifikation af hele OS-miljøet.

Det vigtigste anvendelsesområde for den Genode-baserede port er udviklingen af ​​applikationer til forskellige industrielle og indlejrede enheder. På nuværende tidspunkt er et sæt ændringer for den virtuelle maskine allerede blevet forberedt, og bindinger, der kører oven på Genode, er blevet tilføjet til persistenskomponenterne i kernen og de vigtigste lavniveau-grænseflader. Det bemærkes, at den virtuelle Phantom-maskine allerede kan arbejde i et 64-bit Genode-miljø, men VM'en mangler endnu at blive implementeret i persistenstilstand, driverundersystemet skal omarbejdes, og komponenter med en netværksstak og et grafikundersystem har skal tilpasses til Genode.

Prototypen af ​​det indenlandske OS Phantom baseret på Genode vil være klar inden årets udgang
Prototypen af ​​det indenlandske OS Phantom baseret på Genode vil være klar inden årets udgang
Prototypen af ​​det indenlandske OS Phantom baseret på Genode vil være klar inden årets udgang


Kilde: opennet.ru

Tilføj en kommentar