Proiectul NetBSD dezvoltă un nou hypervizor NVMM

Dezvoltatorii proiectului NetBSD au anunțat despre crearea unui nou hypervisor și a stivei de virtualizare asociate, care sunt deja incluse în ramura experimentală NetBSD-current și vor fi oferite în versiunile stabile NetBSD 9. NVMM este în prezent limitat la suportul arhitecturii x86_64 și oferă două backend-uri pentru utilizarea mecanismelor hardware de virtualizare: x86-SVM cu suport pentru extensiile de virtualizare CPU AMD și x86-VMX pentru CPU Intel. În forma sa actuală, este posibil să rulați până la 128 de mașini virtuale pe un singur host, fiecare dintre ele putând fi alocată până la 256 de nuclee virtuale de procesor (VCPU) și 128 GB RAM.

NVMM include un driver care funcționează la nivelul nucleului sistemului și coordonează accesul la mecanismele hardware de virtualizare, precum și la stiva Libnvmm, care rulează în spațiul utilizatorului. Interacțiunea dintre componentele nucleului și spațiul utilizatorului se realizează prin IOCTL. O caracteristică a NVMM, care îl diferențiază de hypervisoare precum KVM, HAXM și Bhyve, este că la nivelul nucleului se execută doar setul minim necesar de wrapperi în jurul mecanismelor hardware de virtualizare, iar tot codul de emulare a echipamentului este mutat din nucleu în spațiul utilizatorului. Această abordare reduce volumul de cod care rulează cu privilegii crescute și minimizează riscul compromiterii întregului sistem în cazul atacurilor asupra vulnerabilităților din hypervisor. În plus, se simplifică semnificativ depanarea și testarea fuzzing a proiectului.

În plus, Libnvmm nu conține în sine funcționalități de emulator, ci oferă doar un API care permite integrarea suportului NVMM în emulatoare existente, cum ar fi QEMU. API-ul acoperă funcții precum crearea și rularea unei mașini virtuale, alocarea memoriei pentru sistemul gazdă, distribuirea VCPU. Pentru a spori securitatea și a reduce posibilele vectori de atac, libnvmm oferă doar funcții explicit solicitate — în mod implicit, handler-urile complexe nu sunt apelate automat și pot să nu fie utilizate deloc, dacă se poate evita utilizarea lor. NVMM încearcă să opereze cu soluții simple, evitând complicațiile și permițând controlul cât mai multor aspecte ale funcționării.

Proiectul NetBSD dezvoltă un nou hypervizor NVMM

Partea NVMM, care funcționează la nivel de nucleu, este integrată strâns cu nucleul NetBSD și permite creșterea performanței prin reducerea numărului de comutări de context între sistemul de operare gazdă și cel virtual. Pe partea utilizatorului, libnvmm încearcă să agregheze operațiunile tipice de intrare-ieșire și să evite apelurile sistemului, atunci când nu este necesar. Sistemul de gestionare a memoriei se bazează pe subsistemul pmap, ceea ce permite înlocuirea paginilor de memorie ale sistemelor gazdă în spațiul de swap în cazul lipsei de memorie în sistem. NVMM nu are blocări globale și se scalează bine, permițând utilizarea simultană a nucleelor CPU diferite pentru executarea diferitelor mașini virtuale gazdă.

Pe baza QEMU, a fost pregătită o soluție care folosește NVMM pentru a activa mecanismele hardware de virtualizare. Se lucrează la includerea patch-urilor pregătite în compunerea de bază a QEMU. Legătura QEMU+NVMM deja permite rulează cu succes sisteme gazdă precum FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 și alte sisteme pe mașinile x86_64 cu procesoare AMD și Intel (NVMM nu este legat de o arhitectură specifică, de exemplu, prin crearea unui backend corespunzător poate funcționa pe sisteme ARM64). Din domeniile aplicării ulterioare, NVMM se remarcă de asemenea prin izolarea sandbox a aplicațiilor individuale.

Proiectul NetBSD dezvoltă un nou hypervizor NVMM

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster