Хотел бы я подражать процессору Athlon XP или Pentium IV на Intel Core третьего поколения. Есть ли способ запустить виртуальную машину, которая специально отключает а) новые функции процессора, такие как sse2
sse3
? и б) кеш процессора?
Я использую Qemu/KVM. То, как я его запускаю, скрывает только вторжения ЦП в гостевую ОС, чьи приложения по-прежнему имеют доступ к более новым версиям хост-машины:
хозяин
$ qemu-system-i386 -cpu pentium3,enforce (...) -enable-kvm
гость
$ inxi -f
CPU: Single core Pentium III (Katmai) (-UP-) cache: 16384 KB speed: 3292 MHz (max)
CPU Flags: apic cmov cx8 de fpu fxsr hypervisor mca mce mmx msr mtrr pae pge pse
pse36 sep sse tsc x2apic
$ firefox # v.54 which requires sse2;
Работает просто отлично, как и Palemoon и mpv, которые не будут работать на процессоре без sse2, как Athlon XP (выдает «незаконную инструкцию»). Значение sse2 определенно доступно для гостевой ОС. Только приложения, которые проверяют CPUID, терпят неудачу, например:
$ chromium-browser
# (...)
# Fatal error in ../../v8/src/ia32/assembler-ia32.cc, line 109
# Check failed: cpu.has_sse2().
#
#0 0x0000b40b9f0a base::debug::StackTrace::StackTrace()
То же самое происходит, когда я запускаю виртуальную машину с параметром -cpu athlon,sse2=off
. Таким образом , в то время как мы можем взять reasonnable ухода , например , число ядра, скорость процессора ( с использованием cpulimit
или возможности ввода / вывода (с помощью QEmu в дроссельном параметре), мы не можем ограничивать инструкции центрального процессора набора доступны для гостей, мы можем ?