Proiectul NetBSD dezvoltă un nou hypervisor NVMM

Dezvoltatorii de proiecte NetBSD a anunțat despre crearea unui nou hypervisor și a stivei de virtualizare asociate, care sunt deja incluse în ramura curentă NetBSD experimentală și vor fi oferite în versiunea stabilă a NetBSD 9. NVMM se limitează în prezent la suportarea arhitecturii x86_64 și oferă două backend-uri pentru activarea mecanismelor de virtualizare hardware: x86-SVM cu suport pentru extensii de virtualizare CPU AMD și x86-VMX pentru procesoarele Intel. În forma sa actuală, este posibil să rulați până la 128 de mașini virtuale pe o gazdă, fiecare dintre acestea putând fi alocate până la 256 de nuclee de procesor virtual (VCPU) și 128 GB de RAM.

NVMM include un driver care rulează la nivelul nucleului sistemului și coordonează accesul la mecanismele de virtualizare hardware și o stivă Libnvmm care rulează în spațiul utilizatorului. Interacțiunea dintre componentele kernelului și spațiul utilizatorului se realizează prin IOCTL. O caracteristică a NVMM care îl deosebește de hipervizoare precum KVM este HAXM și Bhyve, este că la nivel de kernel se realizează doar setul minim necesar de legături în jurul mecanismelor de virtualizare hardware și tot codul de emulare hardware este mutat din nucleu în spațiul utilizatorului. Această abordare vă permite să reduceți cantitatea de cod executat cu privilegii ridicate și să reduceți riscul de a compromite întregul sistem în cazul unor atacuri asupra vulnerabilităților din hypervisor. În plus, depanarea și testarea fuzzing a proiectului este considerabil simplificată.

Cu toate acestea, Libnvmm în sine nu conține funcții de emulator, ci oferă doar un API care vă permite să integrați suportul NVMM în emulatorii existenți, de exemplu, QEMU. API-ul acoperă funcții precum crearea și lansarea unei mașini virtuale, alocarea memoriei sistemului oaspete și alocarea VCPU-urilor. Pentru a îmbunătăți securitatea și a reduce posibilii vectori de atac, libnvmm oferă doar funcții care sunt solicitate în mod explicit - în mod implicit, handlerele complexe nu sunt apelate automat și pot să nu fie utilizate deloc dacă pot fi evitate. NVMM încearcă să mențină lucrurile simple, fără a se complica prea mult și permițându-vă să controlați cât mai multe aspecte ale activității dvs.

Proiectul NetBSD dezvoltă un nou hypervisor NVMM

Partea la nivel de kernel a NVMM este destul de strâns integrată cu nucleul NetBSD și permite o performanță îmbunătățită prin reducerea numărului de comutări de context între sistemul de operare invitat și mediul gazdă. În ceea ce privește spațiul utilizatorului, libnvmm încearcă să agregă operațiunile I/O comune și să evite apelurile de sistem inutil. Sistemul de alocare a memoriei se bazează pe subsistemul pmap, care vă permite să evacuați paginile de memorie pentru oaspeți în partiția de swap în caz de lipsă de memorie în sistem. NVMM nu are blocări globale și se scalează bine, permițându-vă să utilizați simultan diferite nuclee CPU pentru a rula diferite mașini virtuale invitate.

A fost pregătită o soluție bazată pe QEMU care utilizează NVMM pentru a activa mecanismele de virtualizare hardware. Se lucrează pentru includerea patch-urilor pregătite în structura principală a QEMU. Combinația QEMU+NVMM este deja Acesta permite rulează cu succes sisteme invitate cu FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 și alte sisteme de operare pe sisteme x86_64 cu procesoare AMD și Intel (NVMM în sine nu este legat de o arhitectură specifică, de exemplu, dacă este creat backend-ul corespunzător , va putea funcționa pe sistemele ARM64 ). Printre domeniile de aplicare ulterioară a NVMM, se remarcă, de asemenea, izolarea în sandbox a aplicațiilor individuale.

Proiectul NetBSD dezvoltă un nou hypervisor NVMM

Sursa: opennet.ru

Adauga un comentariu