Iphrojekthi ye-NetBSD ithuthukisa i-hypervisor entsha ye-NVMM

I-NetBSD Project Developers kumenyezelwe mayelana nokudalwa kwe-hypervisor entsha kanye nesitaki se-virtualization esihlobene, esesivele sifakiwe egatsheni lamanje le-NetBSD elihlolwayo futhi sizonikezwa ekukhishweni okuzinzile kwe-NetBSD 9. I-NVMM okwamanje ikhawulelwe ekusekeleni ukwakheka kwe-x86_64 futhi inikeza izisekelo ezimbili inika amandla izindlela zokwenza izinto zehadiwe: i-x86-SVM ngosekelo lwe-AMD nezandiso ze-X86-VMX CPU ze-Intel CPUs. Ngendlela yayo yamanje, kungenzeka ukusebenzisa imishini ebonakalayo engu-128 kumsingathi oyedwa, ngamunye onganikezwa ama-virtual processor cores (VCPU) angu-256 no-128 GB we-RAM.

I-NVMM ihlanganisa umshayeli osebenza ezingeni le-kernel yesistimu futhi exhumanisa ukufinyelela kuzinqubo ze-Hardware ze-virtualization, kanye nesitaki se-Libnvmm esisebenza endaweni yomsebenzisi. Ukusebenzisana phakathi kwezingxenye ze-kernel nesikhala somsebenzisi kwenziwa nge-IOCTL. Isici se-NVMM esisihlukanisa nama-hypervisors afana ne-KVM yi I-HAXM kanye ne-Bhyve, ukuthi ezingeni le-kernel kuphela isethi encane edingekayo yokubophezela ezungeze izindlela ze-hardware virtualization eyenziwayo, futhi yonke ikhodi yokulingisa ihadiwe iyakhishwa ku-kernel iye endaweni yomsebenzisi. Le ndlela ikuvumela ukuthi unciphise inani lekhodi ekhishwe ngamalungelo aphakeme futhi unciphise ingozi yokuyekethisa uhlelo lonke uma kwenzeka ukuhlaselwa kobuthakathaka ku-hypervisor. Ukwengeza, ukulungisa amaphutha kanye nokuhlolwa kwe-fuzzing kwephrojekthi kwenziwa kalula.

Nokho, i-Libnvmm ngokwayo ayiqukethe imisebenzi yokulingisa, kodwa inikeza kuphela i-API ekuvumela ukuthi uhlanganise ukusekelwa kwe-NVMM kuma-emulators akhona, isibonelo, i-QEMU. I-API ihlanganisa imisebenzi efana nokudala nokwethula umshini obonakalayo, ukwaba inkumbulo kusistimu yesivakashi, nokwaba ama-VCPU. Ukuze kuthuthukiswe ukuvikeleka nokunciphisa ama-vector okuhlasela okungenzeka, i-libnvmm inikeza kuphela imisebenzi ecelwe ngokucacile—ngokuzenzakalelayo, izibambi eziyinkimbinkimbi azibizwa ngokuzenzakalelayo futhi angeke zisetshenziswe nhlobo uma zingagwenywa. I-NVMM izama ukugcina izinto zilula, ngaphandle kokuba yinkimbinkimbi kakhulu, futhi ikuvumela ukuthi ulawule izici eziningi zomsebenzi wakho ngangokunokwenzeka.

Iphrojekthi ye-NetBSD ithuthukisa i-hypervisor entsha ye-NVMM

Ingxenye yeleveli ye-kernel ye-NVMM ihlanganiswe ngokuqinile ne-NetBSD kernel, futhi ivumela ukusebenza okuthuthukisiwe ngokunciphisa inani lokushintshwa komongo phakathi kwe-OS yesivakashi nendawo yokusingatha. Ohlangothini lwesikhala somsebenzisi, i-libnvmm izama ukuhlanganisa imisebenzi evamile ye-I/O futhi igweme ukwenza amakholi wesistimu ngokungadingekile. Isistimu yokwabiwa kwememori isekelwe kusistimu engaphansi ye-pmap, ekuvumela ukuthi ukhiphe amakhasi ememori yesivakashi endaweni yokushintshana uma kwenzeka ukuntuleka kwememori ohlelweni. I-NVMM ayinazo izingidi nezikali zomhlaba wonke kahle, okukuvumela ukuthi usebenzise ngesikhathi esisodwa ama-CPU cores ahlukene ukuze usebenzise imishini ehlukile yezivakashi.

Isixazululo esisekelwe ku-QEMU sesilungisiwe esisebenzisa i-NVMM ukuze kunikwe amandla izindlela zokwenza izinto zehadiwe. Umsebenzi uyaqhubeka wokufaka amapheshana alungisiwe esakhiweni esikhulu se-QEMU. Inhlanganisela ye-QEMU+NVMM isivele ikhona kuvumela sebenzisa ngempumelelo amasistimu ezivakashi nge-FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 nezinye i-OS ezinhlelweni ze-x86_64 ezine-AMD ne-Intel processors (i-NVMM ngokwayo ayiboshelwe ekwakhiweni okuthile, ngokwesibonelo, uma i-backend efanelekile idaliwe. , izokwazi ukusebenza ezinhlelweni ze-ARM64 ). Phakathi kwezindawo zokusetshenziswa okuqhubekayo kwe-NVMM, ukuhlukaniswa kwebhokisi lesihlabathi kwezinhlelo zokusebenza ngazinye nakho kuyaphawulwa.

Iphrojekthi ye-NetBSD ithuthukisa i-hypervisor entsha ye-NVMM

Source: opennet.ru

Engeza amazwana