NetBSD Project Developers
NVMM uključuje drajver koji radi na nivou sistemskog kernela i koordinira pristup mehanizmima virtuelizacije hardvera i Libnvmm stog koji radi u korisničkom prostoru. Interakcija između komponenti kernela i korisničkog prostora se vrši preko IOCTL-a. Karakteristika NVMM-a koja ga razlikuje od hipervizora kao što je KVM jeste
Međutim, sam Libnvmm ne sadrži funkcije emulatora, već samo pruža API koji vam omogućava da integrirate NVMM podršku u postojeće emulatore, na primjer, QEMU. API pokriva funkcije kao što su kreiranje i pokretanje virtuelne mašine, dodeljivanje memorije gostujućem sistemu i dodeljivanje VCPU-a. Da bi poboljšao sigurnost i smanjio moguće vektore napada, libnvmm pruža samo funkcije koje su eksplicitno tražene—podrazumevano, složeni rukovaoci se ne pozivaju automatski i ne mogu se uopće koristiti ako se mogu izbjeći. NVMM pokušava da stvari održi jednostavnim, bez da se previše zakomplikuje, i omogućava vam da kontrolišete što više aspekata svog rada.
Dio NVMM-a na nivou kernela je prilično čvrsto integriran sa NetBSD kernelom i omogućava poboljšane performanse smanjenjem broja prebacivanja konteksta između gostujućeg OS-a i domaćinskog okruženja. Na strani korisničkog prostora, libnvmm pokušava agregirati uobičajene I/O operacije i izbjeći nepotrebne sistemske pozive. Sistem dodjele memorije je baziran na pmap podsistemu, koji vam omogućava da izbacite gostujuće memorijske stranice na swap particiju u slučaju nedostatka memorije u sistemu. NVMM je bez globalnih zaključavanja i dobro skala, omogućavajući vam da istovremeno koristite različite CPU jezgre za pokretanje različitih gostujućih virtuelnih mašina.
Pripremljeno je rješenje zasnovano na QEMU koje koristi NVMM za omogućavanje mehanizama virtuelizacije hardvera. U toku je rad na uključivanju pripremljenih zakrpa u glavnu strukturu QEMU. Kombinacija QEMU+NVMM već postoji
izvor: opennet.ru