Ngaleupaskeun MirageOS 4.0, platform pikeun ngajalankeun aplikasi dina luhureun hypervisor nu

Saatos sataun satengah pangwangunan, sékrési proyék MirageOS 4.0 parantos diterbitkeun, anu ngamungkinkeun nyiptakeun sistem operasi pikeun hiji aplikasi, dimana aplikasina dikirimkeun salaku "unikernel" mandiri, sanggup ngajalankeun tanpa pamakéan sistem operasi, a kernel OS misah tur sagala lapisan. Basa OCaml dianggo pikeun ngembangkeun aplikasi. Kodeu proyék disebarkeun dina lisénsi ISC gratis.

Sadaya pungsionalitas tingkat rendah anu aya dina sistem operasi dilaksanakeun dina bentuk perpustakaan anu dipasang dina aplikasi. Aplikasina tiasa dikembangkeun dina OS naon waé, saatos éta disusun janten kernel khusus (konsép unikernel), anu tiasa dijalankeun langsung di luhur Xen, KVM, BHyve sareng VMM (OpenBSD) hypervisors, dina luhureun platform mobile, dina bentuk prosés dina lingkungan anu patuh POSIX atanapi di lingkungan awan Amazon Elastic Compute Cloud sareng Google Compute Engine.

Lingkungan dihasilkeun teu ngandung nanaon superfluous sarta berinteraksi langsung jeung hypervisor tanpa drivers atawa lapisan sistem, nu ngamungkinkeun pikeun ngurangan signifikan dina waragad overhead jeung ngaronjat kaamanan. Gawe sareng MirageOS aya tilu tahapan: nyiapkeun konfigurasi kalayan netepkeun bungkusan OPAM anu dianggo di lingkungan, ngarakit lingkungan, sareng ngaluncurkeun lingkungan. Pikeun mastikeun operasi di luhur hypervisors, Runtime diwangun dina dasar kernel Solo5.

Sanaos kanyataan yén aplikasi sareng perpustakaan didamel dina basa OCaml tingkat luhur, lingkungan anu hasilna nunjukkeun kinerja anu saé sareng ukuran minimal (contona, server DNS ngan ukur 200 KB). Pangropéa lingkungan ogé disederhanakeun, sabab upami perlu pikeun ngapdet program atanapi ngarobih konfigurasi, cukup pikeun nyiptakeun sareng ngaluncurkeun lingkungan énggal. Sababaraha ratus perpustakaan dina basa OCaml dirojong pikeun ngajalankeun operasi jaringan (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN, jsb), gawé bareng gudang jeung nyadiakeun ngolah data paralel.

Perbaikan konci:

  • Prosés nyusun proyék sareng unikernel parantos dirobih. Gantina sistem assembly ocamlbuild saméméhna dipaké, dune toolkit na repositories lokal (monorepo) dipaké. Pikeun nyieun repositories misalna, hiji utiliti anyar, opam-monorepo, geus ditambahkeun, nu ngamungkinkeun pikeun misahkeun manajemén pakét ti wangunan tina kode sumber. Utilitas opam-monorepo tiasa dianggo sapertos nyiptakeun file konci pikeun kagumantungan anu aya hubunganana sareng proyék, ngamuat sareng ékstrak kode dependensi, sareng nyetél lingkungan pikeun ngagunakeun sistem dune build. The assembly sabenerna dipigawé ku toolkit dune.
  • A prosés ngawangun repeatable disadiakeun. Ngagunakeun file konci nyadiakeun tumbu ka versi kagumantungan tur ngidinan Anjeun pikeun sakabéhna ngulang prosés ngawangun kalawan kode sarua iraha wae.
  • Prosés kompilasi silang anyar parantos dilaksanakeun sareng kamampuan pikeun kompilasi silang pikeun sadaya platform target anu dirojong tina hiji lingkungan ngawangun umum disayogikeun, anu ogé nyayogikeun katergantungan sareng perpustakaan anu gaduh beungkeutan C, tanpa kedah nambihan beungkeutan ieu. pakét utama. Cross-kompilasi diatur ngagunakeun workspaces disadiakeun ku sistem dune ngawangun.
  • Rojongan pikeun platform target anyar geus ditambahkeun, contona, hiji kamampuhan ékspérimén pikeun ngawangun aplikasi timer ngandung pikeun ngajalankeun on Raspberry Pi 4 papan geus disadiakeun.
  • Karya parantos dilakukeun pikeun ngahijikeun bagéan MirageOS kana ékosistem anu aya hubunganana sareng pangwangunan dina basa OCaml pikeun nyederhanakeun rakitan aplikasi dina bentuk unikernel. Seueur bungkusan MirageOS parantos dialihkeun kana sistem ngawangun dune. Utilitas opam-monorepo sayogi dipasang nganggo manajer pakét opam sareng tiasa dianggo dina proyék-proyék anu nganggo sistem dune build. Pikeun ngajaga patch anu ngarengsekeun masalah sareng katergantungan wangunan di dune, dua repositori parantos didamel: dune-universe / opam-overlays sareng dune-universe / mirage-opam-overlays, anu diaktipkeun sacara standar nalika nganggo utilitas mirage CLI.
  • Integrasi MirageOS sareng perpustakaan C sareng Rust parantos disederhanakeun.
  • A runtime OCaml anyar geus diajukeun nu ngidinan Anjeun pikeun ngalakukeun tanpa libc (libc-gratis).
  • Kasebut nyaéta dimungkinkeun pikeun ngagunakeun jasa Merlin pikeun integrasi jeung lingkungan ngembangkeun terpadu baku.

sumber: opennet.ru

Tambahkeun komentar