MirageOS 4.0 хувилбар нь гипервизорын дээд талд байгаа програмуудыг ажиллуулах платформ юм

Жил хагасын хөгжүүлэлтийн дараа MirageOS 4.0 төслийн хувилбар хэвлэгдсэн бөгөөд энэ нь нэг програмын үйлдлийн системийг бий болгох боломжийг олгодог бөгөөд энэ нь програмыг бие даасан "unikernel" хэлбэрээр хүргэх боломжийг олгодог. үйлдлийн систем, тусдаа үйлдлийн системийн цөм болон аливаа давхаргыг ашиглах. OCaml хэлийг программ боловсруулахад ашигладаг. Төслийн кодыг үнэгүй ISC лицензийн дагуу тараадаг.

Үйлдлийн системд хамаарах бүх доод түвшний функцууд нь програмд ​​хавсаргасан номын сан хэлбэрээр хэрэгждэг. Уг программыг ямар ч үйлдлийн систем дээр хөгжүүлж, дараа нь тусгай цөм (unikernel концепц) болгон хөрвүүлсэн бөгөөд Xen, KVM, BHyve болон VMM (OpenBSD) гипервизорууд дээр, гар утасны платформ дээр шууд ажиллах боломжтой. POSIX-д нийцсэн орчин эсвэл үүлэн орчинд Amazon Elastic Compute Cloud болон Google Compute Engine дахь процессын хэлбэр.

Үүсгэсэн орчин нь нэмэлт зүйл агуулаагүй бөгөөд драйвер эсвэл системийн давхаргагүйгээр гипервизортой шууд харьцдаг бөгөөд энэ нь нэмэлт зардлыг мэдэгдэхүйц бууруулж, аюулгүй байдлыг нэмэгдүүлэх боломжийг олгодог. MirageOS-тэй ажиллах нь гурван үе шаттай: байгаль орчинд ашиглагдаж буй OPAM багцуудыг тодорхойлох замаар тохиргоог бэлтгэх, хүрээлэн буй орчныг угсрах, орчныг эхлүүлэх. Гипервизорууд дээр ажиллахын тулд Runtime нь Solo5 цөм дээр суурилдаг.

Програмууд болон сангууд нь өндөр түвшний OCaml хэл дээр бүтээгдсэн хэдий ч үүссэн орчин нь нэлээд сайн гүйцэтгэлтэй, хамгийн бага хэмжээтэй байдаг (жишээлбэл, DNS сервер нь ердөө 200 KB эзэлдэг). Хөтөлбөрийг шинэчлэх эсвэл тохиргоог өөрчлөх шаардлагатай бол шинэ орчин үүсгэж, эхлүүлэхэд хангалттай тул орчны засвар үйлчилгээг хялбаршуулсан болно. OCaml хэл дээрх хэдэн зуун номын сангууд сүлжээний үйлдлүүдийг (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN гэх мэт) гүйцэтгэх, хадгалалттай ажиллах, зэрэгцээ өгөгдөл боловсруулахад дэмжлэг үзүүлдэг.

Гол сайжруулалтууд:

  • Төсөл болон unikernel эмхэтгэх үйл явц өөрчлөгдсөн. Өмнө нь ашиглаж байсан ocamlbuild угсралтын системийн оронд манхан хэрэгслийн хэрэгсэл болон орон нутгийн хадгалах сангууд (monorepo) ашигладаг. Ийм агуулахуудыг бий болгохын тулд шинэ opam-monorepo хэрэгслийг нэмсэн бөгөөд энэ нь багцын менежментийг эх кодоос барилга байгууламжаас салгах боломжтой болгодог. Opam-monorepo хэрэгсэл нь төсөлтэй холбоотой хамаарал бүхий файлуудыг түгжих, хамаарлын кодыг ачаалах, задлах, dune build системийг ашиглах орчныг тохируулах зэрэг ажлыг гүйцэтгэдэг. Бодит угсралтыг манхан хэрэгслийн хэрэгслээр гүйцэтгэдэг.
  • Дахин давтагдах боломжтой бүтээх процессыг хангасан. Түгжих файлуудыг ашиглах нь хамааралтай хувилбаруудын холбоосыг өгдөг бөгөөд ямар ч үед ижил кодоор бүтээх процессыг бүрэн давтах боломжийг олгодог.
  • Хөндлөн эмхэтгэлийн шинэ үйл явц хэрэгжиж, нэг нийтлэг бүтээх орчноос бүх дэмжигдсэн зорилтот платформуудыг хооронд нь хөрвүүлэх боломжийг олгож байгаа бөгөөд энэ нь C холбоос бүхий хамаарал болон сангуудыг хооронд нь хөрвүүлэхэд эдгээр холбоосыг нэмэх шаардлагагүй болно. үндсэн багц. Хөндлөн эмхэтгэлийг манхан бүтээх системээр хангасан ажлын талбаруудыг ашиглан зохион байгуулдаг.
  • Шинэ зорилтот платформуудын дэмжлэг нэмэгдсэн, жишээлбэл, Raspberry Pi 4 самбар дээр ажиллахад зориулагдсан бие даасан програмуудыг бүтээх туршилтын чадварыг өгсөн.
  • Unikernel хэлбэрээр програмуудыг угсрах ажлыг хялбарчлахын тулд MirageOS-ийн хэсгүүдийг OCaml хэл дээрх хөгжүүлэлттэй холбоотой экосистемд нэгтгэх ажлыг хийсэн. Олон MirageOS багцуудыг dune build системд шилжүүлсэн. Opam-monorepo хэрэгслийг opam багц менежер ашиглан суулгах боломжтой бөгөөд dune build системийг ашигладаг төслүүдэд ашиглах боломжтой. Dune-д хамаарал үүсгэхтэй холбоотой асуудлыг шийдвэрлэх засваруудыг хадгалахын тулд dune-universe/opam-overlays болон dune-universe/mirage-opam-overlays гэсэн хоёр агуулахыг үүсгэсэн бөгөөд тэдгээр нь mirage CLI хэрэгслийг ашиглах үед анхдагчаар идэвхждэг.
  • MirageOS-ийн C болон Rust номын сантай нэгтгэх ажлыг хялбаршуулсан.
  • libc-гүй (libc-гүй) хийх боломжийг олгодог шинэ OCaml ажиллах цагийг санал болгов.
  • Стандарт нэгдсэн хөгжүүлэлтийн орчинтой нэгтгэхийн тулд Merlin үйлчилгээг ашиглах боломжтой.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх