Llançament de MirageOS 4.0, una plataforma per executar aplicacions a la part superior d'un hipervisor

Després d'un any i mig de desenvolupament, s'ha publicat el llançament del projecte MirageOS 4.0, que permet crear sistemes operatius per a una única aplicació, en què l'aplicació es lliura com un "unikernel" autosuficient que es pot executar sense l'ús de sistemes operatius, un nucli del sistema operatiu separat i qualsevol capa. El llenguatge de desenvolupament d'aplicacions és OCaml. El codi del projecte es distribueix sota una llicència ISC gratuïta.

Tota la funcionalitat de baix nivell nativa del sistema operatiu s'implementa com a biblioteca adjunta a l'aplicació. Una aplicació es pot desenvolupar en qualsevol sistema operatiu i després compilar-se en un nucli especialitzat (el concepte unikernel) que es pot executar directament sobre hipervisors Xen, KVM, BHyve i VMM (OpenBSD), en plataformes mòbils, com un procés en un POSIX- entorn compatible o en entorns de núvol d'Amazon Elastic Compute Cloud i Google Compute Engine.

L'entorn generat no conté res de superflu i interactua directament amb l'hipervisor sense controladors i capes del sistema, la qual cosa permet aconseguir una reducció important dels costos generals i augmentar la seguretat. El treball amb MirageOS es redueix a tres etapes: preparar la configuració amb la determinació dels paquets OPAM utilitzats a l'entorn, crear l'entorn i llançar l'entorn. El temps d'execució per proporcionar treball a sobre dels hipervisors es construeix sobre la base del nucli Solo5.

Malgrat que les aplicacions i les biblioteques es formen en el llenguatge d'alt nivell OCaml, els entorns resultants demostren un rendiment força bo i una mida mínima (per exemple, el servidor DNS només ocupa 200 KB). El manteniment dels entorns també es simplifica, ja que si cal actualitzar el programa o canviar la configuració, n'hi ha prou amb crear i executar un nou entorn. Diversos centenars de biblioteques OCaml són compatibles per realitzar operacions de xarxa (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, etc.), treballar amb emmagatzematge i proporcionar processament de dades paral·lel.

Millores clau:

  • S'ha canviat el procés de compilació de projectes i unikernel. En lloc del sistema de compilació ocamlbuild utilitzat anteriorment, s'utilitzen el conjunt d'eines dune i els dipòsits locals (monorepo). Per crear aquests dipòsits, s'ha afegit una nova utilitat opam-monorepo, que va permetre separar la gestió de paquets de la construcció de la font. La utilitat opam-monorepo fa la feina de crear fitxers de bloqueig per a dependències relacionades amb el projecte, descarregar i extreure codi de dependència i configurar l'entorn per utilitzar el sistema de construcció de dunes. La construcció en si la realitza el conjunt d'eines de la duna.
  • Es proporciona un procés de construcció repetible. L'ús de fitxers de bloqueig proporciona la vinculació a les versions de dependència i us permet repetir completament el procés de creació en qualsevol moment amb el mateix codi.
  • S'ha implementat un nou procés de compilació creuada i és possible fer una compilació creuada per a totes les plataformes de destinació admeses des d'un entorn de compilació comú, en el qual, entre altres coses, les dependències i biblioteques amb enllaços C es compilen sense necessitat d'afegir. aquestes vinculacions al paquet principal. La compilació creuada s'organitza mitjançant els espais de treball proporcionats pel sistema de construcció de dunes.
  • S'ha afegit suport per a noves plataformes objectiu, per exemple, s'ha proporcionat una capacitat experimental per crear aplicacions autònomes per treballar a les plaques Raspberry Pi 4.
  • S'ha treballat per integrar parts de MirageOS en ecosistemes relacionats amb el desenvolupament OCaml per simplificar la creació d'aplicacions en forma d'unikernel. Molts paquets MirageOS s'han portat al sistema de construcció de dunes. La utilitat opam-monorepo està disponible per a la instal·lació amb el gestor de paquets opam i es pot utilitzar en projectes que utilitzen el sistema de construcció dune. Per mantenir els pedaços que resolguin problemes amb la creació de dependències a dune, s'han creat dos dipòsits dune-universe/opam-overlays i dune-universe/mirage-opam-overlays, que estan habilitats per defecte quan s'utilitza la utilitat CLI mirage.
  • Integració simplificada de MirageOS amb biblioteques C i Rust.
  • S'ha proposat un nou temps d'execució OCaml per prescindir de libc (sense libc).
  • Proporciona la possibilitat d'utilitzar el servei Merlin per a la integració amb entorns de desenvolupament integrat estàndard.

Font: opennet.ru

Afegeix comentari