NetBSD-Projektaj Programistoj
NVMM inkluzivas ŝoforon kiu funkcias ĉe la sistema kerno-nivelo kaj kunordigas aliron al aparataj virtualigmekanismoj, kaj Libnvmm-stako kiu funkcias en uzantspaco. Interagado inter kernkomponentoj kaj uzantspaco estas aranĝita tra IOCTL. Trajto de NVMM kiu distingas ĝin de hiperviziiloj kiel ekzemple KVM estas
Tamen, Libnvmm mem ne enhavas emuligajn funkciojn, sed nur provizas API, kiu permesas vin integri NVMM-subtenon en ekzistantajn emulilojn, ekzemple QEMU. La API kovras funkciojn kiel kreado kaj lanĉo de virtuala maŝino, asignado de memoro al la gastsistemo kaj asignado de VCPUoj. Por plibonigi sekurecon kaj redukti eblajn atakvektorojn, libnvmm disponigas nur funkciojn kiuj estas eksplicite petitaj—defaŭlte, kompleksaj pritraktiloj ne estas nomitaj aŭtomate kaj eble ne estas uzataj se ili povas esti evititaj. NVMM provas konservi aferojn simplaj, sen tro kompliki, kaj permesante al vi kontroli kiel eble plej multajn aspektojn de via laboro.
La kern-nivela parto de NVMM estas sufiĉe malloze integrita kun la NetBSD-kerno, kaj ebligas plibonigitan efikecon reduktante la nombron da kuntekstoŝanĝoj inter la gasto OS kaj la gastiga medio. Sur la uzantspaco, libnvmm provas kunigi komunajn I/O operaciojn kaj eviti fari sistemajn vokojn nenecese. La memora asignosistemo baziĝas sur la subsistemo pmap, kiu ebligas al vi elpeli gastmemorpaĝojn al la interŝanĝa sekcio en kazo de memormanko en la sistemo. NVMM estas libera de tutmondaj seruroj kaj skvamoj bone, permesante al vi samtempe uzi malsamajn CPU-kernojn por ruli malsamajn gastajn virtualajn maŝinojn.
QEMU-bazita solvo estis preparita kiu uzas NVMM por ebligi aparatajn virtualigmekanismojn. Laboras por inkludi la pretajn diakilojn en la ĉefa strukturo de QEMU. La kombinaĵo QEMU+NVMM jam estas
fonto: opennet.ru