Abaphuhlisi beProjekthi ye-NetBSD malunga nokudalwa kwe-hypervisor entsha kunye ne-virtualization stack ehambelanayo, esele ibandakanyiwe kwi-NetBSD-yangoku yesebe kwaye iya kunikezelwa kukhupho oluzinzileyo lwe-NetBSD 9. I-NVMM okwangoku ilinganiselwe ekuxhaseni i-x86_64 yoyilo kwaye ibonelela ngasemva ezimbini i-hardware evumela iindlela zokusebenzisa virtualization: x86-SVM ngenkxaso ye-AMD kunye ne-x86-VMX CPU ye-virtualization extensions ye-Intel CPUs. Kwimo yayo yangoku, kunokwenzeka ukuba uqhube ukuya kuma-128 oomatshini be-virtual kwi-host host enye, nganye leyo inokwabelwa ukuya kuthi ga kwi-256 ye-processor ye-virtual cores (VCPU) kunye ne-128 GB ye-RAM.
I-NVMM ibandakanya umqhubi osebenza kwinqanaba le-kernel yenkqubo kwaye ulungelelanisa ukufikelela kwiindlela ze-hardware virtualization, kunye ne-Libnvmm stack ehamba kwindawo yomsebenzisi. Ukusebenzisana phakathi kwamacandelo e-kernel kunye nesithuba somsebenzisi wenziwa nge-IOCTL. Uphawu lwe-NVMM oluyahlula kwii-hypervisors ezifana ne-KVM yi kunye ne-Bhyve, kukuba kwinqanaba le-kernel kuphela ubuncinci obufunekayo beeseti zokubopha malunga ne-hardware ye-virtualization mechanisms yenziwa, kwaye yonke ikhowudi yokulinganisa i-hardware iyasuswa kwi-kernel ukuya kwindawo yomsebenzisi. Le ndlela ikuvumela ukuba unciphise inani lekhowudi eyenziwa ngamalungelo aphakamileyo kunye nokunciphisa umngcipheko wokunciphisa inkqubo yonke xa kwenzeka ukuhlaselwa kobuthathaka kwi-hypervisor. Ukongeza, ukulungisa iimpazamo kunye novavanyo lweprojekthi lwenziwe lula.
Nangona kunjalo, i-Libnvmm ngokwayo ayinayo imisebenzi ye-emulator, kodwa inikezela kuphela i-API evumela ukuba udibanise inkxaso ye-NVMM kwii-emulators ezikhoyo, umzekelo, i-QEMU. I-API igubungela imisebenzi efana nokudala kunye nokusungula umatshini wenyani, ukwaba imemori kwinkqubo yeendwendwe, kunye nokwabiwa kweeVCPU. Ukuphucula ukhuseleko kunye nokunciphisa ii-vectors ezinokuthi zihlaselwe, i-libnvmm inikeza kuphela imisebenzi eceliwe ngokucacileyo-ngokungagqibekanga, abaphathi abanzima ababizwa ngokuzenzekelayo kwaye abanakusetyenziswa kuzo zonke ukuba banokuphetshwa. I-NVMM izama ukugcina izinto zilula, ngaphandle kokuntsonkotha kakhulu, kwaye ikuvumela ukuba ulawule imiba emininzi yomsebenzi wakho kangangoko kunokwenzeka.
Inxalenye ye-kernel-level ye-NVMM idityaniswe ngokuqinileyo kunye ne-NetBSD kernel, kwaye ivumela ukusebenza okuphuculweyo ngokunciphisa inani lokutshintsha kweemeko phakathi kwe-OS yeendwendwe kunye nendawo yokusingatha. Kwicala lesithuba somsebenzisi, i-libnvmm izama ukuhlanganisa imisebenzi ye-I/O eqhelekileyo kwaye inqande ukwenza iifowuni zenkqubo ngokungeyomfuneko. Inkqubo yonikezelo lwenkumbulo isekwe kwindlela esezantsi ye-pmap, ekuvumela ukuba ukhuphe amaphepha ememori yeendwendwe kwisahlulelo sokutshintsha kwimeko yokunqongophala kwememori kwinkqubo. I-NVMM ikhululekile kwizitshixo zehlabathi kunye nezikali kakuhle, ikuvumela ukuba usebenzise ngaxeshanye ii-CPU cores ezahlukeneyo ukuqhuba oomatshini abahlukileyo beendwendwe.
Isisombululo esisekelwe kwi-QEMU silungisiwe esisebenzisa i-NVMM ukwenzela ukuba i-hardware isebenze iindlela. Umsebenzi uyaqhubeka ukubandakanya amabala alungisiweyo kwisakhiwo esiphambili se-QEMU. I-QEMU+NVMM indibaniselwano sele ikhona ukuqhuba ngempumelelo iinkqubo zeendwendwe ngeFreeBSD, OpenBSD, Linux, Windows I-XP/7/8.1/10 kunye nezinye iinkqubo zokusebenza kwiinkqubo ze-x86_64 ezineeprosesa ze-AMD kunye ne-Intel (i-NVMM ngokwayo ayibotshelelwanga kwisakhiwo esithile; umzekelo, nge-backend efanelekileyo, inokusebenza kwiinkqubo ze-ARM64). Ezinye izicelo ze-NVMM ziquka usetyenziso lwe-sandboxing individual.
umthombo: opennet.ru
