Développeurs du projet NetBSD
NVMM comprend un pilote qui s'exécute au niveau du noyau du système et coordonne l'accès aux mécanismes de virtualisation matérielle, ainsi qu'une pile Libnvmm qui s'exécute dans l'espace utilisateur. L'interaction entre les composants du noyau et l'espace utilisateur s'effectue via IOCTL. Une fonctionnalité de NVMM qui le distingue des hyperviseurs tels que KVM est
Cependant, Libnvmm lui-même ne contient pas de fonctions d'émulateur, mais fournit uniquement une API qui vous permet d'intégrer la prise en charge de NVMM dans les émulateurs existants, par exemple QEMU. L'API couvre des fonctions telles que la création et le lancement d'une machine virtuelle, l'allocation de mémoire au système invité et l'allocation de VCPU. Pour améliorer la sécurité et réduire les vecteurs d'attaque possibles, libnvmm fournit uniquement les fonctions explicitement demandées : par défaut, les gestionnaires complexes ne sont pas appelés automatiquement et ne peuvent pas être utilisés du tout s'ils peuvent être évités. NVMM essaie de garder les choses simples, sans devenir trop compliquées, et vous permettant de contrôler autant d'aspects de votre travail que possible.
La partie au niveau du noyau de NVMM est assez étroitement intégrée au noyau NetBSD et permet d'améliorer les performances en réduisant le nombre de changements de contexte entre le système d'exploitation invité et l'environnement hôte. Du côté de l'espace utilisateur, libnvmm essaie d'agréger les opérations d'E/S courantes et d'éviter de faire des appels système inutilement. Le système d'allocation de mémoire est basé sur le sous-système pmap, qui vous permet d'expulser les pages de mémoire invité vers la partition d'échange en cas de manque de mémoire dans le système. NVMM est exempt de verrous globaux et évolue bien, vous permettant d'utiliser simultanément différents cœurs de processeur pour exécuter différentes machines virtuelles invitées.
Une solution basée sur QEMU a été préparée qui utilise NVMM pour activer les mécanismes de virtualisation matérielle. Des travaux sont en cours pour inclure les correctifs préparés dans la structure principale de QEMU. La combinaison QEMU+NVMM est déjà
Source: opennet.ru