Projekt NetBSD razvija novi hipervizor NVMM

Razvijači projekta NetBSD objavili su o stvaranju novog hipervizora i povezane virtuelizacijske arhitekture, koja je već uključena u eksperimentalnu verziju NetBSD-current i biće ponuđena u stabilnom izdanju NetBSD 9. NVMM za sada podržava samo arhitekturu x86_64 i pruža dva bBackend za korišćenje hardverskih mehanizama virtuelizacije: x86-SVM sa podrškom za proširenja virtuelizacije AMD CPU-a i x86-VMX za Intel CPU. U trenutnoj verziji moguće je pokretanje do 128 virtuelnih mašina na jednom hostu, od kojih svaka može dobiti do 256 virtuelnih procesorskih jezgara (VCPU) i 128 GB RAM-a.

NVMM uključuje drajver koji radi na nivou operativnog sistema i koordinira pristup hardverskim mehanizmima virtuelizacije, kao i Libnvmm stek koji se izvršava u korisničkom prostoru. Interakcija između komponenti jezgra i korisničkog prostora ostvaruje se putem IOCTL. Osobina NVMM-a, koja ga razlikuje od hipervizora kao što su KVM, HAXM i Bhyve, jeste ta da se na nivou jezgra izvršava samo minimalni neophodni set omotača oko hardverskih mehanizama virtuelizacije, dok je sav kod za emulaciju hardvera premesten iz jezgra u korisnički prostor. Ovakav pristup omogućava smanjenje količine koda koji se izvršava s povišenim privilegijama i smanjuje rizik od kompromitacije celog sistema u slučaju napada na ranjivosti hipervizora. Pored toga, značajno se pojednostavljuje debagovanje i fuzzing testiranje projekta.

Pri tome, Libnvmm sam po sebi ne sadrži funkcije emulatora, već samo pruža API koji omogućava integraciju podrške za NVMM u postojeće emulatore, na primer, u QEMU. API obuhvata funkcije kao što su kreiranje i pokretanje virtuelne mašine, dodeljivanje memorije gostujućem sistemu i raspoređivanje VCPU-a. Kako bi se povećala sigurnost i smanjili mogući vektori napada, libnvmm pruža samo funkcije koje su izričito tražene - po defaultu, složeni procesori se ne pozivaju automatski i mogu se uopšte ne koristiti ako je moguće bez njih. NVMM se trudi da koristi jednostavna rešenja, bez upadanja u složenosti, omogućavajući kontrolu nad što većim brojem aspekata rada.

Projekt NetBSD razvija novi hipervizor NVMM

Komponenta NVMM koja radi na razini jezgre čvrsto je integrirana s jezgrom NetBSD-a i omogućava povećanje performansi smanjenjem broja prebacivanja konteksta između gostujućeg OS-a i host okruženja. Na strani korisničkog prostora, libnvmm nastoji agregirati standardne operacije ulazno-izlaznih podataka i izbjegava pozive sustavnih funkcija kada nije potrebno. Sustav dodjele memorije temelji se na podsustavu pmap, što omogućava isključivanje stranica memorije gostujućih sustava u swap prostor u slučaju nedostatka memorije u sustavu. NVMM je oslobođen globalnih blokada i dobro se skalira, omogućavajući istovremeno korištenje različitih CPU jezgri za izvršavanje različitih gostujućih virtualnih strojeva.

Na bazi QEMU-a pripremljeno je rješenje koje koristi NVMM za aktiviranje hardverskih mehanizama virtualizacije. U tijeku je rad na uključivanju pripremljenih zakrpa u glavni sastav QEMU-a. Veza QEMU+NVMM već omogućava uspješno pokreće gostujuće sustave s FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 i drugim OS-ima na sustavima x86_64 s procesorima AMD i Intel (sam NVMM nije vezan uz određenu arhitekturu, na primjer, uz izradu odgovarajućeg bэckenda može raditi i na sustavima ARM64). Među područjima daljnje primjene NVMM također se ističe sandbox-izolacija pojedinih aplikacija.

Projekt NetBSD razvija novi hipervizor NVMM

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster