Izdanje MirageOS 4.0, platforme za pokretanje aplikacija na vrhu hipervizora

Nakon godinu i pol razvoja, objavljeno je izdanje projekta MirageOS 4.0 koji omogućuje izradu operativnih sustava za jednu aplikaciju, pri čemu se aplikacija isporučuje kao samostalni “unikernel”, koji može raditi bez korištenje operativnih sustava, zasebne jezgre OS-a i svih slojeva. OCaml jezik se koristi za razvoj aplikacija. Projektni kod se distribuira pod besplatnom ISC licencom.

Sve funkcionalnosti niske razine svojstvene operativnom sustavu implementirane su u obliku biblioteke koja je priložena aplikaciji. Aplikacija se može razviti na bilo kojem operativnom sustavu, nakon čega se kompajlira u specijalizirani kernel (unikernel koncept), koji se može izvoditi izravno na Xen, KVM, BHyve i VMM (OpenBSD) hipervizorima, na mobilnim platformama, u obliku procesa u okruženju usklađenom s POSIX-om ili u okruženjima oblaka Amazon Elastic Compute Cloud i Google Compute Engine.

Generirano okruženje ne sadrži ništa suvišno i izravno komunicira s hipervizorom bez upravljačkih programa ili slojeva sustava, što omogućuje značajno smanjenje režijskih troškova i povećanu sigurnost. Rad s MirageOS-om svodi se na tri faze: priprema konfiguracije s definiranjem OPAM paketa koji se koriste u okruženju, sastavljanje okruženja i pokretanje okruženja. Kako bi se osigurao rad iznad hipervizora, Runtime je izgrađen na temelju Solo5 kernela.

Unatoč činjenici da su aplikacije i biblioteke stvorene u jeziku visoke razine OCaml, dobivena okruženja pokazuju prilično dobre performanse i minimalnu veličinu (na primjer, DNS poslužitelj zauzima samo 200 KB). Održavanje okruženja je također pojednostavljeno, jer ako je potrebno ažurirati program ili promijeniti konfiguraciju, dovoljno je kreirati i pokrenuti novo okruženje. Podržano je nekoliko stotina biblioteka u OCaml jeziku za izvođenje mrežnih operacija (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN itd.), rad sa pohranom i pružanje paralelne obrade podataka.

Ključna poboljšanja:

  • Promijenjen je proces kompajliranja projekata i unikernela. Umjesto prethodno korištenog sustava za sklapanje ocamlbuild, koriste se dune toolkit i lokalna spremišta (monorepo). Za stvaranje takvih repozitorija dodan je novi uslužni program, opam-monorepo, koji omogućuje odvajanje upravljanja paketima od izgradnje iz izvornog koda. Uslužni program opam-monorepo radi kao što je stvaranje zaključanih datoteka za ovisnosti vezane uz projekt, učitavanje i izdvajanje koda ovisnosti i postavljanje okruženja za korištenje sustava za izgradnju dina. Stvarnu montažu izvodi alat dune.
  • Omogućen je ponovljivi proces izrade. Korištenje zaključanih datoteka pruža vezu na verzije ovisnosti i omogućuje vam potpuno ponavljanje procesa izgradnje s istim kodom u bilo kojem trenutku.
  • Implementiran je novi proces unakrsne kompilacije i omogućena je mogućnost unakrsne kompilacije za sve podržane ciljne platforme iz jednog zajedničkog okruženja za izgradnju, koje također unakrsno kompajlira ovisnosti i biblioteke koje imaju C povezivanja, bez potrebe za dodavanjem ovih veza u glavni paket. Unakrsna kompilacija organizirana je korištenjem radnih prostora koje pruža dune build sustav.
  • Dodana je podrška za nove ciljne platforme, na primjer, omogućena je eksperimentalna mogućnost izrade samostalnih aplikacija za rad na Raspberry Pi 4 pločama.
  • Radilo se na integraciji dijelova MirageOS-a u ekosustave povezane s razvojem u OCaml jeziku kako bi se pojednostavilo sastavljanje aplikacija u obliku unikernela. Mnogi MirageOS paketi su preneseni na dune build sustav. Uslužni program opam-monorepo dostupan je za instalaciju pomoću upravitelja paketa opam i može se koristiti u projektima koji koriste sustav izgradnje dune. Za održavanje zakrpa koje rješavaju probleme s izgradnjom ovisnosti u duneu, stvorena su dva repozitorija: dune-universe/opam-overlays i dune-universe/mirage-opam-overlays, koji su prema zadanim postavkama omogućeni pri korištenju uslužnog programa mirage CLI.
  • Integracija MirageOS-a s C i Rust bibliotekama je pojednostavljena.
  • Predloženo je novo OCaml runtime koje vam omogućuje da radite bez libc (libc-free).
  • Servis Merlin moguće je koristiti za integraciju sa standardnim integriranim razvojnim okruženjima.

Izvor: opennet.ru

Dodajte komentar