특정 CPU가 있는 VM

특정 CPU가 있는 VM

특정 명령어 세트만 지원하는 특정 CPU를 사용하여 VM을 생성할 수 있습니까?

예를 들어, AVX 또는 SSE 명령을 지원하지 않는 CPU가 있는 머신에서 작업을 시도하고 싶습니다. AVX 또는 SSE를 지원하지 않는 CPU로 VM을 생성할 수 있습니까?

답변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 값을 얻는 방법은 귀하에게 달려 있으며, 아마도 CPU 공급업체의 명령어 세트 아키텍처 매뉴얼을 참조해야 할 것입니다.

기능을 에뮬레이션하려면 에뮬레이터를 사용해야 합니다. QEMU는 가상화와 전체 에뮬레이션을 모두 수행할 수 있습니다. 또한 x86/x64 이외의 많은 CPU 아키텍처도 지원합니다.

답변2

VMware 문서에는 "CPUID 마스크"가 언급되어 있지만 그것이 얼마나 구성 가능한지는 모르겠습니다.

다른 VMM을 실험하려는 경우 QEMU는 명령줄에서 CPUID 플래그를 활성화 및 비활성화할 수 있습니다. 예를 들어 qemu-system-i386 -cpu n270,fpu=offn270의 기능을 포함하지만 fpu 플래그가 비활성화된 가상 CPU로 연결됩니다. 지원되는 CPU 모델 및 CPUID 플래그의 전체 목록은 에 있습니다 qemu-system-i386 -cpu help.

관련 정보