Pas një viti e gjysmë zhvillimi, është publikuar versioni i projektit MirageOS 4.0, i cili lejon formimin e sistemeve operative të një aplikacioni, ku aplikacioni ofrohet si një "unikernel" i pavarur, i aftë të ekzekutohet pa përdorimin e sistemeve operative, një bërthamë të veçantë të OS dhe ndonjë shtresë 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, të pranishme në sistemin operativ, janë realizuar në formën e një biblioteke që i bashkëngjitet aplikacionit. Aplikacioni mund të zhvillohet në çdo OS, pas së cilës kompilohen në një bërthamë të specializuar (koncepti unikernel), e cila mund të ekzekutohet direkt mbi hipervizorët Xen, KVM, BHyve dhe VMM (OpenBSD), mbi platformat mobile, në formën e një procesi në një ambient të përputhshëm me POSIX ose në mjediset cloud të Amazon Elastic Compute Cloud dhe Google Compute Engine.
Ambientet e gjeneruara nuk përmbajnë asgjë të panevojshme dhe ndërveprojnë drejtpërdrejt me hipervizorin pa drejtorët dhe shtresat sistemike, çka lejon arritjen e një reduktimi të konsiderueshëm të kostove dhe rritjen e sigurisë. Puna me MirageOS përbëhet nga tre faza: përgatitja e konfiguracionit me përcaktimin e paketave OPAM të përdorura në ambient, ndërtimi i ambientit dhe nisja e ambientit. Runtime për sigurinë e ekzekutimit mbi hipervizorët është ndërtuar mbi bazën e bërthamës Solo5.
Pavarësisht se aplikacionet dhe bibliotekat formohen në një gjuhë të nivelit të lartë OCaml, ambientet përfundimtare demonstrojnë performancë të kënaqshme dhe madhësi minimale (p.sh., serveri DNS zë vetëm 200 KB). Po ashtu, mirëmbajtja e ambienteve është e lehtësuar, pasi në rastin e nevojës për përditësimin e programit ose ndryshimin e konfiguracionit, mjafton të krijohet dhe nisë një ambient i ri. Mbështeten disa qindra biblioteka në gjuhën OCaml për kryerjen e operacioneve rrjetërore (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN etj.), punën me skedarët dhe sigurimin e përpunimit paralel të të dhënave.
Përmirësime kyçe:
- Procesi i kompilimit të projekteve dhe unikernel është ndryshuar. Në vend të sistemit të mëparshëm të ndërtimit ocamlbuild, është përdorur mjetet dune dhe depo lokale (monorepo). Për formimin e depo të tilla është shtuar një mjet i ri opam-monorepo, i cili lejon ndarjen e menaxhimit të paketave nga ndërtimi nga kodet burimore. Mjeti opam-monorepo kryen punë si krijimi i skedave lock për varësitë e lidhura me projektin, ngarkimin dhe nxjerrjen e kodit të varësive dhe konfigurimin e mjedisit për përdorimin e sistemit të ndërtimit dune. Ndërtimi vetë kryhet nga mjetet dune.
- ĂshtĂ« ofruar njĂ« proces ndĂ«rtimi tĂ« ripĂ«rsĂ«ritur. PĂ«rdorimi i skedave lock siguron lidhjen me versionet e varĂ«sive dhe lejon tĂ« pĂ«rsĂ«ritet plotĂ«sisht procesi i ndĂ«rtimit nĂ« çdo moment me tĂ« njĂ«jtin kod.
- ĂshtĂ« realizuar njĂ« proces i ri i kross-kompilimit dhe Ă«shtĂ« siguruar mundĂ«sia e kross-kompilimit pĂ«r tĂ« gjitha platformat e mbĂ«shtetura nga njĂ« mjedis tĂ« pĂ«rbashkĂ«t ndĂ«rtimi, nĂ« tĂ« cilin gjithashtu kryhet kross-kompilimi i varĂ«sive dhe bibliotekave me lidhje nĂ« gjuhĂ«n C, pa nevojĂ«n pĂ«r tĂ« shtuar kĂ«to lidhje nĂ« paketĂ«n kryesore. Kross-kompilimi Ă«shtĂ« organizuar duke pĂ«rdorur hapĂ«sirat e punĂ«s qĂ« ofrohen nga sistemi i ndĂ«rtimit dune.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r platformat e reja tĂ« synuara, pĂ«r shembull, Ă«shtĂ« ofruar mundĂ«sia eksperimentale e ndĂ«rtimit tĂ« aplikacioneve tĂ« vetĂ«-pĂ«rshtatshme pĂ«r punĂ« nĂ« kartat Raspberry Pi 4.
- ĂshtĂ« punuar pĂ«r integrimin e pjesĂ«ve tĂ« MirageOS nĂ« ekosistemat qĂ« lidhen me zhvillimin nĂ« gjuhĂ«n OCaml, pĂ«r tĂ« thjeshtuar ndĂ«rtimin e aplikacioneve nĂ« formĂ«n e unikernel. ShumĂ« paketa tĂ« MirageOS janĂ« portuar pĂ«r sistemin e ndĂ«rtimit dune. Mjeti opam-monorepo Ă«shtĂ« i disponueshĂ«m pĂ«r instalim nĂ«pĂ«rmjet menaxherit tĂ« paketave opam dhe mund tĂ« pĂ«rdoret nĂ« projekte qĂ« aplikojnĂ« sistemin e ndĂ«rtimit dune. PĂ«r mbĂ«shtetje tĂ« patch-ave qĂ« zgjidhin probleme me ndĂ«rtimin e varĂ«sive nĂ« dune, janĂ« krijuar dy depo dune-universe/opam-overlays dhe dune-universe/mirage-opam-overlays, tĂ« cilat janĂ« tĂ« pĂ«rfshira pĂ«r shfrytĂ«zim tĂ« parazgjedhur kur pĂ«rdoret mjeti CLI mirage.
- ĂshtĂ« lehtĂ«suar integrimi i MirageOS me bibliotekat nĂ« gjuhĂ«t C dhe Rust.
- ĂshtĂ« propozuar njĂ« runtime i ri OCaml qĂ« lejon pĂ«rdorimin pa libc (libc-free).
- ĂshtĂ« ofruar mundĂ«sia e pĂ«rdorimit tĂ« shĂ«rbimit Merlin pĂ«r integrimin me ambientet e zhvillimit tĂ« integruar.
Burimi: opennet.ru
