Il progetto NetBSD sviluppa un nuovo hypervisor NVMM

Sviluppatori del progetto NetBSD hanno annunciato sulla creazione di un nuovo hypervisor e del relativo stack di virtualizzazione, già inclusi nella branch sperimentale di NetBSD-current e proposti per il rilascio stabile di 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 delle CPU AMD e x86-VMX per CPU Intel. Nella configurazione attuale, è possibile eseguire fino a 128 macchine virtuali su un singolo host, ognuna delle quali può avere assegnati fino a 256 core di processore virtuale (VCPU) e 128 GB di RAM.

NVMM include un driver che opera a livello del kernel del sistema e coordina l'accesso ai meccanismi hardware di virtualizzazione, oltre al stack Libnvmm, eseguito nello spazio utente. L'interazione tra i componenti del kernel e dello spazio utente avviene tramite IOCTL. Una caratteristica che distingue NVMM da hypervisor come KVM, HAXM Bhyve rappresenta un approccio in cui solo un set minimo di interfacce attorno ai meccanismi hardware di virtualizzazione viene eseguito a livello di kernel, mentre tutto il codice di emulazione dell'hardware è spostato nello spazio utente. Questo metodo consente di ridurre il volume di codice che opera con privilegi elevati, diminuendo così il rischio di compromissione dell'intero sistema in caso di attacchi a vulnerabilità nel hypervisor. Inoltre, semplifica notevolmente il debugging e il fuzzing del progetto.

Libnvmm, di per sé, non include funzioni di emulazione, ma offre un API che consente di integrare il supporto NVMM in emulatori esistenti, come QEMU. L'API copre funzioni come la creazione e l'avvio di macchine virtuali, l'allocazione di memoria per il sistema ospite e la distribuzione di VCPU. Per migliorare la sicurezza e ridurre potenziali vettori di attacco, libnvmm offre solo funzioni esplicitamente richieste: di default, le funzioni complesse non vengono richiamate automaticamente e possono anche non essere utilizzate se non necessarie. NVMM cerca di adottare soluzioni semplici, evitando complicazioni e permettendo il controllo su quanti più aspetti possibili del funzionamento.

Il progetto NetBSD sviluppa un nuovo hypervisor NVMM

La parte di NVMM basata a livello di kernel è integrata in modo sufficientemente stretto con il kernel di NetBSD, permettendo un aumento delle prestazioni grazie alla riduzione del numero di cambi di contesto tra il sistema operativo ospite e l'ambiente host. Sul lato dello spazio utente, libnvmm cerca di aggregare le operazioni tipiche di input-output e di non effettuare chiamate di sistema senza necessità. Il sistema di gestione della memoria si basa sul sottosistema pmap, consentendo l'espulsione delle pagine di memoria dei sistemi ospiti nello swap in caso di insufficienza di memoria nel sistema. NVMM è privo di blocchi globali e si scala bene, permettendo l'uso simultaneo di diversi core CPU per eseguire macchine virtuali ospiti diverse.

Sulla base di QEMU, è stata preparata una soluzione che utilizza NVMM per attivare i meccanismi di virtualizzazione hardware. Sono in corso lavori per includere le patch preparate nella distribuzione principale di QEMU. La combinazione QEMU+NVMM è già permette viene avviato con successo sistemi guest su FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 e altri sistemi operativi su architetture x86_64 con processori AMD e Intel (il sistema NVMM non è legato a un'architettura specifica, ad esempio, creando il relativo backend, può funzionare su sistemi ARM64). Un'area di applicazione futura per NVMM è anche l'isolamento sandbox di singole applicazioni.

Il progetto NetBSD sviluppa un nuovo hypervisor NVMM

Fonte: opennet.ru

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