Release fan MirageOS 4.0, in platfoarm foar it útfieren fan applikaasjes boppe op 'e hypervisor

Nei in jier en in heal fan ûntwikkeling is de frijlitting fan it MirageOS 4.0-projekt publisearre, wêrtroch it meitsjen fan bestjoeringssystemen foar ien applikaasje mooglik is, wêryn de applikaasje wurdt levere as in selsstannige "unikernel", dy't kin rinne sûnder it brûken fan bestjoeringssystemen, in aparte OS-kernel en alle lagen. De OCAml-taal wurdt brûkt om applikaasjes te ûntwikkeljen. De projektkoade wurdt ferspraat ûnder de fergese ISC-lisinsje.

Alle funksjonaliteit op leech nivo ynherinte oan it bestjoeringssysteem wurdt ymplementearre yn 'e foarm fan in bibleteek dy't is taheakke oan' e applikaasje. De applikaasje kin ûntwikkele wurde op elk OS, wêrnei't it wurdt gearstald yn in spesjalisearre kernel (unikernel-konsept), dy't direkt boppe op Xen, KVM, BHyve en VMM (OpenBSD) hypervisors kin rinne, boppe op mobile platfoarms, yn 'e foarm fan in proses yn in POSIX-konforme omjouwing of yn wolkomjouwings Amazon Elastic Compute Cloud en Google Compute Engine.

De generearre omjouwing befettet neat oerstallich en ynteraksje direkt mei de hypervisor sûnder bestjoerders of systeemlagen, wêrtroch in signifikante fermindering fan overheadkosten en ferhege feiligens mooglik is. Wurkje mei MirageOS komt del op trije stadia: it tarieden fan de konfiguraasje mei it definiearjen fan de OPAM-pakketten dy't brûkt wurde yn 'e omjouwing, it gearstallen fan' e omjouwing en it starten fan 'e omjouwing. Om de operaasje boppe op hypervisors te garandearjen, is Runtime boud op basis fan 'e Solo5 kernel.

Nettsjinsteande it feit dat applikaasjes en bibleteken binne makke yn 'e OCaml-taal op hege nivo, litte de resultearjende omjouwings frij goede prestaasjes en minimale grutte sjen (bygelyks de DNS-tsjinner nimt mar 200 KB op). Omjouwingsûnderhâld wurdt ek ferienfâldige, om't as it nedich is om it programma te aktualisearjen of de konfiguraasje te feroarjen, is it genôch om in nije omjouwing te meitsjen en te starten. Ferskate hûndert biblioteken yn 'e OCaml-taal wurde stipe foar it útfieren fan netwurkoperaasjes (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, ensfh.), Wurkje mei opslach en it leverjen fan parallelle gegevensferwurking.

Wichtige ferbetterings:

  • It proses fan it gearstallen fan projekten en unikernel is feroare. Ynstee fan it earder brûkte ocamlbuild-assemblagesysteem, wurde de dune-ark en lokale repositories (monorepo) brûkt. Om sokke repositories te meitsjen, is in nij hulpprogramma, opam-monorepo, tafoege, wat it mooglik makket om pakketbehear te skieden fan it bouwen fan boarnekoade. It opam-monorepo-hulpprogramma wurket lykas it meitsjen fan slûsbestannen foar projektrelatearre ôfhinklikens, laden en ekstrahearje fan ôfhinklikenskoade, en it ynstellen fan de omjouwing om it dúnbousysteem te brûken. De eigentlike gearstalling wurdt útfierd troch de dune toolkit.
  • In werhelle bouproses wurdt levere. It brûken fan slotbestannen jout in keppeling nei ôfhinklikensferzjes en lit jo it bouproses op elk momint folslein werhelje mei deselde koade.
  • In nij cross-compilation-proses is ymplementearre en de mooglikheid om cross-compile foar alle stipe doelplatfoarms út ien mienskiplike build-omjouwing wurdt levere, dy't ek cross-compiles ôfhinklikens en biblioteken hawwe dy't C-bindingen hawwe, sûnder de needsaak om dizze bindingen ta te foegjen oan it haadpakket. Cross-kompilaasje wurdt organisearre mei help fan wurkromten levere troch it dúnbousysteem.
  • Stipe foar nije doelplatfoarms is tafoege, bygelyks in eksperimintele mooglikheid om selsstannige applikaasjes te bouwen foar it útfieren fan Raspberry Pi 4-boards.
  • Der is wurk dien om dielen fan MirageOS te yntegrearjen yn ekosystemen dy't relatearre binne oan ûntwikkeling yn 'e OCaml-taal om de gearstalling fan applikaasjes yn' e foarm fan unikernel te ferienfâldigjen. In protte MirageOS-pakketten binne porteare nei it dúnbousysteem. It opam-monorepo-hulpprogramma is beskikber foar ynstallaasje mei de opam-pakketbehearder en kin brûkt wurde yn projekten dy't it dúnbousysteem brûke. Om patches te behâlden dy't problemen oplosse mei it bouwen fan ôfhinklikens yn dún, binne twa repositories makke: dune-universe/opam-overlays en dune-universe/mirage-opam-overlays, dy't standert ynskeakele binne by it brûken fan it mirage CLI-hulpprogramma.
  • MirageOS-yntegraasje mei C- en Rust-biblioteken is ferienfâldige.
  • In nije OKaml-runtime is foarsteld wêrmei jo te dwaan sûnder libc (libc-fergees).
  • It is mooglik om de Merlin-tsjinst te brûken foar yntegraasje mei standert yntegreare ûntwikkelingsomjouwings.

Boarne: opennet.ru

Add a comment