El projecte NetBSD està desenvolupant un nou hipervisor NVMM

Desenvolupadors de projectes NetBSD va anunciar sobre la creació d'un nou hipervisor i la pila de virtualització associada, que ja s'inclouen a la branca actual de NetBSD experimental i s'oferiran a la versió estable de NetBSD 9. Actualment, NVMM es limita a donar suport a l'arquitectura x86_64 i proporciona dos backends per a activació de mecanismes de virtualització de maquinari: x86-SVM amb suport per a les extensions de virtualització de CPU AMD i x86-VMX per a CPU Intel. En la seva forma actual, és possible executar fins a 128 màquines virtuals en un amfitrió, cadascuna de les quals es pot assignar fins a 256 nuclis de processador virtual (VCPU) i 128 GB de RAM.

NVMM inclou un controlador que s'executa al nivell del nucli del sistema i coordina l'accés als mecanismes de virtualització de maquinari i una pila Libnvmm que s'executa a l'espai d'usuari. La interacció entre els components del nucli i l'espai d'usuari es realitza mitjançant IOCTL. Una característica de NVMM que el distingeix dels hipervisors com KVM és HAXM i Bhyve, és que a nivell del nucli només es realitza el conjunt mínim d'enllaços requerits al voltant dels mecanismes de virtualització de maquinari i tot el codi d'emulació de maquinari es mou fora del nucli a l'espai d'usuari. Aquest enfocament permet reduir la quantitat de codi executat amb privilegis elevats i reduir el risc de comprometre tot el sistema en cas d'atac a vulnerabilitats a l'hipervisor. A més, les proves de depuració i fuzzing del projecte es simplifiquen notablement.

Tanmateix, el propi Libnvmm no conté funcions d'emulador, sinó que només proporciona una API que us permet integrar el suport NVMM als emuladors existents, per exemple, QEMU. L'API cobreix funcions com ara crear i llançar una màquina virtual, assignar memòria al sistema convidat i assignar VCPU. Per millorar la seguretat i reduir els possibles vectors d'atac, libnvmm només proporciona funcions que es demanen explícitament; per defecte, els controladors complexos no es criden automàticament i poden no utilitzar-se en absolut si es poden evitar. NVMM intenta que les coses siguin senzilles, sense complicar-se massa, i permetent controlar tants aspectes del vostre treball com sigui possible.

El projecte NetBSD està desenvolupant un nou hipervisor NVMM

La part del nivell del nucli de NVMM està força integrada amb el nucli NetBSD i permet millorar el rendiment reduint el nombre de canvis de context entre el sistema operatiu convidat i l'entorn amfitrió. Pel que fa a l'espai d'usuari, libnvmm intenta agregar les operacions d'E/S comunes i evitar fer trucades al sistema innecessàriament. El sistema d'assignació de memòria es basa en el subsistema pmap, que us permet desallotjar pàgines de memòria convidada a la partició d'intercanvi en cas d'escassetat de memòria al sistema. NVMM està lliure de bloquejos i escala globals, la qual cosa us permet utilitzar simultàniament diferents nuclis de CPU per executar diferents màquines virtuals convidades.

S'ha preparat una solució basada en QEMU que utilitza NVMM per habilitar mecanismes de virtualització de maquinari. S'està treballant per incloure els pedaços preparats a l'estructura principal de QEMU. La combinació QEMU+NVMM ja està permet executar correctament sistemes convidats amb FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 i altres sistemes operatius en sistemes x86_64 amb processadors AMD i Intel (el mateix NVMM no està lligat a una arquitectura específica, per exemple, si es crea el backend adequat , podrà funcionar amb sistemes ARM64 ). Entre les àrees d'aplicació posterior de NVMM, també s'observa l'aïllament sandbox d'aplicacions individuals.

El projecte NetBSD està desenvolupant un nou hipervisor NVMM

Font: opennet.ru

Afegeix comentari