Prototypen av det inhemska Phantom OS baserat på Genode kommer att vara klar i slutet av året

Dmitry Zavalishin talade om ett projekt för att porta en virtuell maskin i Phantom-operativsystemet för att fungera i Genode mikrokärn OS-miljö. Intervjun noterar att huvudversionen av Phantom redan är klar för pilotprojekt, och den Genode-baserade versionen kommer att vara klar för användning i slutet av året. Samtidigt har endast en fungerande konceptuell prototyp tillkännagivits på projektets webbplats, vars stabilitet och funktionalitet inte har bringats till en nivå som är lämplig för industriell användning, och bland de omedelbara planerna bildandet av en alfaversion lämplig för experiment av tredjepartsutvecklare nämns.

Projektkoden distribueras under LGPL-licensen, men den senaste ändringen i huvudförvaret daterades i november 2019. Offentlig verksamhet relaterad till projektet är koncentrerad i ett förvar med en gaffel för Genode, som har underhållits sedan december 2020 av Anton Antonov, en student från Innopolis University.

Sedan början av 2000-talet har Phantom-operativsystemet utvecklats som ett personligt projekt av Dmitry Zavalishin, och sedan 2010 har det överförts under vingarna av Digital Zone-företaget skapat av Dmitry. Systemet är anmärkningsvärt för sitt fokus på hög tillförlitlighet och användningen av konceptet "allt är ett objekt" istället för "allt är en fil", vilket gör att du kan klara dig utan användning av filer på grund av bevarandet av minnestillstånd och en kontinuerlig arbetscykel. Applikationer i Phantom avslutas inte, utan avbryts och återupptas endast från den avbrutna punkten. Alla variabler och datastrukturer kan lagras så länge som applikationen behöver, och programmeraren behöver inte särskilt oroa sig för att spara data.

Applikationer i Phantom kompileras till bytecode, som körs i en stackbaserad virtuell maskin, liknande den virtuella Java-maskinen. Den virtuella maskinen säkerställer beständighet av applikationsminnet - systemet återställer periodiskt ögonblicksbilder av den virtuella maskinens tillstånd till permanent media. Efter en avstängning eller krasch kan arbetet fortsätta med början från den senast sparade minnesbilden. Ögonblicksbilder skapas i asynkront läge och utan att pausa driften av den virtuella maskinen, men ett engångssnitt registreras i ögonblicksbilden, som om den virtuella maskinen stoppades, sparades på disk och startade igen.

Alla applikationer körs i ett gemensamt globalt adressutrymme, vilket eliminerar behovet av kontextväxlingar mellan kärnan och applikationer, och dessutom avsevärt förenklar och snabbar upp interaktionen mellan applikationer som körs i den virtuella maskinen, som kan utbyta objekt via referensöverföring. Åtkomstseparation utförs på objektnivå, till vilka referenser endast kan erhållas genom att anropa lämpliga metoder (det finns ingen pekarearitmetik). All data, inklusive numeriska värden, behandlas som separata objekt.

För applikationen verkar arbetet vara kontinuerligt och är inte beroende av OS-omstarter, krascher och avstängningar av datorn. Programmeringsmodellen för Phantom jämförs med att köra en aldrig upphörande applikationsserver för ett objektprogrammeringsspråk. Portering av Java-program till Phantom anses vara en av de viktigaste metoderna för applikationsutveckling, vilket underlättas av likheten mellan Phantoms virtuella maskin och JVM. Förutom bytecode-kompilatorn för Java-språket planerar projektet att skapa kompilatorer för Python och C#, samt implementera en översättare från WebAssembly-mellankoden.

För att utföra operationer som kräver hög prestanda, såsom video- och ljudbehandling, är det möjligt att köra binära objekt med inbyggd kod i separata trådar (LLVM används för att sätta ihop binära objekt). För att komma åt kärntjänster på låg nivå implementeras vissa VM-klasser ("interna" klasser) på OS-kärnnivå. För att köra Linux-applikationer tillhandahålls ett POSIX-lager som emulerar anrop som krävs för driften av Unix-processer (beständighet för applikationer i POSIX-lagret tillhandahålls ännu inte).

Prototypen av det inhemska Phantom OS baserat på Genode kommer att vara klar i slutet av året

Traditionellt Phantom OS, förutom den virtuella maskinen, inkluderar en egen kärna med implementering av trådar, en minneshanterare, en skräpsamlare, synkroniseringsmekanismer, ett in-/utgångssystem och drivrutiner för att arbeta med hårdvara, vilket avsevärt komplicerar projektet till beredskap för utbredd användning. Separat utvecklas komponenter med en nätverksstack, ett grafiskt delsystem och ett användargränssnitt. Det är anmärkningsvärt att det grafiska undersystemet och fönsterhanteraren fungerar på kärnnivå.

För att öka stabiliteten, portabiliteten och säkerheten i projektet gjordes ett försök att porta den virtuella Phantom-maskinen för att fungera med hjälp av komponenter i det öppna mikrokärnoperativsystemet Genode, vars utveckling övervakas av det tyska företaget Genode Labs. För den som vill experimentera med Phantom baserat på Genode har en speciell Docker-baserad byggmiljö förberetts.

Att använda Genode kommer att göra det möjligt att använda redan beprövade mikrokärnor och drivrutiner, samt att flytta drivrutinerna till användarutrymmet (i deras nuvarande form är drivrutinerna skrivna i C och exekveras på Phantom kärnnivå). I synnerhet kommer det att vara möjligt att använda seL4-mikrokärnan, som har genomgått matematisk tillförlitlighetsverifiering, vilket bekräftar att implementeringen helt överensstämmer med specifikationerna som anges på det formella språket. Möjligheten att förbereda ett liknande bevis på tillförlitlighet för den virtuella Phantom-maskinen övervägs, vilket kommer att möjliggöra verifiering av hela OS-miljön.

Det huvudsakliga applikationsområdet för den Genode-baserade porten är utvecklingen av applikationer för olika industriella och inbyggda enheter. För närvarande har en uppsättning ändringar för den virtuella maskinen redan förberetts och bindningar har lagts till som fungerar ovanpå Genode för att säkerställa beständigheten hos kärnkomponenter och de huvudsakliga lågnivågränssnitten. Det noteras att den virtuella Phantom-maskinen redan kan fungera i 64-bitars Genode-miljön, men det är fortfarande nödvändigt att implementera den virtuella datorn i persistensläge, omarbeta drivrutinsundersystemet och anpassa komponenter med en nätverksstack och ett grafikundersystem för Genode.

Prototypen av det inhemska Phantom OS baserat på Genode kommer att vara klar i slutet av året
Prototypen av det inhemska Phantom OS baserat på Genode kommer att vara klar i slutet av året
Prototypen av det inhemska Phantom OS baserat på Genode kommer att vara klar i slutet av året


Källa: opennet.ru

Lägg en kommentar