Hoʻokuʻu ʻia ʻo MirageOS 3.6, kahi kahua no ka holo ʻana i nā noi ma luna o ka hypervisor

ua hanaia hoʻokuʻu papahana Mirage OS 3.6, hiki iā ʻoe ke hana i nā ʻōnaehana hana no kahi noi hoʻokahi, kahi i hāʻawi ʻia ai ka noi ma ke ʻano he "unikernel" paʻa ponoʻī hiki ke hoʻokō ʻia me ka ʻole o ka hoʻohana ʻana i nā ʻōnaehana hana, kahi kernel OS ʻokoʻa a me nā papa. Hoʻohana ʻia ka ʻōlelo OCaml e hoʻomohala i nā noi. Code papahana mahele ʻia e ma lalo o ka laikini ISC manuahi.

Hoʻokō ʻia nā hana haʻahaʻa haʻahaʻa i loaʻa i ka ʻōnaehana hana ma ke ʻano o kahi waihona i hoʻopili ʻia i ka noi. Hiki ke hoʻomohala ʻia ka noi ma kekahi OS, a laila hoʻohui ʻia i loko o kahi kernel kūikawā (ka manaʻo unikernel), hiki ke holo pololei ma luna o Xen, KVM, BHyve a me VMM (OpenBSD) hypervisors, ma luna o nā pūnaewele kelepona, ma ke ʻano he kaʻina hana i loko o kahi kaiapuni POSIX, a i ʻole ma Amazon Elastic Compute Cloud a me Google Compute Engine cloud environments.

ʻAʻole i loaʻa i ke kaiapuni i hana ʻia kekahi mea ʻoi loa a pili pololei me ka hypervisor me ka ʻole o nā mea hoʻokele a i ʻole nā ​​ʻōnaehana ʻōnaehana, e hiki ai ke hōʻemi nui i nā kumukūʻai overhead a me ka hoʻonui palekana. ʻO ka hana ʻana me MirageOS e iho i ʻekolu mau pae: hoʻomākaukau i ka hoʻonohonoho me ka ʻike ʻana i nā mea i hoʻohana ʻia i ke kaiapuni ʻO nā pūʻolo OPAM, ke kūkulu ʻana i ke kaiapuni a me ka hoʻolana ʻana i ke kaiapuni. Hoʻokumu ʻia ka manawa holo e holo ai ma luna o Xen ma luna o kahi kernel i wehe ʻia Mini-OS, a no nā hypervisors ʻē aʻe a me nā ʻōnaehana kumu kernel ʻO 5 wale nō.

ʻOiai ka hana ʻana o nā noi a me nā hale waihona puke ma ka ʻōlelo OCaml kiʻekiʻe, hōʻike ka hopena o nā kaiapuni i ka hana maikaʻi a me ka liʻiliʻi liʻiliʻi (no ka laʻana, ʻo 200 KB wale nō ke kikowaena DNS). Hoʻomaʻamaʻa ʻia ka mālama ʻana i nā kaiapuni, no ka mea inā pono e hoʻololi i ka papahana a hoʻololi paha i ka hoʻonohonoho, ua lawa ia e hana a hoʻomaka i kahi kaiapuni hou. Kākoʻo ʻia he mau kakini hale waihona puke ma ka ʻōlelo OCaml e hana i nā hana pūnaewele (DNS, SSH, OpenFlow, HTTP, XMPP, etc.), hana me ka waiho ʻana a hāʻawi i ka hoʻoili ʻikepili like.

ʻO nā hoʻololi nui i ka hoʻokuʻu hou e pili ana i ka hāʻawiʻana i ke kākoʻo no nā hiʻohiʻona hou i hāʻawiʻia i ka mea hana Solo5 0.6.0 (kahi pahu one no ka holo ʻana i ka unikernel):

  • Hoʻohui i ka hiki ke holo i ka unikernel MirageOS i kahi kaʻawale spt ("sandboxed process tender") i hāʻawi ʻia e ka pahu hana ʻO 5 wale nō. I ka hoʻohana ʻana i ka spt backend, holo nā ʻōpala MirageOS i nā kaʻina hana hoʻohana Linux kahi i hoʻohana ʻia ai ka kaʻawale liʻiliʻi ma muli o seccomp-BPF;
  • Hoʻokō ʻia ke kākoʻo palapala noi mai ka papahana Solo5, kahi e hiki ai iā ʻoe ke wehewehe i nā mea hoʻopili pūnaewele lehulehu a me nā mea mālama i hoʻopili ʻia i kahi unikernel ma kahi kaʻawale e pili ana i ka hvt, spt a me muen backends (hoʻohana ʻia no ka genode a me ka virtio backends i kēia manawa i hoʻokahi mea hana);
  • Ua hoʻoikaika ʻia ka pale o nā backends e pili ana iā Solo5 (hvt, spt), no ka laʻana, ua hāʻawi ʻia ke kūkulu ʻana i ke ʻano SSP (Stack Smashing Protection).

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka