U prototipu di l'OS Phantom domesticu basatu annantu à Genode serà prontu prima di a fine di l'annu

Dmitry Zavalishin hà parlatu di u prughjettu di portà a macchina virtuale di u sistema upirativu Phantom per travaglià in l'ambienti OS microkernel Genode. L'entrevista nota chì a versione principale di Phantom hè digià pronta per i prughjetti piloti, è a versione basata nantu à Genode serà pronta per l'usu à a fine di l'annu. À u listessu tempu, solu un prototipu cuncettuale funzionale hè statu annunziatu nantu à u situ web di u prughjettu finu à avà, a stabilità è a funziunalità ùn sò micca stati purtati à un livellu adattatu per l'usu industriale, è trà i piani più vicinu hè a furmazione di una versione alfa. adattatu per esperimenti da sviluppatori di terzu.

U codice di u prugettu hè distribuitu sottu a licenza LGPL, ma l'ultimu cambiamentu in u repositoriu principale hè datatu di nuvembre 2019. L'attività publica ligata à u prugettu hè cuncentrata in u repository cù una furchetta per Genode, chì da dicembre 2020 hè stata mantinuta da Anton Antonov, un studiente di l'Università Innopolis.

Dapoi u principiu di l'anni 2000, u sistema upirativu Phantom hè statu sviluppatu cum'è un prughjettu persunale di Dmitry Zavalishin, è da 2010 hè stata trasferita sottu l'ala di a cumpagnia di a Zona Digitale creata da Dmitry. U sistema hè notu per u so focu annantu à l'alta affidabilità è l'usu di u cuncettu di "tuttu hè un ughjettu" invece di "tuttu hè un schedariu", chì elimina l'usu di i schedari per via di a preservazione di u statu di memoria è un ciculu cuntinuu di travagliu. L'applicazioni in u Phantom ùn sò micca terminate, ma solu in pausa è ripresa da induve si sò lasciati. Tutte e variàbili è e strutture di dati ponu esse guardatu per u tempu chì l'applicazione necessita, è u programatore ùn hà micca bisognu di cura particulari per salvà a dati.

L'applicazioni in Phantom sò compilate in bytecode, chì corre in una macchina virtuale basata in stack, simili à a macchina virtuale Java. A macchina virtuale furnisce a persistenza di a memoria di l'applicazioni - u sistema sguassate periodicamente snapshots di u statu di a macchina virtuale à i media persistenti. Dopu l'arrestu o un crash, u travagliu pò esse cuntinuatu partendu da l'ultima snapshot di memoria salvata. I snapshots sò creati in modu asincronu è senza suspende a macchina virtuale, ma una snapshot cattura una fetta unica, cum'è se a macchina virtuale hè stata fermata, salvata à u discu, è cuminciatu di novu.

Tutte l'applicazioni funzionanu in un spaziu d'indirizzu glubale cumunu, chì elimina a necessità di cunversione di u cuntestu trà u kernel è l'applicazioni, è simplifica assai è accelera a cumunicazione trà l'applicazioni in esecuzione in una macchina virtuale chì pò scambià l'ogetti attraversu u passaghju di riferimentu. A separazione di l'accessu hè realizatu à u nivellu di l'uggetti, i riferimenti chì ponu esse acquistati solu chjamendu i metudi currispondenti (ùn ci hè micca aritmetica di puntatore). Ogni dati, cumpresi i valori numerichi, sò trattati cum'è oggetti separati.

Per l'applicazione, u travagliu pare cuntinuu è ùn dipende micca da i reboots di u SO, i crashes è l'arrestu di l'urdinatore. U mudellu di prugrammazione per Phantom hè paragunatu à eseguisce un servitore d'applicazioni chì ùn si ferma mai per una lingua di prugrammazione d'ughjettu. Porting di prugrammi Java per Phantom hè cunsideratu cum'è unu di i modi principali di sviluppà applicazioni, chì hè facilitatu da a similitudine di a macchina virtuale Phantom cù a JVM. In più di u compilatore di bytecode per a lingua Java, u prughjettu prughjetta di creà compilatori per Python è C#, è ancu l'implementazione di un traduttore da u codice intermediu WebAssembly.

Per fà operazioni chì necessitanu un altu rendiment, cum'è u processu di video è audio, hè pussibule eseguisce oggetti binari cù codice nativu in fili separati (LLVM hè utilizatu per custruisce oggetti binari). Per accede à i servizii di kernel di livellu bassu, alcune classi VM (classi "interni") sò implementate à u nivellu di kernel OS. Per eseguisce l'applicazioni Linux, una capa POSIX hè furnita chì emula i chjami necessarii per u funziunamentu di i prucessi Unix (a persistenza per l'applicazioni in a capa POSIX ùn hè ancu furnita).

U prototipu di l'OS Phantom domesticu basatu annantu à Genode serà prontu prima di a fine di l'annu

U Phantom OS tradiziunale, in più di a macchina virtuale, include u so propiu kernel cù l'implementazione di fili, un gestore di memoria, un cullettore di basura, meccanismi di sincronizazione, un sistema I / O, è i drivers per travaglià cù l'equipaggiu, chì complica significativamente a porta. u prughjettu di prontu per l'usu generalizatu. Separatamente, i cumpunenti cù una pila di rete, un sottosistema graficu è una interfaccia d'utilizatore sò sviluppati. Hè nutate chì u subsistema gràficu è u gestore di finestra travaglianu à u livellu di u kernel.

Per migliurà a stabilità, a portabilità è a sicurità di u prugettu, hè statu fattu un tentativu di trasfirià a macchina virtuale Phantom per travaglià cù i cumpunenti di u sistema operatore apertu microkernel Genode, u sviluppu di u quali hè tutelatu da a cumpagnia tedesca Genode Labs. Per quelli chì volenu sperimentà cù Phantom basatu in Genode, hè statu preparatu un ambiente speciale di custruzzione basatu in Docker.

L'usu di Genode permetterà di utilizà microkernels è drivers già testati, è ancu di portà i cunduttori in u spaziu di l'utilizatori (in a so forma attuale, i cunduttori sò scritti in C è eseguite à u livellu di u kernel Phantom). In particulare, serà pussibule di utilizà u microkernel seL4, chì hà passatu a verificazione matematica di affidabilità, cunfirmendu chì l'implementazione cumplette cumplettamente cù e specificazioni specificate in a lingua formale. A pussibilità di preparà una prova simile di affidabilità per a macchina virtuale Phantom hè stata cunsiderata, chì permetterà a verificazione di tuttu l'ambiente OS.

L'area di applicazione principale di u portu basatu in Genode hè u sviluppu di applicazioni per parechji dispositi industriali è integrati. Attualmente, un inseme di cambiamenti per a macchina virtuale hè statu digià preparatu è i ligami chì currenu nantu à Genode sò stati aghjunti per i cumpunenti di persistenza di u kernel è l'interfacce principali di livellu bassu. Hè nutatu chì a macchina virtuale Phantom pò digià travaglià in un ambiente Genode 64-bit, ma a VM hà ancu esse implementata in modu di persistenza, u sottosistema di u driver deve esse ritravagliatu, è i cumpunenti cù una pila di rete è un sottosistema graficu anu avutu. per esse adattatu per Genode.

U prototipu di l'OS Phantom domesticu basatu annantu à Genode serà prontu prima di a fine di l'annu
U prototipu di l'OS Phantom domesticu basatu annantu à Genode serà prontu prima di a fine di l'annu
U prototipu di l'OS Phantom domesticu basatu annantu à Genode serà prontu prima di a fine di l'annu


Source: opennet.ru

Add a comment