Itusilẹ ti MirageOS 4.0, pẹpẹ kan fun ṣiṣe awọn ohun elo lori oke hypervisor kan

Lẹhin ọdun kan ati idaji ti idagbasoke, iṣẹ MirageOS 4.0 ti tu silẹ, gbigba awọn ẹda ti awọn ọna ṣiṣe fun ohun elo kan, ninu eyiti a fi ohun elo naa bi “unikernel” ti ara ẹni, ti o lagbara lati ṣiṣẹ laisi lilo iṣẹ ṣiṣe. awọn ọna ṣiṣe, ekuro OS lọtọ ati eyikeyi awọn fẹlẹfẹlẹ. Ede OCaml ni a lo lati ṣe agbekalẹ awọn ohun elo. Koodu ise agbese ti pin labẹ iwe-aṣẹ ISC ọfẹ.

Gbogbo iṣẹ ṣiṣe-kekere ti o wa ninu ẹrọ ṣiṣe ni a ṣe imuse ni irisi ile-ikawe ti o somọ ohun elo naa. Ohun elo naa le ni idagbasoke lori OS eyikeyi, lẹhin eyiti o ti ṣajọ sinu ekuro pataki kan (ero Unikernel), eyiti o le ṣiṣẹ taara lori oke Xen, KVM, BHyve ati VMM (OpenBSD) hypervisors, lori awọn iru ẹrọ alagbeka, ni fọọmu ilana kan ni agbegbe ifaramọ POSIX tabi ni awọn agbegbe awọsanma Amazon Elastic Compute Cloud ati Google Compute Engine.

Ayika ti ipilẹṣẹ ko ni ohunkohun superfluous ati ibaraenisepo taara pẹlu hypervisor laisi awakọ tabi awọn ipele eto, eyiti o fun laaye idinku nla ninu awọn idiyele oke ati aabo pọ si. Ṣiṣẹ pẹlu MirageOS sọkalẹ si awọn ipele mẹta: ngbaradi iṣeto ni pẹlu asọye awọn idii OPAM ti a lo ninu agbegbe, apejọ agbegbe, ati ifilọlẹ agbegbe naa. Lati rii daju iṣiṣẹ lori oke ti awọn hypervisors, Akoko ṣiṣe jẹ itumọ lori ipilẹ ti ekuro Solo5.

Bi o ti jẹ pe awọn ohun elo ati awọn ile-ikawe ni a ṣẹda ni ede OCaml ti o ga, awọn agbegbe ti o yọrisi ṣe afihan iṣẹ ṣiṣe ti o dara ati iwọn kekere (fun apẹẹrẹ, olupin DNS gba to 200 KB nikan). Itọju awọn agbegbe tun jẹ irọrun, nitori ti o ba jẹ dandan lati ṣe imudojuiwọn eto naa tabi yi iṣeto naa pada, o to lati ṣẹda ati ṣe ifilọlẹ agbegbe tuntun kan. Ọpọlọpọ awọn ile-ikawe ọgọrun ni ede OCaml ni atilẹyin fun ṣiṣe awọn iṣẹ nẹtiwọọki (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, ati bẹbẹ lọ), ṣiṣẹ pẹlu ibi ipamọ ati pese sisẹ data ni afiwe.

Awọn ilọsiwaju bọtini:

  • Ilana ti iṣakojọpọ awọn iṣẹ akanṣe ati unikernel ti yipada. Dipo eto apejọ ocamlbuild ti a ti lo tẹlẹ, ohun elo irinṣẹ dune ati awọn ibi ipamọ agbegbe (monorepo) ni a lo. Lati ṣẹda iru awọn ibi ipamọ, ohun elo tuntun kan, opam-monorepo, ti ṣafikun, eyiti o jẹ ki o ṣee ṣe lati ya iṣakoso package kuro lati ile lati koodu orisun. IwUlO opam-monorepo n ṣiṣẹ gẹgẹbi ṣiṣẹda awọn faili titiipa fun awọn igbẹkẹle ti o jọmọ akanṣe, ikojọpọ ati yiyọ koodu igbẹkẹle jade, ati ṣeto agbegbe lati lo eto kikọ dune. Apejọ gangan jẹ nipasẹ ohun elo ohun elo dune.
  • Ilana Kọ atunwi ti pese. Lilo awọn faili titiipa pese ọna asopọ si awọn ẹya ti o gbẹkẹle ati gba ọ laaye lati tun ṣe ilana kikọ patapata pẹlu koodu kanna nigbakugba.
  • Ilana iṣakojọpọ agbelebu tuntun ti ni imuse ati agbara lati ṣajọpọ fun gbogbo awọn iru ẹrọ ibi-afẹde ti o ni atilẹyin lati agbegbe ile-itumọ ti o wọpọ ni a pese, eyiti o tun ṣe akopọ awọn igbẹkẹle ati awọn ile-ikawe ti o ni awọn ifunmọ C, laisi iwulo lati ṣafikun awọn abuda wọnyi si package akọkọ. Akopọ-agbelebu ti ṣeto ni lilo awọn aye iṣẹ ti a pese nipasẹ eto kikọ dune.
  • Atilẹyin fun awọn iru ẹrọ ibi-afẹde tuntun ni a ti ṣafikun, fun apẹẹrẹ, agbara idanwo lati kọ awọn ohun elo ti o wa ninu ara fun ṣiṣe lori awọn igbimọ Rasipibẹri Pi 4 ti pese.
  • A ti ṣe iṣẹ lati ṣepọ awọn apakan ti MirageOS sinu awọn ilolupo ilolupo ti o ni ibatan si idagbasoke ni ede OCaml lati jẹ ki apejọ awọn ohun elo rọrun ni irisi unikernel. Ọpọlọpọ awọn idii MirageOS ti jẹ gbigbe si eto kikọ dune. IwUlO opam-monorepo wa fun fifi sori ẹrọ nipa lilo oluṣakoso package opam ati pe o le ṣee lo ni awọn iṣẹ akanṣe ti o lo eto kikọ dune. Lati ṣetọju awọn abulẹ ti o yanju awọn iṣoro pẹlu awọn igbẹkẹle ile ni dune, awọn ibi ipamọ meji ti ṣẹda: dune-universe/opam-overlays ati dune-universe/mirage-opam-overlays, eyiti o ṣiṣẹ nipasẹ aiyipada nigba lilo ohun elo CLI mirage.
  • Iṣepọ MirageOS pẹlu awọn ile-ikawe C ati Rust ti jẹ irọrun.
  • A ti dabaa asiko asiko OCaml tuntun ti o fun ọ laaye lati ṣe laisi libc (ọfẹ libc).
  • O ṣee ṣe lati lo iṣẹ Merlin fun isọpọ pẹlu awọn agbegbe idagbasoke iṣọpọ boṣewa.

orisun: opennet.ru

Fi ọrọìwòye kun