Izdanje MirageOS 4.0, platforme za pokretanje aplikacija na vrhu hipervizora

Nakon godinu i po dana razvoja, objavljeno je izdanje MirageOS 4.0 projekta, koji vam omogućava da kreirate operativni sistem za jednu aplikaciju, u kojoj se aplikacija isporučuje kao samodovoljan „unikernel“ koji može da radi bez korištenje operativnih sistema, zasebnog OS kernela i svih slojeva. Jezik za razvoj aplikacija je OCaml. Projektni kod se distribuira pod besplatnom ISC licencom.

Sva funkcionalnost niskog nivoa koja je izvorna za operativni sistem implementirana je kao biblioteka pridružena aplikaciji. Aplikacija se može razviti na bilo kojem OS-u, a zatim kompajlirati u specijalizovani kernel (koncept unikernela) koji može raditi direktno na Xen, KVM, BHyve i VMM (OpenBSD) hipervizorima, na mobilnim platformama, kao proces u POSIX-u. usklađeno okruženje ili u Amazon Elastic Compute Cloud i Google Compute Engine cloud okruženjima.

Generirano okruženje ne sadrži ništa suvišno i direktno stupa u interakciju sa hipervizorom bez drajvera i sistemskih slojeva, što omogućava značajno smanjenje režijskih troškova i povećanje sigurnosti. Rad sa MirageOS-om se svodi na tri faze: priprema konfiguracije sa određivanjem OPAM paketa koji se koriste u okruženju, izgradnja okruženja i pokretanje okruženja. Runtime za obezbeđivanje rada na vrhu hipervizora izgrađeno je na bazi Solo5 kernela.

Unatoč činjenici da su aplikacije i biblioteke formirane u jeziku visokog nivoa OCaml, rezultirajuća okruženja pokazuju prilično dobre performanse i minimalnu veličinu (na primjer, DNS server zauzima samo 200 KB). Održavanje okruženja je također pojednostavljeno, jer ako trebate ažurirati program ili promijeniti konfiguraciju, dovoljno je kreirati i pokrenuti novo okruženje. Nekoliko stotina OCaml biblioteka je podržano za obavljanje mrežnih operacija (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, itd.), rad sa skladištima i pružanje paralelne obrade podataka.

Ključna poboljšanja:

  • Promijenjen proces kompajliranja projekata i unikernela. Umjesto prethodno korištenog ocamlbuild build sistema, koriste se Dune toolkit i lokalna spremišta (monorepo). Za kreiranje takvih spremišta, dodat je novi uslužni program opam-monorepo, koji je omogućio odvajanje upravljanja paketima od izgradnje od izvora. Opam-monorepo uslužni program obavlja posao kreiranja datoteka zaključavanja za ovisnosti vezane za projekat, preuzima i ekstrahira kod ovisnosti i postavlja okruženje za korištenje sistema za izgradnju dune. Sama izgradnja je urađena pomoću Dune toolkita.
  • Osiguran je ponovljiv proces izgradnje. Korištenje datoteka zaključavanja omogućava vezivanje za verzije ovisnosti i omogućava vam da potpuno ponovite proces izgradnje u bilo kojem trenutku s istim kodom.
  • Implementiran je novi proces unakrsne kompilacije i moguće je unakrsno kompajlirati za sve podržane ciljne platforme iz jednog zajedničkog okruženja gradnje, u kojem se, između ostalog, zavisnosti i biblioteke sa C vezama unakrsno kompajliraju bez potrebe za dodavanjem ove veze za glavni paket. Unakrsna kompilacija je organizirana korištenjem radnih prostora koje obezbjeđuje sistem izgradnje dina.
  • Dodata je podrška za nove ciljne platforme, na primjer, omogućena je eksperimentalna mogućnost izgradnje samostalnih aplikacija za rad na Raspberry Pi 4 pločama.
  • Rad je obavljen na integraciji delova MirageOS-a u ekosisteme koji se odnose na razvoj OCaml-a kako bi se pojednostavila pravljenje aplikacija u obliku unikernela. Mnogi MirageOS paketi su portovani u sistem izgradnje dune. Opam-monorepo uslužni program je dostupan za instalaciju sa opam menadžerom paketa i može se koristiti u projektima koji koriste sistem izgradnje dune. Za održavanje zakrpa koje rješavaju probleme sa izgradnjom ovisnosti u duneu, kreirana su dva spremišta dune-universe/opam-overlays i dune-universe/mirage-opam-overlays, koji su po defaultu omogućeni kada se koristi mirage CLI uslužni program.
  • Pojednostavljena integracija MirageOS-a sa C i Rust bibliotekama.
  • Predloženo je novo OCaml runtime bez libc (libc-free).
  • Obezbeđena mogućnost korišćenja usluge Merlin za integraciju sa standardnim integrisanim razvojnim okruženjima.

izvor: opennet.ru

Dodajte komentar