Rilascio di MirageOS 4.0, una piattaforma per eseguire applicazioni sopra un hypervisor

Dopo un anno e mezzo di sviluppo, è stata pubblicata la versione 4.0 del progetto MirageOS, che consente di creare sistemi operativi per applicazioni singole, in cui l'applicazione è fornita come un «unikernel» autonomo, capace di operare senza l'uso di sistemi operativi, di un kernel OS separato o di alcun strato intermedio. Per lo sviluppo delle applicazioni viene utilizzato il linguaggio OCaml. Il codice del progetto è distribuito sotto licenza libera ISC.

Tutta la funzionalità a basso livello tipica di un sistema operativo è implementata sotto forma di libreria, collegata all'applicazione. L'applicazione può essere sviluppata in qualsiasi sistema operativo e poi compilata in un kernel specializzato (concetto di unikernel), che può essere avviato direttamente sopra hipervisor Xen, KVM, BHyve e VMM (OpenBSD), sopra piattaforme mobili, come un processo in un ambiente compatibile con POSIX o in ambienti cloud come Amazon Elastic Compute Cloud e Google Compute Engine.

L'ambiente generato non contiene nulla di superfluo e interagisce direttamente con l'hipervisor senza driver e strati di sistema, il che consente di ottenere un significante abbattimento dei costi e un aumento della sicurezza. Lavorare con MirageOS si riduce a tre fasi: preparazione della configurazione con la definizione dei pacchetti OPAM utilizzati nell'ambiente, costruzione dell'ambiente e avvio dell'ambiente. Il runtime per garantire il funzionamento sopra gli hipervisor è costruito sulla base del kernel Solo5.

Nonostante le applicazioni e le librerie siano formate in un linguaggio di alto livello come OCaml, gli ambienti finali mostrano prestazioni piuttosto buone e dimensioni minime (ad esempio, un server DNS occupa solo 200 KB). È semplificata anche la manutenzione degli ambienti, poiché in caso di necessità di aggiornamento del programma o modifica della configurazione, è sufficiente creare e avviare un nuovo ambiente. Sono supportate diverse centinaia di librerie in linguaggio OCaml per eseguire operazioni di rete (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, ecc.), operazioni con archivi e per garantire l'elaborazione parallela dei dati.

Miglioramenti chiave:

  • Il processo di compilazione di progetti e unikernel è stato modificato. Invece del sistema di build ocamlbuild precedentemente utilizzato, è stato adottato l'ecosistema dune e i repository locali (monorepo). Per creare tali repository è stato aggiunto un nuovo strumento, opam-monorepo, che consente di separare la gestione dei pacchetti dalla compilazione del codice sorgente. Lo strumento opam-monorepo svolge attività come la creazione di file di blocco per le dipendenze correlate al progetto, il download e l'estrazione del codice delle dipendenze e la configurazione dell'ambiente per l'uso dell'ecosistema di build dune. La compilazione vera e propria è eseguita utilizzando lo strumento dune.
  • È stato fornito un processo di compilazione ripetibile. L'uso dei file di blocco garantisce un legame con le versioni delle dipendenze e consente di ripetere completamente il processo di compilazione con lo stesso codice in qualsiasi momento.
  • È stato implementato un nuovo processo di cross-compilazione e ora è possibile effettuare la cross-compilazione per tutte le piattaforme di destinazione supportate da un unico ambiente di build comune, nel quale viene anche effettuata la cross-compilazione delle dipendenze e delle librerie che hanno legami in linguaggio C, senza la necessità di aggiungere questi legami nel pacchetto principale. La cross-compilazione è organizzata utilizzando gli spazi di lavoro forniti dal sistema di build dune.
  • È stato aggiunto il supporto per nuove piattaforme di destinazione, ad esempio, è stata fornita la possibilità sperimentale di compilare applicazioni autonome da eseguire su schede Raspberry Pi 4.
  • È stato svolto un lavoro di integrazione delle parti di MirageOS negli ecosistemi relativi allo sviluppo in linguaggio OCaml, per semplificare la compilazione di applicazioni nel formato unikernel. Molti pacchetti di MirageOS sono stati portati al sistema di build dune. Lo strumento opam-monorepo è disponibile per l'installazione tramite il gestore di pacchetti opam e può essere utilizzato nei progetti che adottano il sistema di build dune. Per il mantenimento delle patch che risolvono problemi con la compilazione delle dipendenze in dune, sono stati creati due repository dune-universe/opam-overlays e dune-universe/mirage-opam-overlays, che sono inclusi di default quando si utilizza l'utility CLI mirage.
  • È stata semplificata l'integrazione di MirageOS con le librerie in linguaggio C e Rust.
  • È stato proposto un nuovo runtime OCaml, che consente di utilizzare il sistema senza libc (libc-free).
  • È stata fornita la possibilità di utilizzare il servizio Merlin per l'integrazione con ambienti di sviluppo integrati tipizzati.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster