MirageOS 4.0 väljalase, platvorm rakenduste käitamiseks hüperviisoril

Pärast poolteist aastat kestnud arendustööd on avaldatud MirageOS 4.0 projekti väljalase, mis võimaldab luua ühe rakenduse jaoks operatsioonisüsteeme, milles rakendus tarnitakse iseseisva "unikernelina", mis on võimeline töötama ilma operatsioonisüsteemide, eraldi OS-i tuuma ja mis tahes kihtide kasutamine. OCamli keelt kasutatakse rakenduste arendamiseks. Projekti koodi levitatakse tasuta ISC litsentsi all.

Kõik operatsioonisüsteemile omased madalatasemelised funktsioonid on rakendatud rakendusele lisatud teegi kujul. Rakendust saab arendada mis tahes OS-is, misjärel see kompileeritakse spetsiaalseks tuumaks (unikerneli kontseptsioon), mis võib töötada otse Xeni, KVM, BHyve ja VMM (OpenBSD) hüperviisorite peal, mobiiliplatvormide peal, protsessi vormis POSIX-iga ühilduvas keskkonnas või pilvekeskkondades Amazon Elastic Compute Cloud ja Google Compute Engine.

Loodud keskkond ei sisalda midagi üleliigset ja suhtleb otse hüperviisoriga ilma draiverite või süsteemikihtideta, mis võimaldab oluliselt vähendada üldkulusid ja suurendada turvalisust. MirageOS-iga töötamine koosneb kolmest etapist: konfiguratsiooni ettevalmistamine koos keskkonnas kasutatavate OPAM-pakettide määratlemisega, keskkonna kokkupanemine ja keskkonna käivitamine. Hüperviisorite peal töö tagamiseks on Runtime üles ehitatud Solo5 tuuma baasil.

Hoolimata asjaolust, et rakendused ja teegid luuakse kõrgetasemelises OCaml keeles, näitavad saadud keskkonnad üsna head jõudlust ja minimaalset suurust (näiteks DNS-server võtab enda alla vaid 200 KB). Lihtsustub ka keskkondade hooldus, sest kui on vaja programmi uuendada või konfiguratsiooni muuta, siis piisab uue keskkonna loomisest ja käivitamisest. Võrguoperatsioonide (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN jne), salvestusega töötamiseks ja paralleelse andmetöötluse pakkumiseks on toetatud mitusada OCamli keele teeki.

Peamised täiustused:

  • Projektide ja unikerneli koostamise protsessi on muudetud. Varem kasutatud ocamlbuildi koostesüsteemi asemel kasutatakse dune tööriistakomplekti ja kohalikke hoidlaid (monorepo). Selliste hoidlate loomiseks on lisatud uus utiliit opam-monorepo, mis võimaldab eraldada paketihalduse lähtekoodist ehitamisest. Utiliit opam-monorepo töötab, näiteks loob projektiga seotud sõltuvuste jaoks lukustusfaile, laadib ja eraldab sõltuvuskoodi ning seadistab dune build-süsteemi kasutamiseks keskkonna. Tegeliku kokkupaneku teostab luitetööriistade komplekt.
  • Pakutakse korratavat ehitusprotsessi. Lukustusfailide kasutamine annab lingi sõltuvusversioonidele ja võimaldab teil ehitusprotsessi igal ajal sama koodiga täielikult korrata.
  • Rakendatud on uus ristkompileerimisprotsess ja võimalus ristkompileerida kõigi toetatud sihtplatvormide jaoks ühest ühisest ehituskeskkonnast, mis ristkompileerib ka sõltuvusi ja teeke, millel on C-sidemed, ilma et oleks vaja neid sidemeid lisada põhipakett. Ristkompileerimine korraldatakse luidete ehitamise süsteemi pakutavate tööruumide abil.
  • Lisatud on uute sihtplatvormide tugi, näiteks on antud eksperimentaalne võimalus ehitada iseseisvaid rakendusi Raspberry Pi 4 plaatidel töötamiseks.
  • On tehtud tööd MirageOS-i osade integreerimiseks ökosüsteemidesse, mis on seotud arendusega OCaml keeles, et lihtsustada rakenduste kokkupanemist unikerneli kujul. Paljud MirageOS-i paketid on porditud dune build-süsteemi. Utiliit opam-monorepo on installimiseks saadaval opami paketihalduri abil ja seda saab kasutada projektides, mis kasutavad dune ehitussüsteemi. Et säilitada plaastreid, mis lahendavad düünis sõltuvuste loomisega seotud probleeme, on loodud kaks hoidlat: dune-universe/opam-overlays ja dune-universe/mirage-opam-overlays, mis on mirage CLI utiliidi kasutamisel vaikimisi lubatud.
  • MirageOS-i integreerimine C- ja Rust-teekidega on lihtsustatud.
  • Välja on pakutud uus OCamli käituskeskkond, mis võimaldab ilma libc-ta hakkama saada (libc-vaba).
  • Merlini teenust on võimalik kasutada integreerimiseks standardsete integreeritud arenduskeskkondadega.

Allikas: opennet.ru

Lisa kommentaar