Programeri NetBSD projekta
NVMM uključuje upravljački program koji radi na razini jezgre sustava i koordinira pristup hardverskim mehanizmima virtualizacije te Libnvmm stog koji radi u korisničkom prostoru. Interakcija između komponenti kernela i korisničkog prostora odvija se kroz IOCTL. Značajka NVMM-a koja ga razlikuje od hipervizora kao što je KVM je
Međutim, sam Libnvmm ne sadrži funkcije emulatora, već samo pruža API koji vam omogućuje integraciju NVMM podrške u postojeće emulatore, na primjer, QEMU. API pokriva funkcije poput stvaranja i pokretanja virtualnog stroja, dodjele memorije sustavu za goste i dodjele VCPU-a. Kako bi poboljšao sigurnost i smanjio moguće vektore napada, libnvmm pruža samo funkcije koje su izričito tražene—prema zadanim postavkama složeni rukovatelji se ne pozivaju automatski i možda se uopće ne koriste ako se mogu izbjeći. NVMM nastoji stvari održati jednostavnima, bez previše kompliciranja i dopuštajući vam da kontrolirate što više aspekata svog rada.
Dio NVMM-a na razini jezgre prilično je čvrsto integriran s NetBSD jezgrom i omogućuje poboljšane performanse smanjenjem broja kontekstnih prebacivanja između OS-a za goste i okruženja glavnog računala. Na strani korisničkog prostora, libnvmm pokušava agregirati uobičajene I/O operacije i izbjeći nepotrebne pozive sustava. Sustav dodjele memorije temelji se na pmap podsustavu, koji vam omogućuje izbacivanje gostujućih memorijskih stranica na swap particiju u slučaju nedostatka memorije u sustavu. NVMM nema globalnih zaključavanja i dobro se skalira, što vam omogućuje da istovremeno koristite različite CPU jezgre za pokretanje različitih gostujućih virtualnih strojeva.
Pripremljeno je rješenje temeljeno na QEMU-u koje koristi NVMM za omogućavanje mehanizama hardverske virtualizacije. U tijeku je rad na uključivanju pripremljenih zakrpa u glavnu strukturu QEMU-a. Kombinacija QEMU+NVMM već postoji
Izvor: opennet.ru