ืฉื—ืจื•ืจ ืฉืœ MirageOS 3.6, ืคืœื˜ืคื•ืจืžื” ืœื”ืคืขืœืช ื™ื™ืฉื•ืžื™ื ืขืœ ื’ื‘ื™ ื”-Hypervisor

ื”ืชืจื—ืฉ ืฉื—ืจื•ืจ ื”ืคืจื•ื™ืงื˜ Mirage OS 3.6, ื”ืžืืคืฉืจืช ืœื™ืฆื•ืจ ืžืขืจื›ื•ืช ื”ืคืขืœื” ืœืืคืœื™ืงืฆื™ื” ื‘ื•ื“ื“ืช, ืฉื‘ื” ื”ืืคืœื™ืงืฆื™ื” ืžื•ืขื‘ืจืช ื›-"unikernel" ืขืฆืžืื™ ื”ื ื™ืชืŸ ืœื‘ื™ืฆื•ืข ืœืœื ืฉื™ืžื•ืฉ ื‘ืžืขืจื›ื•ืช ื”ืคืขืœื”, ืœื™ื‘ืช OS ื ืคืจื“ืช ื•ื›ืœ ืฉื›ื‘ื•ืช. ืฉืคืช Ocaml ืžืฉืžืฉืช ืœืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื. ืงื•ื“ ืคืจื•ื™ืงื˜ ืžื•ืคืฅ ืขืœ ื™ื“ื™ ืชื—ืช ืจื™ืฉื™ื•ืŸ ISC ื”ื—ื™ื ืžื™.

ื›ืœ ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื‘ืจืžื” ื”ื ืžื•ื›ื” ื”ื’ืœื•ืžื” ื‘ืžืขืจื›ืช ื”ื”ืคืขืœื” ืžื™ื•ืฉืžืช ื‘ืฆื•ืจื” ืฉืœ ืกืคืจื™ื™ื” ื”ืžืฆื•ืจืคืช ืœืืคืœื™ืงืฆื™ื”. ื ื™ืชืŸ ืœืคืชื— ืืช ื”ืืคืœื™ืงืฆื™ื” ื‘ื›ืœ ืžืขืจื›ืช ื”ืคืขืœื”, ื•ืœืื—ืจ ืžื›ืŸ ื”ื™ื ืžื•ืจื›ื‘ืช ืœื’ืจืขื™ืŸ ืžื™ื•ื—ื“ (ื”ืžื•ืฉื’ ื™ื™ื—ื•ื“ื™), ืฉื™ื›ื•ืœ ืœืคืขื•ืœ ื™ืฉื™ืจื•ืช ืขืœ ื’ื‘ื™ ื”ื™ืคืจื•ื•ื™ื–ื•ืจื™ื ืฉืœ Xen, KVM, BHyve ื•-VMM (OpenBSD), ืขืœ ื’ื‘ื™ ืคืœื˜ืคื•ืจืžื•ืช ื ื™ื™ื“ื•ืช, ื›ืชื”ืœื™ืš ื‘ืกื‘ื™ื‘ื” ืชื•ืืžืช POSIX, ืื• ื‘ืกื‘ื™ื‘ื•ืช ืขื ืŸ ืฉืœ Amazon Elastic Compute Cloud ื•-Google Compute Engine.

ื”ืกื‘ื™ื‘ื” ืฉื ื•ืฆืจื” ืื™ื ื” ืžื›ื™ืœื” ืฉื•ื ื“ื‘ืจ ืžื™ื•ืชืจ ื•ืžืงื™ื™ืžืช ืื™ื ื˜ืจืืงืฆื™ื” ื™ืฉื™ืจื” ืขื ื”-Hypervisor ืœืœื ื“ืจื™ื™ื‘ืจื™ื ืื• ืฉื›ื‘ื•ืช ืžืขืจื›ืช, ืžื” ืฉืžืืคืฉืจ ื”ืคื—ืชื” ืžืฉืžืขื•ืชื™ืช ื‘ืขืœื•ื™ื•ืช ื”ืชืงื•ืจื” ื•ื”ื’ื‘ืจืช ื”ืื‘ื˜ื—ื”. ื”ืขื‘ื•ื“ื” ืขื MirageOS ืžืกืชื›ืžืช ื‘ืฉืœื•ืฉื” ืฉืœื‘ื™ื: ื”ื›ื ืช ื”ืชืฆื•ืจื” ืขื ื–ื™ื”ื•ื™ ืืœื” ื”ืžืฉืžืฉื™ื ื‘ืกื‘ื™ื‘ื” ื—ื‘ื™ืœื•ืช OPAM, ื‘ื ื™ื™ืช ื”ืกื‘ื™ื‘ื” ื•ื”ืฉืงืช ื”ืกื‘ื™ื‘ื”. ื–ืžืŸ ืจื™ืฆื” ืœื”ืคืขืœื” ืขืœ ื’ื‘ื™ Xen ืžื‘ื•ืกืก ืขืœ ืœื™ื‘ื” ืžื•ืคืฉื˜ืช ืžื™ื ื™-OS, ื•ืขื‘ื•ืจ ื”ื™ืคืจื•ื•ื™ื–ื•ืจื™ื ืื—ืจื™ื ื•ืžืขืจื›ื•ืช ืžื‘ื•ืกืกื•ืช ืœื™ื‘ื” ืกื•ืœื• 5.

ืœืžืจื•ืช ื”ืขื•ื‘ื“ื” ืฉื™ื™ืฉื•ืžื™ื ื•ืกืคืจื™ื•ืช ื ื•ืฆืจื™ื ื‘ืฉืคืช ื”-OCaml ื‘ืจืžื” ื’ื‘ื•ื”ื”, ื”ืกื‘ื™ื‘ื•ืช ื”ืžืชืงื‘ืœื•ืช ืžืคื’ื™ื ื•ืช ื‘ื™ืฆื•ืขื™ื ื˜ื•ื‘ื™ื ืœืžื“ื™ ื•ื’ื•ื“ืœ ืžื™ื ื™ืžืœื™ (ืœื“ื•ื’ืžื”, ืฉืจืช ื”-DNS ืชื•ืคืก ืจืง 200 KB). ืชื—ื–ื•ืงื” ืฉืœ ืกื‘ื™ื‘ื•ืช ื”ื™ื ื’ื ืคืฉื•ื˜ื”, ืฉื›ืŸ ืื ื™ืฉ ืฆื•ืจืš ืœืขื“ื›ืŸ ืืช ื”ืชื•ื›ื ื™ืช ืื• ืœืฉื ื•ืช ืืช ื”ืชืฆื•ืจื”, ื–ื” ืžืกืคื™ืง ื›ื“ื™ ืœื™ืฆื•ืจ ื•ืœื”ืฉื™ืง ืกื‘ื™ื‘ื” ื—ื“ืฉื”. ื ืชืžืš ื›ืžื” ืขืฉืจื•ืช ืกืคืจื™ื•ืช ื‘ืฉืคืช Ocaml ืœื‘ื™ืฆื•ืข ืคืขื•ืœื•ืช ืจืฉืช (DNS, SSH, OpenFlow, HTTP, XMPP ื•ื›ื•'), ืœืขื‘ื•ื“ ืขื ืื—ืกื•ืŸ ื•ืœืกืคืง ืขื™ื‘ื•ื“ ื ืชื•ื ื™ื ืžืงื‘ื™ืœ.

ื”ืฉื™ื ื•ื™ื™ื ื”ืขื™ืงืจื™ื™ื ื‘ืžื”ื“ื•ืจื” ื”ื—ื“ืฉื” ืงืฉื•ืจื™ื ืœืžืชืŸ ืชืžื™ื›ื” ื‘ืชื›ื•ื ื•ืช ื”ื—ื“ืฉื•ืช ื”ืžื•ืฆืขื•ืช ื‘ืขืจื›ืช ื”ื›ืœื™ื Solo5 0.6.0 (ืกื‘ื™ื‘ืช ืืจื’ื– ื—ื•ืœ ืœื”ืคืขืœืช unikernel):

  • ื ื•ืกืคื” ืืช ื”ื™ื›ื•ืœืช ืœื”ืคืขื™ืœ ืืช unikernel MirageOS ื‘ืกื‘ื™ื‘ื” ืžื‘ื•ื“ื“ืช spt ("ืžื›ืจื– ืชื”ืœื™ืš ื‘ืืจื’ื– ื—ื•ืœ") ืžืกื•ืคืง ืขืœ ื™ื“ื™ ืขืจื›ืช ื”ื›ืœื™ื ืกื•ืœื• 5. ื‘ืขืช ืฉื™ืžื•ืฉ ื‘-spt backend, ืœื™ื‘ื•ืช MirageOS ืคื•ืขืœื•ืช ื‘ืชื”ืœื™ื›ื™ ืžืฉืชืžืฉ ืœื™ื ื•ืงืก ืฉืขืœื™ื”ื ืžื•ื—ืœ ื‘ื™ื“ื•ื“ ืžื™ื ื™ืžืœื™ ื‘ื”ืชื‘ืกืก ืขืœ seccomp-BPF;
  • ืชืžื™ื›ื” ื™ื•ืฉืžื” ืžื ื™ืคืกื˜ ื™ื™ืฉื•ื ืžืคืจื•ื™ืงื˜ Solo5, ื”ืžืืคืฉืจ ืœื”ื’ื“ื™ืจ ืžืชืืžื™ ืจืฉืช ื•ื”ืชืงื ื™ ืื—ืกื•ืŸ ืžืจื•ื‘ื™ื ื”ืžื—ื•ื‘ืจื™ื ืœ- unikernel ื‘ื‘ื™ื“ื•ื“ ืขืœ ื‘ืกื™ืก hvt, spt ื•-muen backends (ื”ืฉื™ืžื•ืฉ ืขื‘ื•ืจ backends genode ื•-virtio ืžื•ื’ื‘ืœ ื›ืจื’ืข ืœืžื›ืฉื™ืจ ืื—ื“);
  • ื”ื”ื’ื ื” ืขืœ backends ื”ืžื‘ื•ืกืกื™ื ืขืœ Solo5 (hvt, spt) ื—ื•ื–ืงื”, ืœื“ื•ื’ืžื”, ื ื™ืชื ื” ื‘ื ื™ื™ื” ื‘ืžืฆื‘ SSP (Stack Smashing Protection).

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”