Prototypen van het binnenlandse besturingssysteem Phantom op basis van Genode zullen voor het einde van het jaar gereed zijn

Dmitry Zavalishin vertelde over het project voor het porteren van de virtuele machine van het besturingssysteem Phantom om te functioneren in de omgeving van het microkernel-besturingssysteem Genode. In het interview wordt opgemerkt dat de belangrijkste versie van Phantom al klaar is voor pilotprojecten, en de versie gebaseerd op Genode zal eind dit jaar gereed zijn voor gebruik. Momenteel is op de projectwebsite alleen een werkend conceptueel prototype aangekondigd, waarvan de stabiliteit en functionaliteit nog niet zijn ontwikkeld tot een niveau dat geschikt is voor industrieel gebruik, en onder de nabijgelegen plannen wordt de ontwikkeling van een alfa-versie genoemd, die geschikt is voor experimenten door externe ontwikkelaars.

De code van het project wordt verspreid onder de LGPL-licentie, maar de laatste wijziging in de hoofdrepository dateert van november 2019. De publieke activiteit gerelateerd aan het project concentreert zich in een repository met een fork voor Genode, die sinds december 2020 wordt ondersteund door Anton Antonov, een student van de Universiteit Innopolis.

Het besturingssysteem Phantom is sinds het begin van de jaren 2000 ontwikkeld als een persoonlijk project van Dmitry Zavalishin, en sinds 2010 is het onder de vleugels van het bedrijf Digital Zone gebracht, dat door Dmitry is opgericht. Het systeem is opmerkelijk vanwege de focus op hoge betrouwbaarheid en het gebruik van het concept 'alles is een object' in plaats van 'alles is een bestand', wat het mogelijk maakt om zonder bestanden te werken door gebruik te maken van het opslaan van de geheugentoestand en een continue werkcyclus. Toepassingen in Phantom eindigen niet, maar worden slechts gepauseerd en hervatten hun werk vanaf het punt waar ze zijn onderbroken. Alle variabelen en datastructuren kunnen zo lang worden opgeslagen als nodig is voor de applicatie, zonder dat de programmeur zich speciaal hoeft te bekommeren om het opslaan van data.

Toepassingen in Phantom worden gecompileerd naar bytecode die wordt uitgevoerd op een stack-gebaseerde virtuele machine, vergelijkbaar met de Java-virtuele machine. De virtuele machine garandeert de persistentie van applicatiegeheugen; het systeem maakt periodiek snapshots van de status van de virtuele machine op een permanent opslagmedium. Na uitschakeling of een fatale fout kan het werk worden hervat vanaf de laatste opgeslagen geheugenstatus. Snapshots worden asynchroon gemaakt en zonder dat de werking van de virtuele machine wordt gepauzeerd, maar in de snapshot wordt een momentopname vastgelegd, alsof de virtuele machine werd gestopt, op schijf werd opgeslagen en opnieuw werd gestart.

Alle applicaties worden uitgevoerd in een algemene globale adresruimte, wat schakelingen tussen de kernel en applicaties overbodig maakt en de interactie tussen de in de virtuele machine draaiende applicaties aanzienlijk vereenvoudigt en versnelt, aangezien deze objecten kunnen uitwisselen via het doorgeven van referenties. Toegang wordt gescheiden op objectniveau, waarvan de verwijzingen alleen kunnen worden verkregen door de juiste methoden aan te roepen (pointerrekening ontbreekt). Alle gegevens, inclusief numerieke waarden, worden behandeld als aparte objecten.

Voor de applicatie lijkt het werk continu en is het niet afhankelijk van besturingssysteemherstarts, fatale fouten en computerafsluitingen. Het programmeermodel voor Phantom wordt vergeleken met het uitvoeren van nooit stoppende de server applicaties voor een objectgeoriënteerde programmeertaal. Een van de belangrijkste manieren om applicaties te ontwikkelen is de porting van Java-applicaties naar Phantom, wat mogelijk wordt gemaakt door de overeenkomst tussen de virtuele machine Phantom en de JVM. Naast de bytecode-compileur voor de programmeertaal Java is het project van plan om compilatoren voor Python en C# te creëren, evenals de implementatie van een translator van tussenliggende code naar WebAssembly.

Voor het uitvoeren van taken die een hoge prestatie vereisen, zoals video- en geluidsverwerking, is het mogelijk om binaire objecten met native code in afzonderlijke threads te draaien (voor het bouwen van binaire objecten wordt LLVM gebruikt). Voor toegang tot de low-level services van de kernel zijn sommige klassen van de VM ("interne" klassen) op het niveau van de OS-kernel geïmplementeerd. Voor het draaien van Linux-apps is er een POSIX-laag beschikbaar die de oproepen emuleert die nodig zijn voor Unix-processen (persistentie voor apps in de POSIX-laag wordt momenteel nog niet ondersteund).

Prototypen van het binnenlandse besturingssysteem Phantom op basis van Genode zullen voor het einde van het jaar gereed zijn

Het traditionele OS Phantom omvat naast de virtuele machine ook een eigen kernel met implementaties van threads, geheugenschema's, garbage collectors, synchronisatiemechanismen, invoer/-uitvoersystemen en stuurprogramma's voor hardware, wat het aanzienlijk bemoeilijkt om het project gereed te maken voor brede toepassing. Componenten met een netwerkstack, grafisch subsysteem en gebruikersinterface worden apart ontwikkeld. Opvallend is dat het grafische subsysteem en de window manager op het niveau van de kernel werken.

Om de stabiliteit, draagbaarheid en veiligheid van het project te verhogen, is geprobeerd de Phantom-virtuele machine over te zetten voor gebruik met componenten van het open-source microkernel-besturingssysteem Genode, dat wordt ontwikkeld onder toezicht van het Duitse bedrijf Genode Labs. Voor degenen die willen experimenteren met Phantom op basis van Genode is er een speciale bouwomgeving gemaakt op basis van Docker.

Het gebruik van Genode biedt de mogelijkheid om al bewezen microkernels en stuurprogramma's te gebruiken, en ook om stuurprogramma's naar de gebruikersruimte te verplaatsen (in de huidige vorm zijn de stuurprogramma's geschreven in C en worden ze op het niveau van de Phantom-kernel uitgevoerd). Dit maakt het ook mogelijk om het seL4-microkernel te gebruiken, dat een wiskundige verificatie van de betrouwbaarheid heeft ondergaan, bevestigend dat de implementatie volledig overeenkomt met de specificaties die in een formele taal zijn gesteld. Er wordt overwogen om een soortgelijke bewijs van betrouwbaarheid op te stellen voor de Phantom-virtuele machine, wat zal helpen bij de verificatie van de gehele OS-omgeving.

De belangrijkste toepassing van de Genode-gebaseerde poort is de ontwikkeling van toepassingen voor verschillende industriële en ingebedde apparaten. Momenteel zijn er al wijzigingen voorbereid voor de virtuele machine en zijn er werkende interfaces toegevoegd die op Genode zijn gebouwd, om de persistentie van de kernelcomponenten en de basis low-level interfaces te waarborgen. Het wordt opgemerkt dat virtuele machine Phantom kan nu al werken in een 64-bits omgeving van Genode, maar er moet nog gewerkt worden aan de implementatie van de VM in de persistentiemodus, het herontwerpen van de driver subsystemen en het aanpassen van de netstack- en grafische subsystemen voor Genode.

Prototypen van het binnenlandse besturingssysteem Phantom op basis van Genode zullen voor het einde van het jaar gereed zijn
Prototypen van het binnenlandse besturingssysteem Phantom op basis van Genode zullen voor het einde van het jaar gereed zijn
Prototypen van het binnenlandse besturingssysteem Phantom op basis van Genode zullen voor het einde van het jaar gereed zijn


Bron: opennet.ru
Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster