Ang proyekto sa NetBSD nagpalambo og bag-ong NVMM hypervisor

Mga Nag-develop sa Proyekto sa NetBSD gipahibalo mahitungod sa paghimo sa usa ka bag-o nga hypervisor ug ang kauban nga virtualization stack, nga gilakip na sa eksperimento nga NetBSD-kasamtangan nga sanga ug igatanyag sa stable nga pagpagawas sa NetBSD 9. Ang NVMM sa pagkakaron limitado sa pagsuporta sa x86_64 nga arkitektura ug naghatag og duha ka backends alang sa makapahimo sa mga mekanismo sa virtualization sa hardware: x86-SVM nga adunay suporta alang sa AMD ug x86-VMX nga mga extension sa virtualization sa CPU alang sa mga Intel CPU. Sa kasamtangan nga porma, posible nga modagan hangtod sa 128 ka virtual machine sa usa ka host, nga ang matag usa mahimong igahin hangtod sa 256 virtual processor cores (VCPU) ug 128 GB nga RAM.

Ang NVMM naglakip sa usa ka drayber nga nagdagan sa lebel sa kernel sa sistema ug nag-coordinate sa pag-access sa mga mekanismo sa virtualization sa hardware, ug usa ka Libnvmm stack nga nagdagan sa user space. Ang interaksyon tali sa mga sangkap sa kernel ug wanang sa tiggamit gihimo pinaagi sa IOCTL. Usa ka bahin sa NVMM nga nagpalahi niini gikan sa mga hypervisors sama sa KVM mao ang HAXM ug Bhyve, mao nga sa lebel sa kernel lamang ang minimum nga gikinahanglan nga set sa mga binding sa palibot sa mga mekanismo sa virtualization sa hardware ang gihimo, ug ang tanan nga hardware emulation code gibalhin gikan sa kernel ngadto sa user space. Kini nga pamaagi nagtugot kanimo sa pagpakunhod sa gidaghanon sa code nga gipatuman nga adunay taas nga mga pribilehiyo ug pagpakunhod sa risgo sa pagkompromiso sa tibuok nga sistema kung adunay mga pag-atake sa mga kahuyangan sa hypervisor. Dugang pa, ang debugging ug fuzzing testing sa proyekto mamatikdan nga gipasimple.

Bisan pa, ang Libnvmm mismo wala maglangkob sa mga function sa emulator, apan naghatag lamang usa ka API nga nagtugot kanimo nga i-integrate ang suporta sa NVMM sa mga naa na nga emulator, pananglitan, QEMU. Ang API naglangkob sa mga gimbuhaton sama sa paghimo ug paglansad sa usa ka virtual nga makina, paggahin sa memorya sa sistema sa bisita, ug paggahin sa mga VCPU. Aron mapauswag ang seguridad ug makunhuran ang posible nga mga vector sa pag-atake, ang libnvmm naghatag lamang sa mga gimbuhaton nga klaro nga gihangyo-sa default, ang mga komplikado nga tigdumala dili awtomatik nga gitawag ug mahimong dili magamit kung kini malikayan. Gisulayan sa NVMM nga huptan nga yano ang mga butang, nga dili mahimong komplikado, ug gitugotan ka nga makontrol ang daghang mga aspeto sa imong trabaho kutob sa mahimo.

Ang proyekto sa NetBSD nagpalambo og bag-ong NVMM hypervisor

Ang kernel-level nga bahin sa NVMM hugot nga gihiusa sa NetBSD kernel, ug nagtugot alang sa mas maayo nga performance pinaagi sa pagkunhod sa gidaghanon sa mga switch sa konteksto tali sa guest OS ug sa host environment. Sa bahin sa wanang sa gumagamit, ang libnvmm naningkamot sa pag-aggregate sa kasagarang mga operasyon sa I/O ug paglikay sa paghimo sa mga tawag sa sistema nga wala kinahanglana. Ang sistema sa alokasyon sa panumduman gibase sa subsystem sa pmap, nga nagtugot kanimo sa pagpapahawa sa mga panid sa panumduman sa bisita ngadto sa swap partition kung adunay kakulang sa memorya sa sistema. Ang NVMM walay mga global lock ug mga timbangan nga maayo, nga nagtugot kanimo sa dungan nga paggamit sa lain-laing mga CPU cores sa pagpadagan sa lain-laing mga bisita virtual machine.

Usa ka solusyon nga nakabase sa QEMU ang giandam nga naggamit sa NVMM aron mahimo ang mga mekanismo sa virtualization sa hardware. Nagpadayon ang trabaho aron maapil ang giandam nga mga patch sa panguna nga istruktura sa QEMU. Ang kombinasyon sa QEMU+NVMM mao na kini nagtugot malampuson nga nagpadagan sa mga sistema sa bisita nga adunay FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 ug uban pang OS sa x86_64 nga mga sistema nga adunay AMD ug Intel nga mga processor (NVMM mismo wala gihigot sa usa ka piho nga arkitektura, pananglitan, kung ang angay nga backend gihimo , makahimo kini sa pagtrabaho sa mga sistema sa ARM64). Lakip sa mga lugar nga dugang nga aplikasyon sa NVMM, ang sandbox isolation sa mga indibidwal nga aplikasyon namatikdan usab.

Ang proyekto sa NetBSD nagpalambo og bag-ong NVMM hypervisor

Source: opennet.ru

Idugang sa usa ka comment