เบเบฒเบ™เบ›เปˆเบญเบ MirageOS 3.6, เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบฅเปˆเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡ hypervisor

เป„เบ”เป‰เบˆเบฑเบ”เบ‚เบถเป‰เบ™ เบเบฒเบ™เบ›เปˆเบญเบเป‚เบ„เบ‡เบเบฒเบ™ Mirage OS 3.6, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ”เบฝเบง, เป€เบŠเบดเปˆเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ–เบทเบเบชเบปเปˆเบ‡เป€เบ›เบฑเบ™ "unikernel" เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เปƒเบŠเป‰เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™, kernel OS เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปเบฅเบฐเบŠเบฑเป‰เบ™เบ•เปˆเบฒเบ‡เป†. เบžเบฒเบชเบฒ OCaml เปเบกเปˆเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™. เบฅเบฐเบซเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™ เปเบˆเบเบขเบฒเบเป‚เบ”เบ เบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” ISC เบŸเบฃเบต.

เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบฅเบฐเบ”เบฑเบšเบ•เปˆเปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบ›เบฐเบเบปเบ”เบ‚เบถเป‰เบ™เปƒเบ™เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบ•เบดเบ”เบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ. เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบชเบฒเบกเบฒเบ”เบžเบฑเบ”เบ—เบฐเบ™เบฒเป„เบ”เป‰เปƒเบ™เบ—เบธเบ OS, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ kernel เบžเบดเป€เบชเบ” (เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ” unikerel), เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ”เบเบเบปเบ‡เป€เบ—เบดเบ‡ Xen, KVM, BHyve เปเบฅเบฐ VMM (OpenBSD) hypervisors, เบขเบนเปˆเป€เบ—เบดเบ‡เป€เบงเบ—เบตเบกเบทเบ–เบท, เป€เบ›เบฑเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบš POSIX, เบซเบผเบทเปƒเบ™ Amazon Elastic Compute Cloud เปเบฅเบฐ Google Compute Engine cloud เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก.

เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบšเปเปˆเป„เบ”เป‰เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบชเบดเปˆเบ‡เบ—เบตเปˆ superfluous เปเบฅเบฐเบ›เบฐเบ•เบดเบชเปเบฒเบžเบฑเบ™เป‚เบ”เบเบเบปเบ‡เบเบฑเบš hypervisor เป‚เบ”เบเบšเปเปˆเบกเบตเป„เบ”เป€เบงเบตเบซเบผเบทเบŠเบฑเป‰เบ™เบฅเบฐเบšเบปเบš, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบซเบผเบธเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเปƒเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเป€เบเบตเบ™เปเบฅเบฐเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™. เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เบเบฑเบš MirageOS เบกเบฒโ€‹เป€เบ–เบดเบ‡โ€‹เบชเบฒเบกโ€‹เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹: เบเบฒเบ™โ€‹เบเบฐโ€‹เบเบฝเบกโ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบ•เบปเบงโ€‹เบ—เบตเปˆโ€‹เปƒเบŠเป‰โ€‹เปƒเบ™โ€‹เบชเบฐโ€‹เบžเบฒเบšโ€‹เปเบงเบ”โ€‹เบฅเป‰เบญเบก เปเบžเบฑเบเป€เบเบ” OPAM, เบเปเปˆเบชเป‰เบฒเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเปเบฅเบฐเป€เบ›เบตเบ”เบ•เบปเบงเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก. เป€เบงเบฅเบฒเปเบฅเปˆเบ™เป€เบžเบทเปˆเบญเปเบฅเปˆเบ™เบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡ Xen เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆ kernel เบ—เบตเปˆเบ–เบทเบเบ–เบญเบ”เบญเบญเบ Mini-OS, เปเบฅเบฐเบชเปเบฒเบฅเบฑเบš hypervisors เบญเบทเปˆเบ™เป†เปเบฅเบฐเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ kernel เบžเบฝเบ‡เปเบ•เปˆ 5.

เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เปƒเบ™เบžเบฒเบชเบฒ OCaml เบฅเบฐเบ”เบฑเบšเบชเบนเบ‡, เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ”เบตเปเบฅเบฐเบ‚เบฐเบซเบ™เบฒเบ”เบซเบ™เป‰เบญเบ (เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ DNS เปƒเบŠเป‰เป€เบงเบฅเบฒเบžเบฝเบ‡เปเบ•เปˆ 200 KB). เบเบฒเบ™เบฎเบฑเบเบชเบฒเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฑเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ, เป€เบžเบฒเบฐเบงเปˆเบฒเบ–เป‰เบฒเบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เบฑเบšเบ›เบธเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบซเบผเบทเบ›เปˆเบฝเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบกเบฑเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เปเบฅเบฐเป€เบ›เบตเบ”เบ•เบปเบงเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเปƒเบซเบกเปˆ. เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ เบซเปเบชเบฐเปเบธเบ”เบซเบผเบฒเบเบชเบดเบšเปเบซเปˆเบ‡ เปƒเบ™เบžเบฒเบชเบฒ OCaml เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (DNS, SSH, OpenFlow, HTTP, XMPP, เปเบฅเบฐเบญเบทเปˆเบ™เป†), เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบฅเบฐเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ™.

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เบปเป‰เบ™เบ•เปเปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเปƒเบซเบกเปˆเปเบกเปˆเบ™เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบซเบกเปˆเบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเปƒเบ™เบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบท Solo5 0.6.0 (เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก sandbox เบชเปเบฒเบฅเบฑเบšเปเบฅเปˆเบ™ unikerel):

  • เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เปเบฅเปˆเบ™ unikernel MirageOS เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบง spt (โ€œเบ‚เบฐเบšเบงเบ™เบเบฒเบ™ sandboxedโ€) เบชเบฐเปœเบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบท เบžเบฝเบ‡เปเบ•เปˆ 5. เป€เบกเบทเปˆเบญเปƒเบŠเป‰ spt backend, MirageOS kernels เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบœเบนเป‰เปƒเบŠเป‰ Linux เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบงเบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ seccomp-BPF;
  • เบเบฒเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹ เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ manifest เบˆเบฒเบเป‚เบ„เบ‡เบเบฒเบ™ Solo5, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบญเบฐเปเบ”เบšเป€เบ•เบตเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบซเบผเบฒเบเบญเบฑเบ™เปเบฅเบฐเบญเบธเบ›เบฐเบเบญเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเบ•เบดเบ”เบเบฑเบš unikernel เปƒเบ™เบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบงเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ hvt, spt เปเบฅเบฐ muen backends (เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš genode เปเบฅเบฐ virtio backends เบ›เบฐเบˆเบธเบšเบฑเบ™เบˆเปเบฒเบเบฑเบ”เบขเบนเปˆเปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เบ”เบฝเบง);
  • เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ backends เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ Solo5 (hvt, spt) เป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบฒเบกเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เปƒเบ™เป‚เบซเบกเบ” SSP (Stack Smashing Protection) เป„เบ”เป‰เบ–เบทเบเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™