MirageOS 3.6 рдЪреЗ рдкреНрд░рдХрд╛рд╢рди, рд╣рд╛рдпрдкрд░рд╡рд╛рдЗрдЬрд░рдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╡реНрдпрд╛рд╕рдкреАрда

рдЬрд╛рдЧрд╛ рдШреЗрддрд▓реА рдкреНрд░рдХрд▓реНрдк рдкреНрд░рдХрд╛рд╢рди рдорд┐рд░реЛрдЬреЛрд╕ 3.6, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХрд╛рдЪ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирд╕рд╛рдареА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯреАрдо рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрд╡рдпрдВ-рд╕рдорд╛рд╡рд┐рд╖реНрдЯ "рдпреБрдирд┐рдХрд░реНрдирд▓" рдореНрд╣рдгреВрди рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЬреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо, рд╕реНрд╡рддрдВрддреНрд░ OS рдХрд░реНрдирд▓ рдЖрдгрд┐ рдХреЛрдгрддреЗрд╣реА рд╕реНрддрд░ рд╡рд╛рдкрд░рд▓реНрдпрд╛рд╢рд┐рд╡рд╛рдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. OCaml рднрд╛рд╖рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ. рдкреНрд░рдХрд▓реНрдк рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рд╡рд┐рддрд░рд┐рдд рдореЛрдлрдд ISC рдкрд░рд╡рд╛рдиреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд.

рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рдЕрдВрддрд░реНрднреВрдд рдЕрд╕рд▓реЗрд▓реА рд╕рд░реНрд╡ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рд╢реА рд╕рдВрд▓рдЧреНрди рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд▓рд╛рдпрдмреНрд░рд░реАрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЬрд╛рддреЗ. рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛрдгрддреНрдпрд╛рд╣реА OS рдордзреНрдпреЗ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ, рддреНрдпрд╛рдирдВрддрд░ рддреЛ рдПрдХрд╛ рд╡рд┐рд╢реЗрд╖ рдХрд░реНрдирд▓рдордзреНрдпреЗ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ (рд╕рдВрдХрд▓реНрдкрдирд╛ рдпреБрдирд┐рдХрд░реНрдиреЗрд▓), рдЬреЗ рдереЗрдЯ Xen, KVM, BHyve рдЖрдгрд┐ VMM (OpenBSD) рд╣рд╛рдпрдкрд░рд╡реНрд╣рд╛рдпрдЭрд░реНрд╕рдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА, рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА, POSIX-рдЕрдиреБрд░реВрдк рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореНрд╣рдгреВрди рдХрд┐рдВрд╡рд╛ Amazon Elastic Compute Cloud рдЖрдгрд┐ Google Compute Engine рдХреНрд▓рд╛рдЙрдб рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдЪрд╛рд▓реВ рд╢рдХрддреЗ.

рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХрд╛рд╣реАрд╣реА рдирд╕рддреЗ рдЖрдгрд┐ рдбреНрд░рд╛рдпрд╡реНрд╣рд░реНрд╕ рдХрд┐рдВрд╡рд╛ рд╕рд┐рд╕реНрдЯрдо рд╕реНрддрд░рд╛рдВрд╢рд┐рд╡рд╛рдп рд╣рд╛рдпрдкрд░рд╡рд╛рдЗрдЬрд░рд╢реА рдереЗрдЯ рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрддреЛ, рдЬреНрдпрд╛рдореБрд│реЗ рдУрд╡реНрд╣рд░рд╣реЗрдб рдЦрд░реНрдЪрд╛рдд рд▓рдХреНрд╖рдгреАрдп рдШрдЯ рдЖрдгрд┐ рд╕реБрд░рдХреНрд╖рд┐рддрддрд╛ рд╡рд╛рдврддреЗ. MirageOS рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ рддреАрди рдЯрдкреНрдкреНрдпрд╛рдВрд╡рд░ рдпреЗрддреЗ: рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдЧреЛрд╖реНрдЯреА рдУрд│рдЦреВрди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рддрдпрд╛рд░ рдХрд░рдгреЗ OPAM рдкреЕрдХреЗрдЬреЗрд╕, рдкрд░реНрдпрд╛рд╡рд░рдг рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрдгрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рд▓рд╛рдБрдЪ рдХрд░рдгреЗ. Xen рдЪреНрдпрд╛ рд╡рд░ рдЪрд╛рд▓рдгреНрдпрд╛рд╕рд╛рдареА рд░рдирдЯрд╛рдЗрдо рд╕реНрдЯреНрд░рд┐рдк-рдбрд╛рдЙрди рдХрд░реНрдирд▓рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ рдорд┐рдиреА-OS, рдЖрдгрд┐ рдЗрддрд░ рд╣рд╛рдпрдкрд░рд╡рд╛рдЗрдЬрд░ рдЖрдгрд┐ рдХрд░реНрдирд▓-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рдгрд╛рд▓реАрдВрд╕рд╛рдареА рд╕реЛрд▓реЛ 5.

рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп OCaml рднрд╛рд╖реЗрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЖрдгрд┐ рд▓рд╛рдпрдмреНрд░рд░реА рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ рдЕрд╕реВрдирд╣реА, рдкрд░рд┐рдгрд╛рдореА рд╡рд╛рддрд╛рд╡рд░рдг рдмрд░реНтАНрдпрд╛рдкреИрдХреА рдЪрд╛рдВрдЧрд▓реА рдХрд╛рдордЧрд┐рд░реА рдЖрдгрд┐ рдХрд┐рдорд╛рди рдЖрдХрд╛рд░ рджрд░реНрд╢рд╡рд┐рддреЗ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, DNS рд╕рд░реНрд╡реНрд╣рд░ рдлрдХреНрдд 200 KB рдШреЗрддреЛ). рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдЪреА рджреЗрдЦрднрд╛рд▓ рджреЗрдЦреАрд▓ рд╕рд░рд▓реАрдХреГрдд рдЖрд╣реЗ, рдХрд╛рд░рдг рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдгреЗ рдХрд┐рдВрд╡рд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдмрджрд▓рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕, рдирд╡реАрди рд╡рд╛рддрд╛рд╡рд░рдг рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрдгрд┐ рд▓реЙрдиреНрдЪ рдХрд░рдгреЗ рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ. рд╕рдорд░реНрдерд┐рдд рдЕрдиреЗрдХ рдбрдЭрди рд▓рд╛рдпрдмреНрд░рд░реА рдиреЗрдЯрд╡рд░реНрдХ рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА OCaml рднрд╛рд╖реЗрдд (DNS, SSH, OpenFlow, HTTP, XMPP, рдЗ.), рд╕реНрдЯреЛрд░реЗрдЬрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рд╛ рдЖрдгрд┐ рд╕рдорд╛рдВрддрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рд╛.

рдирд╡реАрди рдкреНрд░рдХрд╛рд╢рдирд╛рддреАрд▓ рдореБрдЦреНрдп рдмрджрд▓ рдЯреВрд▓рдХрд┐рдЯрдордзреНрдпреЗ рдСрдлрд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдирд╡реАрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрд╕рд╛рдареА рд╕рдорд░реНрдерди рдкреБрд░рд╡рдгреНрдпрд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗрдд рд╕реЛрд▓реЛрел реж.рем.реж (рдпреБрдирд┐рдХрд░реНрдирд▓ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдБрдбрдмреЙрдХреНрд╕ рд╡рд╛рддрд╛рд╡рд░рдг):

  • рдПрдХрд╛ рд╡реЗрдЧрд│реНрдпрд╛ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд unikernel MirageOS рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реА spt (тАЬрд╕рдБрдбрдмреЙрдХреНрд╕реНрдб рдкреНрд░реЛрд╕реЗрд╕ рдЯреЗрдВрдбрд░тАЭ) рдЯреВрд▓рдХрд┐рдЯрджреНрд╡рд╛рд░реЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ рдЖрд╣реЗ рд╕реЛрд▓реЛ 5. spt рдмреЕрдХрдПрдВрдб рд╡рд╛рдкрд░рддрд╛рдирд╛, MirageOS рдХрд░реНрдирд▓ Linux рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдордзреНрдпреЗ рдЪрд╛рд▓рддрд╛рдд рдЬреНрдпрд╛рдордзреНрдпреЗ seccomp-BPF рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдХрд┐рдорд╛рди рдЕрд▓рдЧрд╛рд╡ рд▓рд╛рдЧреВ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ;
  • рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЕрд░реНрдЬ рдореЕрдирд┐рдлреЗрд╕реНрдЯ Solo5 рдкреНрд░реЛрдЬреЗрдХреНрдЯрдордзреВрди, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ hvt, spt рдЖрдгрд┐ muen рдмреЕрдХрдПрдВрдбреНрд╕рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдиреЗрдЯрд╡рд░реНрдХ рдЕрдбреЕрдкреНрдЯрд░реНрд╕ рдЖрдгрд┐ рд╕реНрдЯреЛрд░реЗрдЬ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕ рдПрдХрд╛ unikernelрд╢реА рдЬреЛрдбрд▓реЗрд▓реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ (рдЬреЗрдиреЛрдб рдЖрдгрд┐ рд╡реНрд╣рд░реНрдЯрд┐рдУ рдмреЕрдХрдПрдВрдбрд╕рд╛рдареА рд╡рд╛рдкрд░ рд╕рдзреНрдпрд╛ рдПрдХрд╛ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рдкрд░реНрдпрдВрдд рдорд░реНрдпрд╛рджрд┐рдд рдЖрд╣реЗ);
  • Solo5 (hvt, spt) рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдмреЕрдХрдПрдВрдбрдЪреЗ рд╕рдВрд░рдХреНрд╖рдг рдордЬрдмреВрдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, SSP (рд╕реНрдЯреЕрдХ рд╕реНрдореЕрд╢рд┐рдВрдЧ рдкреНрд░реЛрдЯреЗрдХреНрд╢рди) рдореЛрдбрдордзреНрдпреЗ рдЗрдорд╛рд░рдд рдкреНрд░рджрд╛рди рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛