NetBSD projekt arendab uut NVMM-i hüperviisorit

NetBSD projektiarendajad teatas uue hüperviisori ja sellega seotud virtualiseerimispinu loomise kohta, mis on juba kaasatud eksperimentaalsesse NetBSD praegusesse harusse ja mida pakutakse NetBSD 9 stabiilses väljalaskes. NVMM on praegu piiratud x86_64 arhitektuuri toetamisega ja pakub kahte taustaprogrammi riistvara virtualiseerimismehhanismide lubamine: x86-SVM AMD toega ja x86-VMX protsessori virtualiseerimislaiendused Inteli protsessoritele. Praegusel kujul on ühel hostil võimalik käivitada kuni 128 virtuaalmasinat, millest igaühele saab eraldada kuni 256 virtuaalse protsessori tuuma (VCPU) ja 128 GB muutmälu.

NVMM sisaldab draiverit, mis töötab süsteemituuma tasemel ja koordineerib juurdepääsu riistvara virtualiseerimismehhanismidele, ning Libnvmm-i pinu, mis töötab kasutajaruumis. Koostoime kerneli komponentide ja kasutajaruumi vahel toimub IOCTL-i kaudu. NVMM-i funktsioon, mis eristab seda hüperviisoridest, nagu KVM, on HAXM ja Bhyve, on see, et kerneli tasemel teostatakse riistvara virtualiseerimismehhanismide ümber ainult minimaalne nõutav sidumiste komplekt ja kogu riistvara emulatsioonikood teisaldatakse kernelist kasutajaruumi. See lähenemine võimaldab teil vähendada kõrgendatud õigustega käivitatava koodi hulka ja vähendada kogu süsteemi ohustamist hüperviisori haavatavuste rünnakute korral. Lisaks on projekti silumine ja udutestimine märgatavalt lihtsustatud.

Kuid Libnvmm ise ei sisalda emulaatori funktsioone, vaid pakub ainult API-d, mis võimaldab integreerida NVMM-i toe olemasolevatesse emulaatoritesse, näiteks QEMU-sse. API hõlmab selliseid funktsioone nagu virtuaalmasina loomine ja käivitamine, külalissüsteemile mälu eraldamine ja VCPU-de eraldamine. Turvalisuse parandamiseks ja võimalike ründevektorite vähendamiseks pakub libnvmm ainult neid funktsioone, mis on selgesõnaliselt nõutud – vaikimisi ei kutsuta keerulisi töötlejaid automaatselt ja neid ei pruugita üldse kasutada, kui neid on võimalik vältida. NVMM püüab hoida asjad lihtsana, ilma liiga keeruliseks muutumata ja võimaldades teil kontrollida oma töö võimalikult paljusid aspekte.

NetBSD projekt arendab uut NVMM-i hüperviisorit

NVMM-i kerneli tasemel osa on NetBSD kerneliga üsna tihedalt integreeritud ja võimaldab parandada jõudlust, vähendades kontekstilülituste arvu külalis-OS-i ja hostikeskkonna vahel. Kasutajaruumi poolel püüab libnvmm koondada tavalisi I/O toiminguid ja vältida asjatuid süsteemikõnesid. Mälu eraldamise süsteem põhineb pmap alamsüsteemil, mis võimaldab süsteemi mälupuuduse korral külalismälu lehti vahetuspartitsioonile välja tõsta. NVMM on globaalsetest lukkudest ja skaaladest hästi vaba, võimaldades teil erinevate külaliste virtuaalmasinate käitamiseks samaaegselt kasutada erinevaid protsessori tuumasid.

Valmistatud on QEMU-põhine lahendus, mis kasutab NVMM-i riistvara virtualiseerimismehhanismide võimaldamiseks. Käimas on töö ettevalmistatud plaastrite kaasamiseks QEMU põhistruktuuri. QEMU+NVMM kombinatsioon on juba olemas võimaldab edukalt käitada külalissüsteeme FreeBSD, OpenBSD, Linuxi, Windows XP/7/8.1/10 ja muude operatsioonisüsteemidega x86_64 süsteemides AMD ja Inteli protsessoritega (NVMM ise ei ole seotud konkreetse arhitektuuriga, näiteks kui luuakse vastav taustaprogramm , saab see töötada ARM64 süsteemides). NVMM-i edasise kasutamise valdkondade hulgas märgitakse ka üksikute rakenduste liivakastiisolatsiooni.

NetBSD projekt arendab uut NVMM-i hüperviisorit

Allikas: opennet.ru

Lisa kommentaar