是否可以使用仅支持特定指令集的特定CPU创建VM。
例如,我想在具有不支持AVX或SSE指令的CPU的机器上尝试某些东西,是否可以使用没有AVX或SSE支持的CPU创建VM?
这是针对您没有源代码的程序(因此在构建期间不能排除这些功能的使用)?
—
RonJohn
是否可以使用仅支持特定指令集的特定CPU创建VM。
例如,我想在具有不支持AVX或SSE指令的CPU的机器上尝试某些东西,是否可以使用没有AVX或SSE支持的CPU创建VM?
Answers:
VMware文档提到了“CPUID Mask”,但我不知道它是如何配置的。
如果您愿意尝试其他VMM,QEMU可以在命令行启用和禁用CPUID标志。例如,qemu-system-i386 -cpu n270,fpu=off
导致虚拟CPU具有n270的功能但禁用了fpu标志。有一个支持的CPU型号和CPUID标志的完整列表qemu-system-i386 -cpu help
。
有点。VMware和VirtualBox不支持仿真,只支持虚拟化。这意味着您无法添加功能。但是,删除功能不应该成为问题。
本文提供了有关如何伪造报告给guest虚拟机的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值取决于您,您可能需要查阅CPU供应商的指令集架构手册。
如果要模拟功能,则需要使用模拟器。QEMU可以同时进行虚拟化和完全仿真。它还支持除x86 / x64之外的许多CPU架构。