Prototypen av det innenlandske OS Phantom basert på Genode vil være klar før slutten av året

Dmitry Zavalishin snakket om prosjektet med å portere den virtuelle maskinen til Phantom-operativsystemet til å fungere i Genode-mikrokjerne OS-miljøet. Intervjuet viser at hovedversjonen av Phantom allerede er klar for pilotprosjekter, og versjonen basert på Genode vil bli klargjort for bruk i slutten av året. Samtidig er det så langt kun annonsert en brukbar konseptuell prototype på prosjektets nettside, hvis stabilitet og funksjonalitet ikke er brakt til et nivå som er egnet for industriell bruk, og blant de nærmeste planene er dannelsen av en alfaversjon egnet for eksperimenter av tredjepartsutviklere.

Prosjektkoden er distribuert under LGPL-lisensen, men siste endring i hovedlageret er datert november 2019. Den offentlige aktiviteten knyttet til prosjektet er konsentrert i depotet med en gaffel for Genode, som siden desember 2020 har blitt vedlikeholdt av Anton Antonov, en student fra Innopolis University.

Siden begynnelsen av 2000-tallet har Phantom-operativsystemet blitt utviklet som et personlig prosjekt av Dmitry Zavalishin, og siden 2010 har det blitt overført under vingen til Digital Zone-selskapet opprettet av Dmitry. Systemet er kjent for sitt fokus på høy pålitelighet og bruken av konseptet "alt er et objekt" i stedet for "alt er en fil", som eliminerer bruken av filer på grunn av bevaring av minnetilstand og en kontinuerlig syklus av arbeid. Applikasjoner i Phantom blir ikke avsluttet, men bare satt på pause og gjenopptatt fra der de slapp. Alle variabler og datastrukturer kan lagres så lenge applikasjonen trenger, og programmereren trenger ikke være spesielt forsiktig med å lagre dataene.

Applikasjoner i Phantom er kompilert til bytekode, som kjører i en stabelbasert virtuell maskin, lik den virtuelle Java-maskinen. Den virtuelle maskinen gir utholdenhet i applikasjonsminnet - systemet skyller med jevne mellomrom øyeblikksbilder av tilstanden til den virtuelle maskinen til vedvarende media. Etter avslutning eller krasj, kan arbeidet fortsette fra det siste lagrede øyeblikksbildet av minnet. Øyeblikksbilder lages asynkront og uten å suspendere den virtuelle maskinen, men et øyeblikksbilde fanger opp en engangsbit, som om den virtuelle maskinen ble stoppet, lagret på disk og startet på nytt.

Alle applikasjoner kjører i et felles globalt adresserom, noe som eliminerer behovet for kontekstbytter mellom kjernen og applikasjoner, og i stor grad forenkler og fremskynder kommunikasjonen mellom applikasjoner som kjører i en virtuell maskin som kan utveksle objekter gjennom referanseoverføring. Separasjon av tilgang utføres på nivået av objekter, referanser som bare kan oppnås ved å ringe de tilsvarende metodene (det er ingen pekeraritmetikk). Alle data, inkludert numeriske verdier, behandles som separate objekter.

For applikasjonen ser arbeidet kontinuerlig ut og er ikke avhengig av omstart av operativsystemet, krasjer og datamaskinavslutninger. Programmeringsmodellen for Phantom sammenlignes med å kjøre en ustanselig applikasjonsserver for et objektprogrammeringsspråk. Portering av Java-programmer for Phantom regnes som en av de viktigste måtene å utvikle applikasjoner på, noe som tilrettelegges av likheten mellom den virtuelle Phantom-maskinen og JVM. I tillegg til bytekode-kompilatoren for Java-språket, planlegger prosjektet å lage kompilatorer for Python og C#, samt implementering av en oversetter fra WebAssembly-mellomkoden.

For å utføre operasjoner som krever høy ytelse, for eksempel video- og lydbehandling, er det mulig å kjøre binære objekter med naturlig kode i separate tråder (LLVM brukes til å bygge binære objekter). For å få tilgang til kjernetjenester på lavt nivå, er noen VM-klasser ("interne" klasser) implementert på OS-kjernenivå. For å kjøre Linux-applikasjoner er det gitt et POSIX-lag som emulerer kallene som er nødvendige for driften av Unix-prosesser (vedholdenhet for applikasjoner i POSIX-laget er ennå ikke gitt).

Prototypen av det innenlandske OS Phantom basert på Genode vil være klar før slutten av året

Det tradisjonelle Phantom OS, i tillegg til den virtuelle maskinen, inkluderer sin egen kjerne med implementering av tråder, en minnebehandling, en søppeloppsamler, synkroniseringsmekanismer, et I/O-system og drivere for arbeid med utstyr, noe som betydelig kompliserer å bringe prosjektet til beredskap for utbredt bruk. Separat utvikles komponenter med en nettverksstabel, et grafisk delsystem og et brukergrensesnitt. Det er bemerkelsesverdig at grafikkundersystemet og vindusbehandleren fungerer på kjernenivå.

For å forbedre stabiliteten, portabiliteten og sikkerheten til prosjektet ble det gjort et forsøk på å overføre den virtuelle Phantom-maskinen til arbeid ved å bruke komponentene til det åpne mikrokjerneoperativsystemet Genode, hvis utvikling er overvåket av det tyske selskapet Genode Labs. For de som ønsker å eksperimentere med Phantom basert på Genode, er det utarbeidet et spesielt byggemiljø basert på Docker.

Bruk av Genode vil gjøre det mulig å bruke allerede testede mikrokjerner og drivere, samt å bringe drivere inn i brukerrommet (i sin nåværende form er driverne skrevet i C og kjøres på Phantom kjernenivå). Spesielt vil det være mulig å bruke seL4 mikrokjernen, som har bestått matematisk verifisering av pålitelighet, som bekrefter at implementeringen fullt ut samsvarer med spesifikasjonene spesifisert på det formelle språket. Muligheten for å utarbeide et lignende bevis på pålitelighet for den virtuelle Phantom-maskinen vurderes, som vil tillate verifisering av hele OS-miljøet.

Hovedapplikasjonsområdet til den Genode-baserte porten er utviklingen av applikasjoner for ulike industrielle og innebygde enheter. For tiden er et sett med endringer for den virtuelle maskinen allerede forberedt, og bindinger som kjører på toppen av Genode er lagt til for utholdenhetskomponentene til kjernen og de viktigste lavnivågrensesnittene. Det bemerkes at den virtuelle Phantom-maskinen allerede kan fungere i et 64-bits Genode-miljø, men VM-en har ennå ikke blitt implementert i persistensmodus, driverundersystemet må omarbeides, og komponenter med en nettverksstabel og et grafikkundersystem har skal tilpasses Genode.

Prototypen av det innenlandske OS Phantom basert på Genode vil være klar før slutten av året
Prototypen av det innenlandske OS Phantom basert på Genode vil være klar før slutten av året
Prototypen av det innenlandske OS Phantom basert på Genode vil være klar før slutten av året


Kilde: opennet.ru

Legg til en kommentar