NetBSD projektiarendajad
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
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.
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
Allikas: opennet.ru