Desenvolvedores de proxectos NetBSD
NVMM inclúe un controlador que se executa a nivel do núcleo do sistema e coordina o acceso aos mecanismos de virtualización de hardware e unha pila Libnvmm que se executa no espazo do usuario. A interacción entre os compoñentes do núcleo e o espazo do usuario realízase a través de IOCTL. Unha característica de NVMM que o distingue de hipervisores como KVM é
Non obstante, Libnvmm en si non contén funcións de emulador, senón que só proporciona unha API que che permite integrar o soporte de NVMM nos emuladores existentes, por exemplo, QEMU. A API abrangue funcións como crear e lanzar unha máquina virtual, asignar memoria ao sistema invitado e asignar VCPU. Para mellorar a seguridade e reducir os posibles vectores de ataque, libnvmm ofrece só funcións que se solicitan explícitamente; por defecto, os controladores complexos non se chaman automaticamente e poden non usarse en absoluto se se poden evitar. NVMM tenta que as cousas sexan sinxelas, sen complicarse demasiado, e permitíndoche controlar tantos aspectos do teu traballo como sexa posible.
A parte de NVMM a nivel de núcleo está bastante integrada co núcleo de NetBSD e permite mellorar o rendemento ao reducir o número de cambios de contexto entre o sistema operativo convidado e o ambiente host. No lado do espazo do usuario, libnvmm tenta agregar operacións de E/S comúns e evitar facer chamadas ao sistema innecesariamente. O sistema de asignación de memoria baséase no subsistema pmap, que lle permite expulsar páxinas de memoria de hóspedes á partición de intercambio en caso de escaseza de memoria no sistema. NVMM está libre de bloqueos globais e escala ben, o que lle permite usar simultáneamente diferentes núcleos de CPU para executar diferentes máquinas virtuais convidadas.
Preparouse unha solución baseada en QEMU que utiliza NVMM para habilitar mecanismos de virtualización de hardware. Estase traballando para incluír os parches preparados na estrutura principal de QEMU. A combinación QEMU+NVMM xa está
Fonte: opennet.ru