Vydanie MirageOS 4.0, platformy na spúšťanie aplikácií nad hypervízorom

Po roku a pol vývoja bol vydaný projekt MirageOS 4.0, ktorý umožňuje vytvárať operačné systémy pre jednu aplikáciu, v ktorej je aplikácia dodávaná ako samostatný „unikernel“, schopný bežať bez použitia operačného systému. systémy, samostatné jadro OS a akékoľvek vrstvy. Jazyk OCaml sa používa na vývoj aplikácií. Kód projektu je distribuovaný pod bezplatnou licenciou ISC.

Všetky nízkoúrovňové funkcie obsiahnuté v operačnom systéme sú implementované vo forme knižnice, ktorá je pripojená k aplikácii. Aplikácia môže byť vyvinutá na akomkoľvek OS, potom je skompilovaná do špecializovaného jadra (unikernel concept), ktoré môže bežať priamo na hypervízoroch Xen, KVM, BHyve a VMM (OpenBSD), na mobilných platformách v formou procesu v prostredí kompatibilnom s POSIX alebo v cloudových prostrediach Amazon Elastic Compute Cloud a Google Compute Engine.

Vygenerované prostredie neobsahuje nič nadbytočné a interaguje priamo s hypervízorom bez ovládačov alebo systémových vrstiev, čo umožňuje výrazné zníženie režijných nákladov a zvýšenie bezpečnosti. Práca s MirageOS pozostáva z troch fáz: príprava konfigurácie s definovaním balíkov OPAM používaných v prostredí, zostavenie prostredia a spustenie prostredia. Na zabezpečenie prevádzky nad hypervízormi je Runtime postavený na základe jadra Solo5.

Napriek tomu, že aplikácie a knižnice sú vytvorené vo vysokoúrovňovom jazyku OCaml, výsledné prostredia vykazujú pomerne dobrý výkon a minimálnu veľkosť (napr. DNS server zaberá len 200 KB). Zjednodušená je aj údržba prostredí, keďže ak je potrebné aktualizovať program alebo zmeniť konfiguráciu, stačí vytvoriť a spustiť nové prostredie. Niekoľko stoviek knižníc v jazyku OCaml je podporovaných na vykonávanie sieťových operácií (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN atď.), prácu s úložiskom a poskytovanie paralelného spracovania dát.

Kľúčové vylepšenia:

  • Zmenil sa proces zostavovania projektov a unikernelu. Namiesto predtým používaného montážneho systému ocamlbuild sa používa sada nástrojov dune a lokálne úložiská (monorepo). Na vytváranie takýchto úložísk bola pridaná nová utilita opam-monorepo, ktorá umožňuje oddeliť správu balíkov od zostavovania zo zdrojového kódu. Pomôcka opam-monorepo funguje ako vytváranie zámkových súborov pre závislosti súvisiace s projektom, načítanie a extrahovanie kódu závislostí a nastavenie prostredia na používanie systému zostavovania duny. Samotná montáž sa vykonáva pomocou súpravy nástrojov pre duny.
  • Poskytuje sa opakovateľný proces zostavovania. Používanie súborov zámkov poskytuje prepojenie na verzie závislostí a umožňuje vám kedykoľvek úplne zopakovať proces zostavovania s rovnakým kódom.
  • Bol implementovaný nový proces krížovej kompilácie a poskytuje sa možnosť krížovej kompilácie pre všetky podporované cieľové platformy z jedného spoločného prostredia zostavovania, ktoré tiež krížovo kompiluje závislosti a knižnice, ktoré majú väzby C, bez potreby pridávať tieto väzby do hlavný balík. Krížová kompilácia je organizovaná pomocou pracovných priestorov poskytovaných systémom zostavovania duny.
  • Bola pridaná podpora nových cieľových platforiem, napríklad bola poskytnutá experimentálna schopnosť vytvárať samostatné aplikácie pre beh na doskách Raspberry Pi 4.
  • Pracovalo sa na integrácii častí MirageOS do ekosystémov súvisiacich s vývojom v jazyku OCaml, aby sa zjednodušilo zostavovanie aplikácií vo forme unikernelu. Mnoho balíkov MirageOS bolo prenesených do systému zostavovania duny. Pomôcka opam-monorepo je k dispozícii na inštaláciu pomocou správcu balíkov opam a možno ju použiť v projektoch, ktoré používajú systém zostavovania duny. Na udržiavanie záplat, ktoré riešia problémy s vytváraním závislostí v dune, boli vytvorené dva repozitáre: dune-universe/opam-overlays a dune-universe/mirage-opam-overlays, ktoré sú štandardne povolené pri použití pomôcky mirage CLI.
  • Integrácia MirageOS s knižnicami C a Rust bola zjednodušená.
  • Bol navrhnutý nový runtime OCaml, ktorý vám umožňuje zaobísť sa bez libc (bez libc).
  • Pre integráciu so štandardnými integrovanými vývojovými prostrediami je možné využiť službu Merlin.

Zdroj: opennet.ru

Pridať komentár