Megjelent a MirageOS 4.0, amely platform alkalmazások hipervizoron történő futtatására

Másfél éves fejlesztés után megjelent a MirageOS 4.0 projekt, amely lehetővé teszi egy alkalmazáshoz olyan operációs rendszerek létrehozását, amelyekben az alkalmazás önálló „unikernelként” kerül szállításra, amely képes az operációs rendszer használata nélkül is futni. rendszerek, külön operációs rendszer kernel és bármilyen réteg. Az OCaml nyelvet alkalmazások fejlesztésére használják. A projektkód ingyenes ISC licenc alatt kerül terjesztésre.

Az operációs rendszerben rejlő összes alacsony szintű funkcionalitás az alkalmazáshoz csatolt könyvtár formájában valósul meg. Az alkalmazás bármilyen operációs rendszeren fejleszthető, majd egy speciális kernellé (unikernel koncepció) fordítható, amely közvetlenül futhat Xen, KVM, BHyve és VMM (OpenBSD) hipervizorok tetején, mobil platformok tetején, a folyamat formájában POSIX-kompatibilis környezetben vagy felhőkörnyezetben Amazon Elastic Compute Cloud és Google Compute Engine.

Az előállított környezet nem tartalmaz semmi feleslegeset, és közvetlenül interakcióba lép a hypervisorral, illesztőprogramok vagy rendszerrétegek nélkül, ami lehetővé teszi az általános költségek jelentős csökkentését és a biztonság növelését. A MirageOS-szel való munka három szakaszból áll: a konfiguráció előkészítése a környezetben használt OPAM-csomagok meghatározásával, a környezet összeállítása és a környezet elindítása. A hipervizorokon való működés biztosítása érdekében a Runtime a Solo5 kernelre épül.

Annak ellenére, hogy az alkalmazások és a könyvtárak magas szintű OCaml nyelven készülnek, az így létrejövő környezetek meglehetősen jó teljesítményt és minimális méretet mutatnak (például a DNS-kiszolgáló mindössze 200 KB-ot foglal el). A környezetek karbantartása is leegyszerűsödik, hiszen ha frissíteni kell a programot, vagy módosítani kell a konfigurációt, elég egy új környezetet létrehozni és elindítani. Több száz OCaml nyelvű könyvtár támogatja a hálózati műveletek (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN stb.) végrehajtását, a tárolást és a párhuzamos adatfeldolgozást.

Főbb fejlesztések:

  • A projektek és az unikernel összeállításának folyamata megváltozott. A korábban használt ocamlbuild összeállítási rendszer helyett a dune toolkit és a helyi adattárak (monorepo) használatosak. Az ilyen tárolók létrehozásához egy új segédprogram, az opam-monorepo került hozzáadásra, amely lehetővé teszi a csomagkezelés elkülönítését a forráskódtól való felépítéstől. Az opam-monorepo segédprogram működik, például zárfájlokat hoz létre a projekttel kapcsolatos függőségekhez, tölti be és bontsa ki a függőségi kódot, valamint beállítja a környezetet a dune build rendszer használatához. A tényleges összeszerelést a dűne eszközkészlet végzi.
  • Megismételhető építési folyamat biztosított. A zárolási fájlok használata hivatkozást biztosít a függőségi verziókhoz, és lehetővé teszi az építési folyamat teljes megismétlését ugyanazzal a kóddal bármikor.
  • Egy új keresztfordítási folyamatot vezettek be, és lehetőség nyílik az összes támogatott célplatformra egyetlen közös összeállítási környezetből történő keresztfordításra, amely szintén keresztfordítja a C-kötésekkel rendelkező függőségeket és könyvtárakat anélkül, hogy ezeket a kötéseket hozzá kellene adnia a fő csomag. A keresztösszeállítás a dune build rendszer által biztosított munkaterületek segítségével történik.
  • Az új célplatformok támogatása hozzáadásra került, például kísérleti lehetőség biztosított önálló alkalmazások létrehozására Raspberry Pi 4 kártyákon való futtatáshoz.
  • Dolgoztak a MirageOS egyes részeinek az OCaml nyelven történő fejlesztéssel kapcsolatos ökoszisztémákba történő integrálása érdekében, hogy egyszerűsítsék az alkalmazások összeállítását unikernel formájában. Sok MirageOS-csomagot portoltak a dune build rendszerbe. Az opam-monorepo segédprogram az opam csomagkezelővel telepíthető, és a dune build rendszert használó projektekben használható. A dűnékben a függőségek kiépítésével kapcsolatos problémák megoldására szolgáló javítások karbantartására két adattárat hoztak létre: dune-univerzum/opam-overlays és dune-universe/mirage-opam-overlays, amelyek alapértelmezés szerint engedélyezve vannak a mirage CLI segédprogram használatakor.
  • A MirageOS integrációja a C és Rust könyvtárakkal egyszerűsödött.
  • Egy új OCaml futtatókörnyezetet javasoltak, amely lehetővé teszi a libc nélküli (libc-mentes) megoldást.
  • Lehetőség van a Merlin szolgáltatás használatára szabványos integrált fejlesztői környezetekkel való integrációhoz.

Forrás: opennet.ru

Hozzászólás