ВМ с определенным ЦП

ВМ с определенным ЦП

Возможно ли создать виртуальную машину с определенным процессором, поддерживающим только определенный набор инструкций?

Например, я хочу попробовать что-то на машине с ЦП, который не поддерживает инструкции AVX или SSE. Возможно ли создать виртуальную машину с ЦП, который не поддерживает инструкции AVX или SSE?

решение1

Вроде того. VMware и VirtualBox не поддерживают эмуляцию, только виртуализацию. Так что это значит, что вы не можетедобавлятьфункции. Однако удаление функций не должно вызывать проблем.

Эта статьяесть некоторые подробности о том, как подделать CPUID, сообщаемый гостю. Имейте в виду, что это на самом деле не отключает никаких функций.

Инструкции для продуктов VMware (цитата):

С помощью редактора (например, Блокнота) откройте файл конфигурации виртуальной машины (.vmx).
Добавьте следующие строки:

cpuid.1.eax = "00000000000000110100011010101001"
cpuid.1.edx = "10111111111010111111101111111011"

Если CPUID по-прежнему не изменился или недействителен, попробуйте добавить:

cpuid.1.ebx = "00000000000000110100011010101001"
cpuid.1.ecx = "10111111111010111111101111111011"

Сохраните файл конфигурации и запустите виртуальную машину.

Инструкция для VirtualBox (цитата):

Откройте командную строку и перейдите в рабочий каталог VirtualBox.
Выполните следующую команду, чтобы изменить CPUID.

vboxmanage modifyvm  --cpuidset 1 000306a9 00100800 3d9ae3bf bfebfbff

Запустите виртуальную машину.

Как получить эти значения CPUID, решать вам, возможно, придется обратиться к руководству по архитектуре набора инструкций поставщика вашего процессора.

Если вы хотите эмулировать функции, вам понадобится эмулятор. QEMU может выполнять как виртуализацию, так и полную эмуляцию. Он также поддерживает множество архитектур ЦП, отличных от x86/x64.

решение2

В документации VMware упоминается «маска CPUID», но я не знаю, насколько ее можно настроить.

Если вы готовы поэкспериментировать с другими VMM, QEMU может включать и отключать флаги CPUID в командной строке. Например, qemu-system-i386 -cpu n270,fpu=offприводит к виртуальному CPU с функциями n270, но с отключенным флагом fpu. Полный список поддерживаемых моделей CPU и флагов CPUID можно найти по адресу qemu-system-i386 -cpu help.

Связанный контент