Watengenezaji wa Mradi wa NetBSD
NVMM inajumuisha kiendeshi kinachoendesha katika kiwango cha kernel ya mfumo na kuratibu ufikiaji wa mifumo ya uboreshaji wa maunzi, na safu ya Libnvmm inayoendesha katika nafasi ya mtumiaji. Mwingiliano kati ya vipengele vya kernel na nafasi ya mtumiaji unafanywa kupitia IOCTL. Kipengele cha NVMM ambacho huitofautisha na hypervisors kama vile KVM ni
Hata hivyo, Libnvmm yenyewe haina kazi za emulator, lakini hutoa tu API ambayo inakuwezesha kuunganisha usaidizi wa NVMM katika emulators zilizopo, kwa mfano, QEMU. API inashughulikia utendakazi kama vile kuunda na kuzindua mashine pepe, kuweka kumbukumbu kwa mfumo wa wageni, na kutenga VCPU. Ili kuboresha usalama na kupunguza vienezaji vinavyoweza kushambulia, libnvmm hutoa utendakazi tu ambazo zimeombwa waziwaziβkwa chaguo-msingi, vishikilizi changamano havipigiwi simu kiotomatiki na huenda visitumike kabisa ikiwa vinaweza kuepukwa. NVMM inajaribu kufanya mambo kuwa rahisi, bila kuwa magumu sana, na kukuruhusu kudhibiti vipengele vingi vya kazi yako iwezekanavyo.
Sehemu ya kiwango cha kernel ya NVMM imeunganishwa kwa uthabiti kabisa na kerneli ya NetBSD, na inaruhusu utendakazi ulioboreshwa kwa kupunguza idadi ya swichi za muktadha kati ya OS ya mgeni na mazingira ya mwenyeji. Kwa upande wa nafasi ya mtumiaji, libnvmm inajaribu kujumlisha shughuli za kawaida za I/O na kuepuka kupiga simu za mfumo bila sababu. Mfumo wa ugawaji kumbukumbu unatokana na mfumo mdogo wa pmap, ambao hukuruhusu kufukuza kurasa za kumbukumbu za wageni kwenye sehemu ya kubadilishana ikiwa kuna uhaba wa kumbukumbu kwenye mfumo. NVMM haina kufuli na mizani ya kimataifa vizuri, hukuruhusu kutumia kwa wakati mmoja cores tofauti za CPU kuendesha mashine tofauti za wageni.
Suluhisho la msingi wa QEMU limetayarishwa ambalo linatumia NVMM kuwezesha mifumo ya uboreshaji wa maunzi. Kazi inaendelea ya kujumuisha viraka vilivyotayarishwa katika muundo mkuu wa QEMU. Mchanganyiko wa QEMU+NVMM tayari uko
Chanzo: opennet.ru