Ответ Бен Н, безусловно, самый полезный и понятный.
Для тех, кто все еще задается вопросом, однако, вот полная история.
Виртуализация достигается с помощью аппаратного обеспечения от процессора. Поскольку виртуализированная ОС будет мешать хост-системе, поскольку они конкурируют за одни и те же ресурсы, необходим механизм, позволяющий запретить гостю иметь неконтролируемый доступ к оборудованию.
Это может быть связано с программным обеспечением, медленной техникой или с помощью процессора.
Аппаратная виртуализация реализована с помощью специальных дополнительных инструкций, о которых вы можете прочитать в главах 23, 24, 25, 26, 27 и 28 Руководства Intel 3B, часть 3.
Программное обеспечение должно сначала проверить, поддерживаются ли эти инструкции, прежде чем пытаться их использовать.
По соображениям безопасности ЦП имеет специальный регистр, это MSR, называемый IA32_FEATURE_CONTROL, который содержит биты, сообщающие с возможностью включения или выключения.
квотирование
Бит 0 является битом блокировки. Если этот бит сброшен, VMXON вызывает исключение общей защиты. Если бит блокировки установлен, WRMSR для этого MSR вызывает исключение общей защиты; MSR не может быть изменен до состояния сброса при включении питания. Системный BIOS может использовать этот бит для настройки BIOS, чтобы отключить поддержку VMX. Чтобы включить поддержку VMX на платформе, BIOS должен установить бит 1, бит 2 или оба (см. Ниже), а также бит блокировки.
Принципиальным моментом является то, что, как только регистр заблокирован, он не может быть разблокирован до включения питания.
Поскольку на первом месте стоит BIOS/UEFI, он может отключить виртуализацию, очистив соответствующие биты и заблокировав регистр, прежде чем любая ОС сможет это предотвратить.
Когда функция виртуализации отключена таким образом, ЦП сообщает, что отсутствует дополнительное расширение инструкции (и фактически происходит сбой, если они используются), и поэтому программное обеспечение не может использовать аппаратную виртуализацию.