Pagpagawas sa MirageOS 4.0, usa ka plataporma alang sa pagpadagan sa mga aplikasyon sa ibabaw sa usa ka hypervisor

Pagkahuman sa usa ka tuig ug tunga nga pag-uswag, ang pagpagawas sa proyekto sa MirageOS 4.0 gipatik, nga nagtugot kanimo sa paghimo sa mga operating system alang sa usa ka aplikasyon, diin ang aplikasyon gihatag ingon usa ka igo nga "unikernel" nga mahimo’g modagan nga wala. ang paggamit sa mga operating system, usa ka bulag nga OS kernel ug bisan unsang mga layer. Ang pinulongan sa pagpalambo sa aplikasyon mao ang OCaml. Ang code sa proyekto giapod-apod ubos sa usa ka libre nga lisensya sa ISC.

Ang tanan nga mubu nga lebel nga pagpaandar nga lumad sa operating system gipatuman ingon usa ka librarya nga gilakip sa aplikasyon. Ang usa ka aplikasyon mahimong maugmad sa bisan unsang OS ug dayon i-compile sa usa ka espesyal nga kernel (ang unikernel nga konsepto) nga mahimong direktang modagan sa ibabaw sa Xen, KVM, BHyve ug VMM (OpenBSD) hypervisors, sa mga mobile platform, isip proseso sa usa ka POSIX- compliant nga palibot, o sa Amazon Elastic Compute Cloud ug Google Compute Engine cloud environment.

Ang namugna nga palibot wala'y sulod nga bisan unsa nga sobra ug direktang nakig-uban sa hypervisor nga walay mga drayber ug mga layer sa sistema, nga nagtugot sa pagkab-ot sa usa ka mahinungdanon nga pagkunhod sa mga gasto sa overhead ug pagdugang sa seguridad. Ang pagtrabaho kauban ang MirageOS moabut sa tulo ka yugto: pag-andam sa pag-configure sa pagtino sa mga pakete sa OPAM nga gigamit sa kalikopan, pagtukod sa kalikopan, ug paglansad sa kalikopan. Ang runtime alang sa paghatag og trabaho sa ibabaw sa mga hypervisors gitukod base sa Solo5 kernel.

Bisan pa sa kamatuoran nga ang mga aplikasyon ug mga librarya naporma sa taas nga lebel nga pinulongan nga OCaml, ang resulta nga mga palibot nagpakita sa maayo nga performance ug gamay nga gidak-on (pananglitan, ang DNS server nagkinahanglan lamang og 200 KB). Gipasimple usab ang pagmentinar sa mga palibot, tungod kay kung kinahanglan nimo nga i-update ang programa o usbon ang pagsumpo, igo na ang paghimo ug pagpadagan sa usa ka bag-ong palibot. Gisuportahan ang pila ka gatos nga librarya sa OCaml aron mahimo ang mga operasyon sa network (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, ug uban pa), nagtrabaho kauban ang mga pagtipig ug naghatag parehas nga pagproseso sa datos.

Pangunang mga kalamboan:

  • Gibag-o ang proseso sa pagtipon sa mga proyekto ug unikernel. Imbis sa kaniadto gigamit nga sistema sa pagtukod sa ocamlbuild, gigamit ang dune toolkit ug mga lokal nga repositoryo (monorepo). Aron makahimo sa ingon nga mga repository, usa ka bag-ong utility opam-monorepo ang gidugang, nga nagtugot sa pagbulag sa pagdumala sa package gikan sa pagtukod gikan sa gigikanan. Ang opam-monorepo utility naghimo sa buhat sa paghimo sa mga lockfile alang sa mga dependency nga may kalabotan sa proyekto, pag-download ug pagkuha sa dependency code, ug pag-set up sa palibot aron magamit ang sistema sa pagtukod sa dune. Ang pagtukod mismo gihimo sa dune toolkit.
  • Gihatag ang usa ka balik-balik nga proseso sa pagtukod. Ang paggamit sa mga file sa lock naghatag og pagbugkos sa mga bersyon sa dependency ug nagtugot kanimo sa hingpit nga pag-usab sa proseso sa pagtukod sa bisan unsang oras nga adunay parehas nga code.
  • Usa ka bag-ong proseso sa cross-compilation ang gipatuman ug posible nga mag-cross-compile alang sa tanan nga gisuportahan nga target nga mga platform gikan sa usa ka sagad nga pagtukod sa palibot, diin, taliwala sa ubang mga butang, ang mga dependency ug mga librarya nga adunay C bindings gi-cross-compiled nga wala kinahanglana nga idugang. kini nga mga pagbugkos sa panguna nga pakete. Ang cross compilation giorganisar gamit ang mga workspace nga gihatag sa dune build system.
  • Ang suporta alang sa bag-ong target nga mga plataporma gidugang, pananglitan, ang usa ka eksperimento nga abilidad sa pagtukod sa kaugalingon nga mga aplikasyon alang sa pagtrabaho sa Raspberry Pi 4 nga mga tabla gihatag.
  • Gihimo ang trabaho aron mahiusa ang mga bahin sa MirageOS ngadto sa mga ekosistema nga may kalabotan sa pag-uswag sa OCaml aron mapasimple ang mga aplikasyon sa pagtukod sa porma sa unikernel. Daghang mga pakete sa MirageOS ang na-port sa sistema sa pagtukod sa dune. Ang opam-monorepo utility anaa alang sa pag-instalar sa opam package manager ug mahimong gamiton sa mga proyekto gamit ang dune build system. Aron mamentinar ang mga patch nga makasulbad sa mga problema sa mga dependency sa pagtukod sa dune, duha ka repositoryo nga dune-universe/opam-overlays ug dune-universe/mirage-opam-overlay ang gihimo, nga gi-enable pinaagi sa default kung gamiton ang mirage CLI utility.
  • Gipasimple nga panagsama sa MirageOS sa C ug Rust nga mga librarya.
  • Usa ka bag-ong OCaml runtime ang gisugyot nga buhaton nga walay libc (libc-free).
  • Gihatag ang abilidad sa paggamit sa serbisyo sa Merlin alang sa pag-integrate sa standard integrated development environment.

Source: opennet.ru

Idugang sa usa ka comment