Projekti NetBSD po zhvillon një hipervizor të ri NVMM

Zhvilluesit e projektit NetBSD i shpallur në lidhje me krijimin e një hipervizori të ri dhe grupin e lidhur të virtualizimit, të cilat tashmë janë përfshirë në degën aktuale eksperimentale të NetBSD dhe do të ofrohen në lëshimin e qëndrueshëm të NetBSD 9. NVMM aktualisht është i kufizuar në mbështetjen e arkitekturës x86_64 dhe ofron dy mbështetëse për duke mundësuar mekanizmat e virtualizimit të harduerit: x86-SVM me mbështetje për zgjerimet e virtualizimit të CPU-së AMD dhe x86-VMX për CPU-të Intel. Në formën e tij aktuale, është e mundur të ekzekutoni deri në 128 makina virtuale në një host, secila prej të cilave mund të ndahet deri në 256 bërthama të procesorit virtual (VCPU) dhe 128 GB RAM.

NVMM përfshin një drejtues që funksionon në nivelin e kernelit të sistemit dhe koordinon aksesin në mekanizmat e virtualizimit të harduerit, dhe një pirg Libnvmm që funksionon në hapësirën e përdoruesit. Ndërveprimi ndërmjet komponentëve të kernelit dhe hapësirës së përdoruesit kryhet përmes IOCTL. Një veçori e NVMM që e dallon atë nga hipervizorët si KVM është HAXM dhe Bhyve, është se në nivelin e kernelit kryhet vetëm grupi minimal i kërkuar i lidhjeve rreth mekanizmave të virtualizimit të harduerit dhe i gjithë kodi i emulimit të harduerit zhvendoset nga kerneli në hapësirën e përdoruesit. Kjo qasje ju lejon të zvogëloni sasinë e kodit të ekzekutuar me privilegje të ngritura dhe të zvogëloni rrezikun e komprometimit të të gjithë sistemit në rast të sulmeve ndaj dobësive në hipervisor. Për më tepër, testimi i korrigjimit dhe fuzzimit të projektit është thjeshtuar dukshëm.

Sidoqoftë, vetë Libnvmm nuk përmban funksione emulatori, por ofron vetëm një API që ju lejon të integroni mbështetjen NVMM në emulatorët ekzistues, për shembull, QEMU. API mbulon funksione të tilla si krijimi dhe lëshimi i një makinerie virtuale, shpërndarja e memories në sistemin e mysafirëve dhe ndarja e VCPU-ve. Për të përmirësuar sigurinë dhe për të reduktuar vektorët e mundshëm të sulmit, libnvmm ofron vetëm funksione që kërkohen në mënyrë eksplicite—si parazgjedhje, mbajtësit kompleks nuk thirren automatikisht dhe mund të mos përdoren fare nëse mund të shmangen. NVMM përpiqet t'i mbajë gjërat të thjeshta, pa u ndërlikuar shumë, dhe duke ju lejuar të kontrolloni sa më shumë aspekte të punës suaj.

Projekti NetBSD po zhvillon një hipervizor të ri NVMM

Pjesa e nivelit të kernelit të NVMM është mjaft e integruar ngushtë me kernelin NetBSD dhe lejon performancën e përmirësuar duke reduktuar numrin e ndërruesve të kontekstit midis OS mysafir dhe mjedisit pritës. Në anën e hapësirës së përdoruesit, libnvmm përpiqet të grumbullojë operacionet e zakonshme të hyrjes/daljes dhe të shmangë kryerjen e thirrjeve të sistemit në mënyrë të panevojshme. Sistemi i ndarjes së memories bazohet në nënsistemin pmap, i cili ju lejon të dëboni faqet e memories së mysafirëve në ndarjen e shkëmbimit në rast të mungesës së memories në sistem. NVMM është pa bllokime globale dhe shkallë, duke ju lejuar të përdorni njëkohësisht bërthama të ndryshme CPU për të drejtuar makina të ndryshme virtuale të ftuar.

Është përgatitur një zgjidhje e bazuar në QEMU që përdor NVMM për të mundësuar mekanizmat e virtualizimit të harduerit. Po punohet për përfshirjen e arnimeve të përgatitura në strukturën kryesore të QEMU. Kombinimi QEMU+NVMM është tashmë Kjo i lejon ekzekutoni me sukses sistemet e vizitorëve me FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 dhe OS të tjerë në sistemet x86_64 me procesorë AMD dhe Intel (vetë NVMM nuk është i lidhur me një arkitekturë specifike, për shembull, nëse krijohet prapavija e duhur , do të jetë në gjendje të punojë në sistemet ARM64 ). Ndër fushat e aplikimit të mëtejshëm të NVMM, vërehet gjithashtu izolimi i sandboxit të aplikacioneve individuale.

Projekti NetBSD po zhvillon një hipervizor të ri NVMM

Burimi: opennet.ru

Shto një koment