Izdaja MirageOS 4.0, platforme za izvajanje aplikacij na vrhu hipervizorja

Po letu in pol razvoja je bila objavljena izdaja projekta MirageOS 4.0, ki omogoča ustvarjanje operacijskih sistemov za eno aplikacijo, pri čemer je aplikacija dostavljena kot samostojno »enojedro«, ki lahko deluje brez uporaba operacijskih sistemov, ločenega jedra OS in morebitnih plasti. Za razvoj aplikacij se uporablja jezik OCaml. Projektna koda se distribuira pod brezplačno licenco ISC.

Vsa nizkonivojska funkcionalnost, ki je del operacijskega sistema, je implementirana v obliki knjižnice, ki je priložena aplikaciji. Aplikacijo je mogoče razviti na katerem koli operacijskem sistemu, nato pa se prevede v specializirano jedro (koncept unikern), ki se lahko izvaja neposredno na hipervizorjih Xen, KVM, BHyve in VMM (OpenBSD), na mobilnih platformah, v obliki procesa v okolju, združljivem s POSIX, ali v oblačnih okoljih Amazon Elastic Compute Cloud in Google Compute Engine.

Ustvarjeno okolje ne vsebuje ničesar odvečnega in je neposredno v interakciji s hipervizorjem brez gonilnikov ali sistemskih plasti, kar omogoča znatno zmanjšanje režijskih stroškov in večjo varnost. Delo z MirageOS poteka v treh fazah: priprava konfiguracije z definiranjem paketov OPAM, ki se uporabljajo v okolju, sestavljanje okolja in zagon okolja. Za zagotovitev delovanja na vrhu hipervizorjev je Runtime zgrajen na osnovi jedra Solo5.

Kljub dejstvu, da so aplikacije in knjižnice ustvarjene v jeziku OCaml na visoki ravni, nastala okolja izkazujejo dokaj dobro zmogljivost in minimalno velikost (strežnik DNS na primer zavzame le 200 KB). Poenostavljeno je tudi vzdrževanje okolij, saj če je treba posodobiti program ali spremeniti konfiguracijo, je dovolj ustvariti in zagnati novo okolje. Podprtih je več sto knjižnic v jeziku OCaml za izvajanje omrežnih operacij (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN itd.), delo s shranjevanjem in zagotavljanje vzporedne obdelave podatkov.

Ključne izboljšave:

  • Postopek prevajanja projektov in unikerl je spremenjen. Namesto prej uporabljenega sistema sestavljanja ocamlbuild se uporablja komplet orodij dune in lokalni repozitoriji (monorepo). Za ustvarjanje takšnih repozitorijev je bil dodan nov pripomoček opam-monorepo, ki omogoča ločevanje upravljanja paketov od gradnje iz izvorne kode. Pripomoček opam-monorepo dela, kot je ustvarjanje zaklepnih datotek za odvisnosti, povezane s projektom, nalaganje in ekstrahiranje kode odvisnosti ter nastavitev okolja za uporabo sistema gradnje sipin. Dejansko sestavljanje izvede komplet orodij dune.
  • Zagotovljen je ponovljiv postopek gradnje. Uporaba datotek zaklepanja zagotavlja povezavo do različic odvisnosti in vam omogoča, da kadar koli popolnoma ponovite postopek gradnje z isto kodo.
  • Implementiran je bil nov postopek navzkrižnega prevajanja in zagotovljena je možnost navzkrižnega prevajanja za vse podprte ciljne platforme iz enega skupnega gradbenega okolja, ki prav tako navzkrižno prevaja odvisnosti in knjižnice z vezavami C, ne da bi bilo treba te vezi dodati v glavni paket. Navzkrižno prevajanje je organizirano z uporabo delovnih prostorov, ki jih zagotavlja sistem gradnje sipin.
  • Dodana je bila podpora za nove ciljne platforme, na primer zagotovljena je bila eksperimentalna zmožnost izdelave samostojnih aplikacij za delovanje na ploščah Raspberry Pi 4.
  • Opravljeno je bilo delo za integracijo delov sistema MirageOS v ekosisteme, povezane z razvojem v jeziku OCaml, da bi poenostavili sestavljanje aplikacij v obliki unikerna. Veliko paketov MirageOS je bilo prenesenih v sistem gradnje dune. Pripomoček opam-monorepo je na voljo za namestitev z upraviteljem paketov opam in ga je mogoče uporabiti v projektih, ki uporabljajo sistem gradnje dune. Za vzdrževanje popravkov, ki rešujejo težave z gradnjo odvisnosti v dune, sta bili ustvarjeni dve repozitoriji: dune-universe/opam-overlays in dune-universe/mirage-opam-overlays, ki sta privzeto omogočena pri uporabi pripomočka mirage CLI.
  • Integracija MirageOS s knjižnicama C in Rust je bila poenostavljena.
  • Predlagano je bilo novo izvajalno okolje OCaml, ki vam omogoča, da delate brez libc (brez libc).
  • Možna je uporaba storitve Merlin za integracijo s standardnimi integriranimi razvojnimi okolji.

Vir: opennet.ru

Dodaj komentar