La réponse de Ben N est clairement la plus utile et la plus claire.
Pour ceux qui se demandent encore, voici cependant toute l'histoire.
La virtualisation est réalisée avec l'assistance matérielle du CPU. Puisqu'un système d'exploitation virtualisé interférerait avec celui de l'hôte, car ils se disputent les mêmes ressources, un mécanisme est nécessaire pour empêcher l'invité d'avoir un accès incontrôlé au matériel. Cela peut être dû à un logiciel, à des techniques lentes ou à l'aide du processeur.
La virtualisation assistée par matériel est implémentée avec des instructions spécifiques et facultatives , vous pouvez en lire plus dans les chapitres 23, 24, 25, 26, 27 et 28 du manuel Intel 3B, partie 3 . Le logiciel doit d'abord vérifier que ces instructions sont prises en charge, avant de tenter de les utiliser.
Pour des raisons de sécurité, le CPU a un registre spécial, c'est un MSR , appelé IA32_FEATURE_CONTROL qui contient des bits indiquant avec une fonctionnalité à activer ou désactiver.
Citant
Le bit 0 est le bit de verrouillage. Si ce bit est clair, VMXON provoque une exception de protection générale. Si le bit de verrouillage est défini, WRMSR à ce MSR provoque une exception de protection générale; le MSR ne peut pas être modifié avant une condition de réinitialisation à la mise sous tension . Le BIOS système peut utiliser ce bit pour fournir une option de configuration permettant au BIOS de désactiver la prise en charge de VMX. Pour activer la prise en charge VMX dans une plate-forme, le BIOS doit définir le bit 1, le bit 2 ou les deux (voir ci-dessous), ainsi que le bit de verrouillage.
Le point fondamental est qu'une fois le registre verrouillé, il ne peut pas être déverrouillé avant la mise sous tension .
Étant donné que le BIOS / UEFI vient en premier, il a le pouvoir de désactiver la virtualisation en effaçant les bits appropriés et en verrouillant le registre avant qu'un système d'exploitation puisse empêcher cela. Lorsque la fonctionnalité de virtualisation est désactivée de cette façon, le processeur signale que l'extension d'instruction facultative est manquante (et en fait si elle est utilisée) et le logiciel ne peut donc pas utiliser la virtualisation matérielle.