Rilascio di MirageOS 4.0, una piattaforma per l'esecuzione di applicazioni sopra un hypervisor

Dopo un anno e mezzo di sviluppo, è stata rilasciata la versione 4.0 del progetto MirageOS, che consente di creare sistemi operativi a un'applicazione, in cui l'applicazione viene fornita come un «unikernel» autonomo, capace di funzionare senza sistemi operativi, un kernel separato e alcun intermediario. Il linguaggio utilizzato per lo sviluppo delle applicazioni è OCaml. Il codice del progetto è distribuito sotto la licenza ISC.

Tutta la funzionalità di basso livello tipica di un sistema operativo è realizzata sotto forma di libreria che si integra con l'applicazione. L'applicazione può essere sviluppata su qualsiasi sistema operativo e successivamente compilata in un kernel specializzato (concetto di unikernel), che può essere eseguito direttamente sopra hypervisor come Xen, KVM, BHyve e VMM (OpenBSD), su piattaforme mobili, come 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'hypervisor senza driver e strati di sistema, risultando in una significativa riduzione delle spese generali e un aumento della sicurezza. Lavorare con MirageOS si articola in 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 sugli hypervisor è basato sul kernel Solo5.

Nonostante le applicazioni e le librerie siano sviluppate in un linguaggio di alto livello come OCaml, gli ambienti finali mostrano prestazioni piuttosto buone e una dimensione ridotta (ad esempio, un server DNS occupa solo 200 KB). La manutenzione degli ambienti è semplificata, 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 OCaml per l'esecuzione di operazioni di rete (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, ecc.), gestione di archivi e garantire l'elaborazione parallela dei dati.

Miglioramenti chiave:

  • Il processo di compilazione dei progetti e del unikernel è stato modificato. Anziché il sistema di build ocamlbuild, ora utilizziamo gli strumenti di dune e repository locali (monorepo). Per la creazione di tali repository è stata aggiunta una nuova utility, opam-monorepo, che consente di separare la gestione dei pacchetti dalla compilazione del codice sorgente. L'utility opam-monorepo svolge compiti come la creazione di file di lock per le dipendenze associate al progetto, il caricamento e l'estrazione del codice delle dipendenze e la configurazione dell'ambiente per l'applicazione del sistema di build dune. La compilazione avviene direttamente tramite gli strumenti di dune.
  • È stato fornito un processo di build replicabile. L'uso di file di lock garantisce il legame con le versioni delle dipendenze e consente di ripetere completamente il processo di build con lo stesso codice in qualsiasi momento.
  • È stato implementato un nuovo processo di cross-compilazione che consente la cross-compilazione per tutte le piattaforme target supportate da un unico ambiente di build comune. Questo include anche la cross-compilazione di dipendenze e librerie con legami in linguaggio C, senza necessità di aggiungere questi legami nel pacchetto principale. La cross-compilazione è organizzata utilizzando spazi di lavoro forniti dal sistema di build dune.
  • È stato aggiunto il supporto per nuove piattaforme target, ad esempio è disponibile una possibilità sperimentale di costruire applicazioni autonome per funzionare su schede Raspberry Pi 4.
  • È stato effettuato il lavoro di integrazione delle parti di MirageOS negli ecosistemi legati allo sviluppo in OCaml, rendendo più semplice la creazione di applicazioni in forma di unikernel. Molti pacchetti di MirageOS sono stati portati nel sistema di build dune. L'utilità opam-monorepo è disponibile per l'installazione tramite il gestore di pacchetti opam e può essere utilizzata in progetti che sfruttano il sistema di build dune. Per supportare le patch che risolvono problemi di costruzione delle dipendenze in dune, sono stati creati due repository dune-universe/opam-overlays e dune-universe/mirage-opam-overlays, che sono inclusi per impostazione predefinita quando si utilizza l'utilità CLI mirage.
  • È stata semplificata l'integrazione di MirageOS con librerie in C e Rust.
  • È stato proposto un nuovo runtime OCaml che permette di non utilizzare libc (libc-free).
  • È stata fornita la possibilità di utilizzare il servizio Merlin per l'integrazione con ambienti di sviluppo integrati standard.

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