Gefa út MirageOS 4.0, vettvang til að keyra forrit ofan á hypervisor

Eftir eins og hálfs árs þróun hefur útgáfa MirageOS 4.0 verkefnisins verið gefin út, sem gerir kleift að búa til stýrikerfi fyrir eitt forrit, þar sem forritið er afhent sem sjálfstætt „einkern“, sem getur keyrt án notkun stýrikerfa, sérstakur OS kjarna og hvaða lög sem er. Ocaml tungumálið er notað til að þróa forrit. Verkefniskóðanum er dreift undir ókeypis ISC leyfinu.

Öll lágstigsvirkni sem felst í stýrikerfinu er útfærð í formi bókasafns sem fylgir forritinu. Forritið er hægt að þróa á hvaða stýrikerfi sem er, eftir það er það sett saman í sérhæfðan kjarna (einkernel hugtak), sem getur keyrt beint ofan á Xen, KVM, BHyve og VMM (OpenBSD) hypervisors, ofan á farsímakerfi, í mynd af ferli í POSIX-samhæfu umhverfi eða í skýjaumhverfi Amazon Elastic Compute Cloud og Google Compute Engine.

Myndað umhverfi inniheldur ekkert óþarfa og hefur bein samskipti við hypervisorinn án rekla eða kerfislaga, sem gerir kleift að draga verulega úr kostnaði og auka öryggi. Vinna með MirageOS kemur niður á þrjú stig: að undirbúa uppsetninguna með því að skilgreina OPAM pakkana sem notaðir eru í umhverfinu, setja saman umhverfið og ræsa umhverfið. Til að tryggja rekstur ofan á hypervisors er Runtime byggt á grunni Solo5 kjarnans.

Þrátt fyrir þá staðreynd að forrit og bókasöfn séu búin til á OCaml tungumálinu á háu stigi, sýna umhverfið sem myndast nokkuð góða frammistöðu og lágmarksstærð (til dæmis tekur DNS þjónninn aðeins 200 KB). Viðhald á umhverfi er einnig einfaldað, þar sem ef það er nauðsynlegt að uppfæra forritið eða breyta stillingum, er nóg að búa til og ræsa nýtt umhverfi. Nokkur hundruð bókasöfn á OCaml tungumálinu eru studd til að framkvæma netaðgerðir (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, osfrv.), vinna með geymslu og veita samhliða gagnavinnslu.

Helstu endurbætur:

  • Ferlið við að setja saman verkefni og einstakarnel hefur verið breytt. Í stað þess áður notaða ocamlbuild samsetningarkerfis eru sandaldaverkfærakistan og staðbundnar geymslur (monorepo) notaðar. Til að búa til slíkar geymslur hefur verið bætt við nýju tóli, opam-monorepo, sem gerir það mögulegt að aðskilja pakkastjórnun frá byggingu frá frumkóða. Opam-monorepo tólið virkar eins og að búa til læsingarskrár fyrir verkefnistengdar ósjálfstæði, hlaða og draga út ávanakóða og setja upp umhverfið til að nota sandbyggðakerfið. Raunveruleg samsetning er framkvæmd af dune verkfærakistunni.
  • Endurtekið byggingarferli er veitt. Notkun læsaskráa veitir tengil á ósjálfstæðisútgáfur og gerir þér kleift að endurtaka smíðaferlið alveg með sama kóða hvenær sem er.
  • Nýtt krosssamsetningarferli hefur verið innleitt og möguleikinn á að krosssama fyrir alla studda markpalla úr einu sameiginlegu byggingarumhverfi er til staðar, sem sameinar einnig ósjálfstæði og bókasöfn sem hafa C-bindingar, án þess að þurfa að bæta þessum bindingum við aðalpakkinn. Krosssamsöfnun er skipulögð með því að nota vinnusvæði sem sandbyggðakerfið býður upp á.
  • Stuðningur fyrir nýja markvettvang hefur verið bætt við, til dæmis hefur verið boðið upp á tilraunagetu til að smíða sjálfstætt forrit til að keyra á Raspberry Pi 4 borðum.
  • Unnið hefur verið að því að samþætta hluta af MirageOS inn í vistkerfi sem tengjast þróun á OCaml tungumálinu til að einfalda samsetningu forrita í formi unikernel. Margir MirageOS pakkar hafa verið fluttir yfir í sandbyggðakerfið. Opam-monorepo tólið er fáanlegt til uppsetningar með því að nota opam pakkastjórann og hægt er að nota það í verkefnum sem nota sandaldasmíðakerfið. Til að viðhalda plástra sem leysa vandamál með að byggja upp ósjálfstæði í sandöldu, hafa tvær geymslur verið búnar til: dune-universe/opam-overlays og dune-universe/mirage-opam-overlays, sem eru virkjuð sjálfgefið þegar mirage CLI tólið er notað.
  • MirageOS samþætting við C og Rust bókasöfn hefur verið einfölduð.
  • Nýr OCaml keyrslutími hefur verið lagður til sem gerir þér kleift að gera án libc (libc-frjáls).
  • Það er hægt að nota Merlin þjónustuna til samþættingar við staðlað samþætt þróunarumhverfi.

Heimild: opennet.ru

Bæta við athugasemd