Il progetto NetBSD sviluppa un nuovo hypervisor NVMM

Gli sviluppatori del progetto NetBSD hanno annunciato sulla creazione di un nuovo hypervisor e del relativo stack di virtualizzazione, già incluso nella ramificazione sperimentale di NetBSD-current e verrà proposto nella versione stabile NetBSD 9. NVMM è attualmente limitato al supporto dell'architettura x86_64 e fornisce due backend per sfruttare i meccanismi hardware di virtualizzazione: x86-SVM con supporto per le estensioni di virtualizzazione dei CPU AMD e x86-VMX per CPU Intel. Nella configurazione attuale è possibile eseguire fino a 128 macchine virtuali su un singolo host, ciascuna delle quali può avere assegnati fino a 256 core virtuali (VCPU) e 128 GB di RAM.

NVMM include un driver che opera a livello di kernel e coordina l'accesso ai meccanismi hardware di virtualizzazione, e lo stack Libnvmm, eseguito nello spazio utente. L'interazione tra i componenti del kernel e dello spazio utente avviene tramite IOCTL. Una caratteristica di NVMM che lo distingue da hypervisor come KVM, HAXM e Bhyve, è che nel kernel viene eseguito solo il set minimo necessario di interfacce attorno ai meccanismi hardware di virtualizzazione, mentre tutto il codice di emulazione dell'hardware è spostato dallo spazio del kernel a quello utente. Questo approccio consente di ridurre la quantità di codice eseguito con privilegi elevati e diminuire il rischio di compromissione dell'intero sistema in caso di attacchi su vulnerabilità nell'hypervisor. Inoltre, semplifica notevolmente il debug e i test di fuzzing del progetto.

Tuttavia, Libnvmm non include di per sé la funzione di emulatore, ma fornisce solo un'API che consente di integrare il supporto per NVMM in emulatori esistenti, come QEMU. L'API copre funzioni come la creazione e l'avvio di una macchina virtuale, l'assegnazione di memoria al sistema operativo ospite, la distribuzione delle VCPU. Per aumentare la sicurezza e ridurre i potenziali vettori di attacco, libnvmm fornisce solo le funzioni esplicitamente richieste: per impostazione predefinita, gestori complessi non vengono chiamati automaticamente e possono anche non essere utilizzati se non necessari. NVMM cerca di utilizzare soluzioni semplici, evitando complicazioni e permettendo di controllare il maggior numero possibile di aspetti operativi.

Il progetto NetBSD sviluppa un nuovo hypervisor NVMM

La parte di NVMM che opera a livello del kernel è integrata in modo piuttosto approfondito con il kernel di NetBSD e consente di aumentare le prestazioni riducendo il numero di commutazioni di contesto tra il sistema operativo ospite e l'ambiente host. Sul lato dello spazio utente, libnvmm cerca di aggregare le operazioni di input-output comuni senza dover ricorrere a chiamate di sistema. Il sistema di gestione della memoria è basato sul sottosistema pmap, che consente di trasferire le pagine di memoria dei sistemi ospiti nello swap in caso di mancanza di memoria nel sistema. NVMM è privo di lock globali e scalabile, consentendo l'uso simultaneo di diversi core CPU per eseguire macchine virtuali ospiti diverse.

È stata preparata una soluzione basata su QEMU che utilizza NVMM per sfruttare i meccanismi di virtualizzazione hardware. Si stanno sviluppando patch per integrarle nel core di QEMU. La combinazione QEMU+NVMM è già consente in grado di avviare con successo sistemi ospiti con FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 e altri sistemi operativi su macchine x86_64 con processori AMD e Intel (NVMM stesso non è legato a un'architettura specifica, ad esempio, può funzionare su sistemi ARM64 creando un backend appropriato). Tra i futuri ambiti di applicazione, NVMM viene considerato anche per l'isolamento in sandbox di applicazioni specifiche.

Il progetto NetBSD sviluppa un nuovo hypervisor NVMM

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster