Het prototype van het binnenlandse Phantom OS op basis van Genode zal tegen het einde van het jaar klaar zijn

Dmitry Zavalishin sprak over een project om een ​​virtuele machine van het Phantom-besturingssysteem over te zetten naar de Genode microkernel OS-omgeving. In het interview wordt opgemerkt dat de hoofdversie van Phantom al klaar is voor pilotprojecten, en dat de op Genode gebaseerde versie eind dit jaar klaar zal zijn voor gebruik. Tegelijkertijd is op de projectwebsite alleen een werkbaar conceptueel prototype aangekondigd, waarvan de stabiliteit en functionaliteit niet op een niveau zijn gebracht dat geschikt is voor industrieel gebruik, en onder de onmiddellijke plannen de vorming van een alfaversie die geschikt is voor experimenten. door externe ontwikkelaars wordt vermeld.

De projectcode wordt gedistribueerd onder de LGPL-licentie, maar de laatste wijziging in de hoofdrepository dateert van november 2019. De publieke activiteiten met betrekking tot het project zijn geconcentreerd in een repository met een vork voor Genode, die sinds december 2020 wordt onderhouden door Anton Antonov, een student van de Innopolis Universiteit.

Sinds het begin van de jaren 2000 heeft het Phantom-besturingssysteem zich ontwikkeld als een persoonlijk project van Dmitry Zavalishin, en sinds 2010 is het overgedragen onder de vleugels van het bedrijf Digital Zone, opgericht door Dmitry. Het systeem valt op door zijn focus op hoge betrouwbaarheid en het gebruik van het concept van “alles is een object” in plaats van “alles is een bestand”, waardoor u zonder het gebruik van bestanden kunt doen vanwege het behoud van de geheugenstatus en een continue werkcyclus. Applicaties in Phantom worden niet beëindigd, maar alleen opgeschort en hervat vanaf het onderbroken punt. Alle variabelen en datastructuren kunnen worden opgeslagen zolang de applicatie dat nodig heeft, en de programmeur hoeft zich geen specifieke zorgen te maken over het opslaan van de gegevens.

Toepassingen in Phantom worden gecompileerd in bytecode, die wordt uitgevoerd in een op stapel gebaseerde virtuele machine, vergelijkbaar met de virtuele Java-machine. De virtuele machine zorgt voor de persistentie van het applicatiegeheugen: het systeem reset periodiek snapshots van de status van de virtuele machine naar permanente media. Na een afsluiting of crash kan het werk worden voortgezet vanaf de laatst opgeslagen geheugenmomentopname. Snapshots worden gemaakt in de asynchrone modus en zonder de werking van de virtuele machine te onderbreken, maar er wordt een eenmalig segment in de snapshot opgenomen, alsof de virtuele machine is gestopt, op schijf is opgeslagen en opnieuw is gestart.

Alle applicaties draaien in een gemeenschappelijke globale adresruimte, wat de noodzaak voor contextwisselingen tussen de kernel en applicaties elimineert, en ook de interactie tussen applicaties die op de virtuele machine draaien aanzienlijk vereenvoudigt en versnelt, die objecten kunnen uitwisselen via het doorgeven van referenties. Toegangsscheiding wordt uitgevoerd op het niveau van objecten, waarvan verwijzingen alleen kunnen worden verkregen door het aanroepen van de juiste methoden (er is geen pointer-rekenkunde). Alle gegevens, inclusief numerieke waarden, worden verwerkt als afzonderlijke objecten.

Voor de toepassing lijkt het werk continu te zijn en niet afhankelijk te zijn van het opnieuw opstarten van het besturingssysteem, crashes en afsluiten van de computer. Het programmeermodel voor Phantom wordt vergeleken met het draaien van een nooit-stoppende applicatieserver voor een objectprogrammeertaal. Het porten van Java-programma's naar Phantom wordt beschouwd als een van de belangrijkste methoden voor applicatieontwikkeling, wat mogelijk wordt gemaakt door de gelijkenis van de virtuele Phantom-machine met de JVM. Naast de bytecode-compiler voor de Java-taal is het project van plan compilers voor Python en C# te maken, en een vertaler van de tussenliggende WebAssembly-code te implementeren.

Om bewerkingen uit te voeren die hoge prestaties vereisen, zoals video- en audioverwerking, is het mogelijk om binaire objecten met native code in afzonderlijke threads uit te voeren (LLVM wordt gebruikt om binaire objecten samen te stellen). Om toegang te krijgen tot kernelservices op een laag niveau, zijn sommige VM-klassen (“interne” klassen) geïmplementeerd op het kernelniveau van het besturingssysteem. Om Linux-applicaties uit te voeren, is er een POSIX-laag voorzien die oproepen emuleert die nodig zijn voor de werking van Unix-processen (persistentie voor applicaties in de POSIX-laag is nog niet voorzien).

Het prototype van het binnenlandse Phantom OS op basis van Genode zal tegen het einde van het jaar klaar zijn

Traditioneel Phantom OS bevat, naast de virtuele machine, een eigen kernel met de implementatie van threads, een geheugenmanager, een garbage collector, synchronisatiemechanismen, een invoer/uitvoersysteem en stuurprogramma's voor het werken met hardware, wat het project aanzienlijk bemoeilijkt gereedheid voor wijdverbreid gebruik. Afzonderlijk worden componenten met een netwerkstack, een grafisch subsysteem en een gebruikersinterface ontwikkeld. Het is opmerkelijk dat het grafische subsysteem en de vensterbeheerder op kernelniveau werken.

Om de stabiliteit, draagbaarheid en veiligheid van het project te vergroten, werd een poging gedaan om de virtuele Phantom-machine te laten werken met behulp van componenten van het open microkernel-besturingssysteem Genode, waarvan de ontwikkeling wordt begeleid door het Duitse bedrijf Genode Labs. Voor degenen die willen experimenteren met Phantom op basis van Genode, is er een speciale Docker-gebaseerde bouwomgeving voorbereid.

Het gebruik van Genode maakt het mogelijk om reeds beproefde microkernels en stuurprogramma's te gebruiken, en om de stuurprogramma's naar de gebruikersruimte te verplaatsen (in hun huidige vorm zijn de stuurprogramma's geschreven in C en uitgevoerd op het Phantom-kernelniveau). In het bijzonder zal het mogelijk zijn om de seL4-microkernel te gebruiken, die een wiskundige betrouwbaarheidsverificatie heeft ondergaan, wat bevestigt dat de implementatie volledig voldoet aan de specificaties gespecificeerd in de formele taal. Er wordt overwogen om een ​​soortgelijk bewijs van betrouwbaarheid voor de virtuele Phantom-machine op te stellen, waardoor verificatie van de gehele besturingssysteemomgeving mogelijk wordt.

Het belangrijkste toepassingsgebied voor de Genode-gebaseerde haven is de ontwikkeling van toepassingen voor diverse industriële en embedded devices. Momenteel is er al een reeks wijzigingen voor de virtuele machine voorbereid en zijn er bindingen toegevoegd die bovenop Genode werken om de persistentie van kernelcomponenten en de belangrijkste interfaces op laag niveau te garanderen. Opgemerkt wordt dat de virtuele Phantom-machine al kan werken in de 64-bit Genode-omgeving, maar het is nog steeds nodig om de VM in persistentiemodus te implementeren, het stuurprogramma-subsysteem te herwerken en componenten aan te passen met een netwerkstack en een grafisch subsysteem voor Genode.

Het prototype van het binnenlandse Phantom OS op basis van Genode zal tegen het einde van het jaar klaar zijn
Het prototype van het binnenlandse Phantom OS op basis van Genode zal tegen het einde van het jaar klaar zijn
Het prototype van het binnenlandse Phantom OS op basis van Genode zal tegen het einde van het jaar klaar zijn


Bron: opennet.ru

Voeg een reactie