NetBSD projektų kūrėjai
NVMM apima tvarkyklę, kuri veikia sistemos branduolio lygiu ir koordinuoja prieigą prie aparatinės įrangos virtualizavimo mechanizmų, ir Libnvmm krūvą, kuris veikia vartotojo erdvėje. Sąveika tarp branduolio komponentų ir vartotojo erdvės vykdoma per IOCTL. NVMM bruožas, išskiriantis jį iš hipervizorių, tokių kaip KVM
Tačiau pačiame „Libnvmm“ nėra emuliatoriaus funkcijų, o pateikiama tik API, leidžianti integruoti NVMM palaikymą į esamus emuliatorius, pavyzdžiui, QEMU. API apima tokias funkcijas kaip virtualios mašinos kūrimas ir paleidimas, atminties paskirstymas svečių sistemai ir VCPU paskirstymas. Siekdama pagerinti saugumą ir sumažinti galimus atakų vektorius, libnvmm teikia tik tas funkcijas, kurių aiškiai reikalaujama – pagal numatytuosius nustatymus sudėtingos tvarkyklės nėra iškviečiamos automatiškai ir gali būti visai nenaudojamos, jei jų galima išvengti. NVMM stengiasi, kad viskas būtų paprasta, pernelyg nesudėtinga ir leidžia jums kontroliuoti kuo daugiau savo darbo aspektų.
Branduolio lygio NVMM dalis yra gana glaudžiai integruota su NetBSD branduoliu ir leidžia pagerinti našumą sumažinant konteksto perjungimų tarp svečių OS ir pagrindinio kompiuterio aplinkos skaičių. Vartotojo erdvėje libnvmm bando apibendrinti įprastas įvesties / išvesties operacijas ir išvengti bereikalingų sistemos skambučių. Atminties paskirstymo sistema yra pagrįsta pmap posisteme, kuri leidžia iškeldinti svečių atminties puslapius į apsikeitimo skaidinį, jei sistemoje trūksta atminties. NVMM nėra visuotinių užraktų ir mastelių, todėl galite vienu metu naudoti skirtingus procesoriaus branduolius skirtingoms svečių virtualiosioms mašinoms paleisti.
Parengtas QEMU pagrįstas sprendimas, kuris naudoja NVMM, kad įgalintų aparatinės įrangos virtualizacijos mechanizmus. Vykdomi darbai, siekiant įtraukti paruoštus pleistrus į pagrindinę QEMU struktūrą. QEMU+NVMM derinys jau yra
Šaltinis: opennet.ru