Zhvilluesit e projektit NetBSD për krijimin e një hiperbrendësuesi të ri dhe grupeve përkatëse të virtualizimit, të cilat tashmë janë përfshirë në degën eksperimentale NetBSD-current dhe do të paraqiten në versionin stabil NetBSD 9. NVMM aktualisht është i kufizuar në mbështetje të arkitekturës x86_64 dhe ofron dy backend për të angazhuar mekanizmat harduerikë të virtualizimit: x86-SVM me mbështetje për zgjerimet e virtualizimit të CPU AMD dhe x86-VMX për CPU Intel. Në formën aktuale, është e mundur të ekzekutoni deri në 128 makina virtuale në një host, secilës mund t'i jepet deri në 256 bërthama virtuale procesori (VCPU) dhe 128 GB RAM.
NVMM përfshin një drejtues që punon në nivelin e bërthamës së sistemit dhe koordinon aksesin në mekanizmat harduerikë të virtualizimit, si dhe grupe Libnvmm, të ekzekutuar në hapësirën e përdoruesit. Ndërveprimi midis komponentëve të bërthamës dhe hapësirës së përdoruesit kryhet përmes IOCTL. Një veçori e NVMM, që e ndan atë nga hiperbrendësuesit si KVM, Bhyve është një projekt ku në nivelin e bërthamës ekzekutohet vetëm një grup minimal lidhjesh rreth mekanizmave të virtualizimit të harduerit, ndërsa të gjithë kodin e marrëdhënieve të pajisjeve e kemi zhvendosur jashtë bërthamës në hapësirën e përdoruesit. Ky qasje lejon që të reduktohet shuma e kodit që ekzekutohet me privilegje të larta dhe të ulet rreziku i kompromitet tërë sistemin në rastet e sulmeve ndaj dobësive në hipervizor. Më tej, po ashtu thjeshtohet ndjeshëm debugu i projektit dhe testimi fuzzing.
Megjithatë, Libnvmm vetë nuk përmban funksioni emulatori, por thjesht ofron një API që lejon integrimin e mbështetjes NVMM në emulatorët ekzistues, siç është QEMU. API mbulon funksione si krijimi dhe nisja e një makine virtuale, alokimi i memories për sistemin mik, shpërndarja e VCPU-ve. Për të rritur sigurinë dhe për të ulur mundësitë e sulmeve, libnvmm ofron vetëm funksionet e kërkuara qartë - si standard, trajtuesit kompleksë nuk thirren automatikisht dhe në përgjithësi mund të mos aplikohen nëse është e mundur të kalojë pa to. NVMM përpiqet të përballet me zgjidhje të thjeshta, pa rënë në kompliksitet dhe duke lejuar kontrollin sa më të madh mbi aspektet e operimit.
Një pjesë thelbësore e NVMM-së është e integruar ngushtë me kernelin e NetBSD-së, dhe lejon përmirësimin e performancës duke reduktuar numrin e konvertimeve midis sistemit të operimit të mysafirëve dhe mjedisit host. Në anën e hapësirës së përdoruesit, libnvmm përpiqet të aggregjojë operacionet standarde të hyrje-dalje dhe të mos kërkojë thirrje në sistem pa nevojë. Sistemi i menaxhimit të memories është i bazuar në nën-sistemin pmap, i cili lejon zhvendosjen e faqeve të memories së sistemeve të mysafirëve në ndihmën e memories në rast të mungesës së memories në sistem. NVMM është i çliruar nga bllokimet globale dhe shkallëzohet mirë, duke lejuar përdorimin e ndryshëm të bërthamave të CPU për të ekzekutuar makinat virtuale të ndryshme të mysafirëve.
Një zgjidhje e bazuar në QEMU është përgatitur, e cila përdor NVMM për aktivizimin e mekanizmave harduerikë të virtualizimit. Po punohet për integrimin e patch-eve të përgatitura në versionin e zakonshëm të QEMU. Kombinimi QEMU+NVMM tani të zhvilloni me sukses sisteme virtuale me FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 dhe sisteme të tjera në platforma x86_64 me procesorë AMD dhe Intel (vetë NVMM nuk është i lidhur me ndonjë arkitekturë të caktuar, për shembull, duke krijuar backend-in përkatës, mund të funksionojë në sisteme ARM64). Nga fushat e aplikimit të mëtejshëm, NVMM gjithashtu përmend izolimin e aplikacioneve të veçanta në mënyrë sandbox.
Burimi: opennet.ru
