Udgivelse af MirageOS 4.0, en platform til at køre applikationer over hyperviseren

Efter halvandet års udvikling er udgivelsen af projektet MirageOS 4.0 offentliggjort, hvilket gør det muligt at danne one-application operativsystemer, hvor applikationen leveres som en selvforsynende "unikernel", der kan køre uden anvendelse af operativsystemer, et separat OS-kerne eller andre lag. Til udvikling af applikationer bruges sproget OCaml. Projektkoden distribueres under den åbne ISC-licens.

Al lavniveau funktionalitet, der er typisk for operativsystemet, implementeres som et bibliotek, der knyttes til applikationen. Applikationen kan udvikles i ethvert operativsystem, hvorefter den kompilere til en specialiseret kerne (unikernel-konceptet), som kan køre direkte over hypervisorer som Xen, KVM, BHyve og VMM (OpenBSD), på mobile platforme, i form af en proces i et POSIX-kompatibelt miljø eller i cloud-miljøer som Amazon Elastic Compute Cloud og Google Compute Engine.

Det genererede miljø indeholder ikke noget overflødigt og interagerer direkte med hypervisoren uden drivere og systemlag, hvilket muliggør en betydelig reduktion af overhead og øget sikkerhed. Arbejdet med MirageOS opdeles i tre faser: forberedelse af konfigurationen med definition af de anvendte OPAM-pakker i miljøet, opbygning af miljøet og opstart af miljøet. Runtime for at sikre drift over hypervisorer er bygget på basis af Solo5-kernen.

Selvom applikationer og biblioteker dannes på det høj-niveau sprog OCaml, viser de endelige miljøer en ret god ydeevne og minimalt størrelse (for eksempel tager DNS-serveren kun 200 KB). Vedligeholdelse af miljøer forenkles, da det ved opdatering af programmet eller ændring af konfigurationen er tilstrækkeligt at oprette og starte et nyt miljø. Der understøttes flere hundrede biblioteker på OCaml-sproget til at udføre netværksoperationer (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN osv.), arbejde med lagre og sikre parallel databehandling.

Nøgleforbedringer:

  • Processen til at kompilere projekter og unikernel er ændret. I stedet for det tidligere anvendte byggesystem ocamlbuild er værktøjet dune og lokale repositoryer (monorepo) blevet taget i brug. En ny værktøj opam-monorepo er blevet tilføjet for at danne sådanne repositoryer, hvilket har gjort det muligt at adskille pakkeadministration fra bygning fra kilder. Værktøjet opam-monorepo udfører opgaver som at oprette låse-filer for projektets afhængigheder, hente og udtrække kode fra afhængigheder og konfigurere miljøet til at bruge byggesystemet dune. Selve byggeriet udføres af værktøjet dune.
  • Der er givet en gentagelig byggeproces. Brugen af låse-filer sikrer binding til versioner af afhængigheder og gør det muligt når som helst fuldt ud at gentage byggeprocessen med den samme kode.
  • En ny proces for kryds-kompilering er blevet implementeret, og muligheden for kryds-kompilering for alle understøttede mållande fra et fælles bygge-miljø, hvor også kryds-kompilering af afhængigheder og biblioteker med bindinger på C-sprog udføres, uden at det er nødvendigt at tilføje disse bindinger i hovedpakken. Kryds-kompilering er organiseret ved brug af arbejdsrum, der tilbydes af byggesystemet dune.
  • Support for nye mållande er blevet tilføjet, for eksempel muligheden for eksperimentelt at opbygge selvstændige applikationer til drift på Raspberry Pi 4 boards.
  • Der er udført arbejde med at integrere dele af MirageOS i økosystemer relateret til udvikling i OCaml for at lette opbygningen af applikationer i form af unikernel. Mange MirageOS-pakker er blevet portet til byggesystemet dune. Værktøjet opam-monorepo er tilgængeligt for installation via package manager opam og kan bruges i projekter, der anvender byggesystemet dune. For at håndtere patches, der løser byggeproblemer med afhængigheder i dune, er der oprettet to repositoryer dune-universe/opam-overlays og dune-universe/mirage-opam-overlays, som er inkluderet som standard ved brug af CLI-værktøjet mirage.
  • Integrationen af MirageOS med biblioteker på C- og Rust-sprog er blevet forenklet.
  • Et nyt OCaml runtime er blevet foreslået, som gør det muligt at undgå libc (libc-free).
  • Mulighed for at bruge Merlin-tjenesten til integration med typede integrerede udviklingsmiljøer er blevet givet.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster