Lansering av MirageOS 4.0, en plattform för att köra applikationer ovanpÄ en hypervisor

Efter mer Àn ett och ett halvt Ärs utveckling har version 4.0 av MirageOS publicerats, vilket möjliggör skapandet av operativsystem för enskilda applikationer dÀr applikationen levereras som en sjÀlvstÀndig "unikernel" som kan köras utan att anvÀnda operativsystem, separata OS-kÀrnor eller nÄgra mellanlager. Utvecklingen av applikationer görs med programsprÄket OCaml. Koden i projektet distribueras under den fria licensen ISC.

All lÄg nivÄ funktionalitet som Àr typisk för operativsystemet implementeras i form av ett bibliotek som kopplas till applikationen. Applikationen kan utvecklas i vilket operativsystem som helst, och compilers sedan till en specialiserad kÀrna (konceptet unikernel) som kan köras direkt över hypervisorer som Xen, KVM, BHyve och VMM (OpenBSD), över mobila plattformar, som en process i en POSIX-kompatibel miljö eller i molnmiljöer som Amazon Elastic Compute Cloud och Google Compute Engine.

Den genererade miljön innehÄller inget överflödigt och interagerar direkt med hypervisorn utan drivrutiner och systemlager, vilket möjliggör en betydande minskning av overhead och ökad sÀkerhet. Arbetet med MirageOS omfattar tre steg: förbereda konfigurationen med att bestÀmma vilka OPAM-paket som anvÀnds i miljön, bygga miljön och starta miljön. Runtime för att möjliggöra körning över hypervisorer bygger pÄ kÀrnan Solo5.

Trots att applikationer och bibliotek skapas pÄ det hög nivÄ programsprÄket OCaml, visar de slutgiltiga miljöerna en ganska bra prestanda och minimal storlek (till exempel tar DNS-servern bara 200 KB). UnderhÄllet av miljöerna har ocksÄ förenklats, eftersom det vid behov av programuppdateringar eller konfigurationsÀndringar Àr tillrÀckligt att skapa och starta en ny miljö. Flera hundra bibliotek pÄ OCaml stöds för att utföra nÀtverksoperationer (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, etc.), arbeta med lagringslösningar och sÀkerstÀlla parallell databehandling.

NyckelförbÀttringar:

  • Processen för att kompilera projekt och unikernel har förĂ€ndrats. IstĂ€llet för det tidigare anvĂ€nda byggsystemet ocamlbuild, anvĂ€nds nu verktyget dune och lokala förrĂ„d (monorepo). För att skapa sĂ„dana förrĂ„d har en ny verktyg som heter opam-monorepo lagts till, vilket möjliggör separation av paketförvaltning frĂ„n kompilering frĂ„n kĂ€llkod. Verktyget opam-monorepo utför uppgifter som att skapa lĂ„s-filer för projektrelaterade beroenden, hĂ€mta och extrahera kod frĂ„n beroenden och konfigurera miljön för att anvĂ€nda byggsystemet dune. SjĂ€lva kompileringen utförs med verktyget dune.
  • En repetitiv byggprocess har tillhandahĂ„llits. AnvĂ€ndningen av lĂ„s-filer sĂ€kerstĂ€ller koppling till versioner av beroenden och gör det möjligt att nĂ€r som helst helt reproducera byggprocessen med samma kod.
  • En ny process för korskompilering har genomförts och möjlighet till korskompilering för alla stödda mĂ„lplattformar har sĂ€kerstĂ€llts frĂ„n en gemensam byggmiljö, dĂ€r korskompilering av beroenden och bibliotek som har C-bindningar utförs, utan att dessa bindningar behöver lĂ€ggas till i huvudpaketet. Korskompilering Ă€r organiserad med hjĂ€lp av arbetsytor som tillhandahĂ„lls av byggsystemet dune.
  • Stöd för nya mĂ„lplattformar har lagts till, exempelvis har en experimentell möjlighet till att bygga sjĂ€lvförsörjande applikationer för anvĂ€ndning pĂ„ Raspberry Pi 4 tillhandahĂ„llits.
  • Arbete har gjorts för att integrera delar av MirageOS i ekosystem relaterade till utveckling pĂ„ OCaml, för att förenkla byggandet av applikationer i form av unikernel. MĂ„nga paket av MirageOS har portats till byggsystemet dune. Verktyget opam-monorepo Ă€r tillgĂ€ngligt för installation med pakethanteraren opam och kan anvĂ€ndas i projekt som anvĂ€nder byggsystemet dune. För att stödja patchar som löser problem med beroende-kompilering i dune har tvĂ„ förrĂ„d, dune-universe/opam-overlays och dune-universe/mirage-opam-overlays, skapats och ingĂ„r som standard vid anvĂ€ndning av CLI-verktyget mirage.
  • Integrationen av MirageOS med bibliotek pĂ„ sprĂ„k som C och Rust har förenklats.
  • En ny OCaml-runtime har föreslagits, vilket gör det möjligt att klara sig utan libc (libc-free).
  • Möjlighet att anvĂ€nda tjĂ€nsten Merlin för integration med typiska integrerade utvecklingsmiljöer har tillhandahĂ„llits.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster