Lage nan MirageOS 4.0, yon platfòm pou kouri aplikasyon sou tèt hypervisor la

Apre yon ane ak yon mwatye nan devlopman, yo te pibliye liberasyon an nan pwojè MirageOS 4.0, ki pèmèt kreyasyon an nan sistèm opere pou yon aplikasyon, nan ki aplikasyon an delivre kòm yon endepandan "unikernel", ki kapab kouri san yo pa. itilizasyon sistèm opere, yon nwayo OS separe ak nenpòt kouch. Yo itilize lang OCaml pou devlope aplikasyon yo. Kòd pwojè a distribye anba lisans ISC gratis.

Tout fonksyonalite ba-nivo nannan nan sistèm operasyon an aplike nan fòm lan nan yon bibliyotèk ki tache ak aplikasyon an. Aplikasyon an ka devlope sou nenpòt OS, apre sa li konpile nan yon nwayo espesyalize (konsèp unikernel), ki ka kouri dirèkteman sou ipèrvizeur Xen, KVM, BHyve ak VMM (OpenBSD), sou tèt platfòm mobil, nan fòm yon pwosesis nan yon anviwònman ki konfòme POSIX oswa nan anviwònman nwaj Amazon Elastic Compute Cloud ak Google Compute Engine.

Anviwònman pwodwi a pa gen anyen ki initil epi li reyaji dirèkteman ak hypervisor la san chofè oswa kouch sistèm, sa ki pèmèt pou yon rediksyon enpòtan nan depans anlè ak sekirite ogmante. Travay ak MirageOS vini nan twa etap: prepare konfigirasyon an ak defini pakè OPAM yo itilize nan anviwònman an, rasanble anviwònman an, ak lanse anviwònman an. Pou asire operasyon sou tèt hypervisors, Runtime bati sou baz nwayo Solo5 la.

Malgre lefèt ke aplikasyon ak bibliyotèk yo kreye nan lang OCaml wo nivo, anviwònman ki lakòz yo demontre pèfòmans jistis bon ak gwosè minim (pa egzanp, sèvè DNS la pran sèlman 200 KB). Antretyen nan anviwònman tou senplifye, depi si li nesesè mete ajou pwogram nan oswa chanje konfigirasyon an, li se ase yo kreye ak lanse yon nouvo anviwònman. Plizyè santèn bibliyotèk nan lang OCaml sipòte pou fè operasyon rezo (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, elatriye), travay ak depo ak bay pwosesis done paralèl.

Amelyorasyon kle:

  • Pwosesis konpile pwojè ak unikernel te chanje. Olye de sistèm asanble ocamlbuild ki te itilize deja, yo itilize bwat zouti dune ak depo lokal yo (monorepo). Pou kreye depo sa yo, yo te ajoute yon nouvo sèvis piblik, opam-monorepo, ki fè li posib separe jesyon pake ak bilding ak kòd sous. Opam-monorepo sèvis piblik la fè travay tankou kreye dosye fèmen pou depandans ki gen rapò ak pwojè, chaje ak èkstraksyon kòd depandans, ak mete kanpe anviwònman an pou itilize sistèm nan konstriksyon dune. Asanble aktyèl la fèt pa bwat zouti dune a.
  • Yo bay yon pwosesis konstriksyon repete. Sèvi ak dosye fèmen bay yon lyen nan vèsyon depandans ak pèmèt ou konplètman repete pwosesis la bati ak menm kòd la nenpòt ki lè.
  • Yo te aplike yon nouvo pwosesis kwa-konpile epi yo bay kapasite nan kwa-konpile pou tout platfòm sib ki sipòte soti nan yon anviwònman konstriksyon komen, ki tou kwaze-konpile depandans ak bibliyotèk ki gen C Liaisons, san yo pa bezwen ajoute Liaison sa yo nan. pake prensipal la. Konpilasyon kwa yo òganize lè l sèvi avèk espas travay sistèm konstriksyon dune yo bay.
  • Sipò pou nouvo platfòm sib yo te ajoute, pou egzanp, yon kapasite eksperimantal yo bati aplikasyon endepandan pou kouri sou Raspberry Pi 4 ankadreman yo te bay.
  • Travay yo te fèt pou entegre pati nan MirageOS nan ekosistèm ki gen rapò ak devlopman nan lang OCaml senplifye asanble aplikasyon an nan fòm lan nan unikernel. Anpil pakè MirageOS yo te pote nan sistèm nan konstriksyon dune. Opam-monorepo sèvis piblik la disponib pou enstalasyon lè l sèvi avèk manadjè pake opam la epi yo ka itilize nan pwojè ki sèvi ak sistèm nan konstriksyon dune. Pou kenbe plak ki rezoud pwoblèm ak bati depandans nan dune, yo te kreye de depo: dune-universe/opam-overlays ak dune-universe/mirage-opam-overlays, ki aktive pa default lè w ap itilize sèvis piblik Mirage CLI.
  • Entegrasyon MirageOS ak bibliyotèk C ak Rust te senplifye.
  • Yo te pwopoze yon nouvo tan OCaml ki pèmèt ou fè san libc (libc-gratis).
  • Li posib pou itilize sèvis Merlin pou entegrasyon ak anviwònman devlopman entegre estanda.

Sous: opennet.ru

Add nouvo kòmantè