Pas një viti e gjysmë zhvillimi, u publikua versioni i projektit MirageOS 4.0, i cili lejon formimin e sistemeve operative për një aplikacion, ku aplikacioni ofrohet si një "unikernel" i pavarur, i aftë të funksionojë pa përdorimin e sistemeve operative, një bërthamë të veçantë të OS dhe ndonjë ndërfaqe tjetër. Për zhvillimin e aplikacioneve përdoret gjuha OCaml. Kodi i projektit shpërndahet nën licencën e lirë ISC.
Të gjitha funksionalitetet e nivelit të ulët, që janë tipike për një sistem operativ, janë realizuar në formën e një biblioteke që lidhet me aplikacionin. Ajo mund të zhvillohet në çdo OS dhe më pas kompilohesh në një bërthamë të specializuar (koncepti unikernel), e cila mund të ekzekutohet drejtpërdrejt mbi hipervizorët Xen, KVM, BHyve dhe VMM (OpenBSD), mbi platforma për mobile, në formën e një procesi në një mjedis të përshtatshëm me POSIX, ose në mjediset cloud të Amazon Elastic Compute Cloud dhe Google Compute Engine.
Mjedisi i gjeneruar nuk përmban asgjë të panevojshme dhe komunikon drejtpërdrejt me hipervizorin pa faqe të ofruesve dhe shtresave sistemore, duke lejuar një ulje të konsiderueshme të kostove dhe rritjen e sigurisë. Puna me MirageOS përfshin tri etapa: përgatitja e konfiguracionit me përcaktimin e paketave OPAM që do të përdoren në mjedis, ndërtimi i mjedisit dhe nisja e tij. Runtime për të siguruar funksionimin mbi hipervizorët është ndërtuar mbi bërthamën Solo5.
Megjithëse aplikacionet dhe biblioteka formohen në një gjuhë të nivelit të lartë OCaml, mjediset përfundimtare demonstrojnë performancë të mirë dhe përmasë minimale (për shembull, serveri DNS merr vetëm 200 KB). Mirëmbajtja e mjediseve është gjithashtu më e thjeshtë, pasi kur është e nevojshme për të përditësuar programin ose për të ndryshuar konfigurimin, mjafton të krijoni dhe nisim një mjedis të ri. Mbështeten disa qindra biblioteka në gjuhën OCaml për të kryer operacione rrjeti (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN etj.), për të punuar me depo dhe për të siguruar përpunim paralel të të dhënave.
Përmirësimet kryesore:
- Procesi i kompilarës së projekteve dhe unikernel është ndryshuar. Në vend të sistemit të ndërtimit të mëparshëm ocamlbuild, tani përdoret mjeti dune dhe depozita lokale (monorepo). Për formimin e këtyre depozitave është shtuar një utilitar i ri opam-monorepo, që lejon ndarjen e menaxhimit të paketave nga ndërtimi nga kodet burimore. Utilitari opam-monorepo kryen punë si krijimi i skedarëve lock për varësitë e lidhura me projektin, shkarkimin dhe nxjerrjen e kodit të varësive dhe konfigurimin e ambientit për aplikimin e sistemit të ndërtimit dune. Ndërtimi i drejtpërdrejtë realizohet nga mjeti dune.
- Procesi i ndërtimit është bërë i riprodhueshëm. Përdorimi i skedarëve lock siguron lidhjen me versionet e varësive dhe lejon përfundimin e plotë të procesit të ndërtimit me të njëjtin kod në çdo kohë.
- ĂshtĂ« realizuar njĂ« proces i ri i ndĂ«rlidhjes sĂ« ndĂ«rlidhjeve dhe Ă«shtĂ« siguruar mundĂ«sia e ndĂ«rlidhjes pĂ«r tĂ« gjitha platformat e qĂ«llimit tĂ« mbĂ«shtetura nga njĂ« mjedis tĂ« zakonshĂ«m ndĂ«rtimi, ku gjithashtu kryhet ndĂ«rlidhja e varĂ«sive dhe bibliotikave me lidhje nĂ« gjuhĂ«n C, pa nevojĂ«n pĂ«r tĂ« shtuar kĂ«to lidhje nĂ« paketĂ«n kryesore. NdĂ«rlidhja Ă«shtĂ« organizuar duke pĂ«rdorur hapĂ«sira pune qĂ« ofrohen nga sistemi ndĂ«rtimor dune.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r platforma tĂ« reja, pĂ«r shembull, Ă«shtĂ« ofruar mundĂ«sia eksperimentale pĂ«r tĂ« ndĂ«rtuar aplikacione tĂ« pavarura pĂ«r tĂ« punuar nĂ« bordet Raspberry Pi 4.
- Puna është bërë për integrimin e pjesëve të MirageOS në ekosistemat e lidhura me zhvillimin në gjuhën OCaml, për të thjeshtuar ndërtimin e aplikacioneve në formën e unikernel. Shumë paketa MirageOS janë portuar për sistemin e ndërtimit dune. Vegla opam-monorepo është e disponueshme për instalim përmes menaxhuesit të paketave opam dhe mund të përdoret në projekte që aplikojnë sistemin e ndërtimit dune. Për mbështetje të patch-eve që zgjidhin probleme të ndërtimit të varësive në dune, janë krijuar dy repozitorë dune-universe/opam-overlays dhe dune-universe/mirage-opam-overlays, të cilat përfshihen si parazgjedhje kur përdoret vegla CLI mirage.
- Integrimi i MirageOS me bibliotekat në gjuhët C dhe Rust është thjeshtuar.
- ĂshtĂ« propozuar njĂ« runtime OCaml i ri, i cili lejon pĂ«rdorimin pa libc (pa libc).
- ĂshtĂ« ofruar mundĂ«sia e pĂ«rdorimit tĂ« shĂ«rbimit Merlin pĂ«r integrim me mjediset e integruara tĂ« zhvillimit.
Burimi: opennet.ru
