Iprojekthi ye-NetBSD iphuhlisa i-hypervisor entsha ye-NVMM

Abaphuhlisi beProjekthi ye-NetBSD kwaziswa 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 HAXM 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.

Iprojekthi ye-NetBSD iphuhlisa i-hypervisor entsha ye-NVMM

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 it ivumela qhuba ngempumelelo iinkqubo zeendwendwe kunye neFreeBSD, i-OpenBSD, iLinux, iWindows XP/7/8.1/10 kunye nezinye ii-OS kwiinkqubo ze-x86_64 ezine-AMD kunye ne-Intel processors (i-NVMM ngokwayo ayidityaniswanga kuyilo oluthile, umzekelo, ukuba i-backend efanelekileyo iyadalwa. , iya kukwazi ukusebenza kwiinkqubo ze-ARM64 ). Phakathi kweendawo zokusetyenziswa ngakumbi kwe-NVMM, ukwahlukaniswa kwebhokisi yesanti yezicelo zomntu ngamnye kukwaqatshelwa.

Iprojekthi ye-NetBSD iphuhlisa i-hypervisor entsha ye-NVMM

umthombo: opennet.ru

Yongeza izimvo