VM com uma CPU específica

VM com uma CPU específica

É possível criar uma VM com uma CPU específica que suporte apenas um conjunto de instruções específico.

Por exemplo, quero tentar algo em uma máquina que possui uma CPU que não suporta instruções AVX ou SSE. É possível criar uma VM com uma CPU que não possui suporte a AVX ou SSE?

Responder1

Tipo de. VMware e VirtualBox não suportam emulação, apenas virtualização. Então isso significa que você não podeadicionarcaracterísticas. No entanto, a remoção de recursos não deve representar um problema.

Este artigotem alguns detalhes sobre como falsificar o CPUID conforme relatado ao convidado. Tenha em mente que isso realmente não desativa nenhum recurso.

Instruções para produtos VMware (cotação):

Use o editor (por exemplo, bloco de notas) abra o arquivo de configuração da máquina virtual (.vmx)
Adicionando as seguintes linhas:

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

Se o CPUID ainda não for alterado ou for inválido, tente adicionar:

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

Salve o arquivo de configuração e inicie sua máquina virtual.

Instruções para VirtualBox (citação):

Abra o prompt de comando e mude para o diretório de trabalho do VirtualBox.
Execute o seguinte comando para alterar o CPUID.

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

Inicie sua máquina virtual.

Como você obtém esses valores de CPUID depende de você. Provavelmente, você precisará consultar o manual de arquitetura do conjunto de instruções do fornecedor da CPU.

Se quiser emular recursos, você precisará usar um emulador. QEMU pode fazer virtualização e emulação completa. Ele também oferece suporte a muitas arquiteturas de CPU diferentes de x86/x64.

Responder2

A documentação da VMware menciona uma "máscara CPUID", mas não sei até que ponto isso é configurável.

Se você estiver disposto a experimentar outros VMMs, o QEMU pode ativar e desativar sinalizadores CPUID na linha de comando. Por exemplo, qemu-system-i386 -cpu n270,fpu=offleva a uma CPU virtual com os recursos de um n270, mas com o sinalizador fpu desabilitado. Há uma lista completa de modelos de CPU suportados e sinalizadores de CPUID em qemu-system-i386 -cpu help.

informação relacionada