第三世代Intel CoreでAthlon XPまたはPentium IVプロセッサをエミュレートできるといいのですが。特に仮想マシンで実行する方法がある無効)新しいCPU機能を同じようにsse2
sse3
?およびb)CPU キャッシュ?
Qemu / KVMを使用しています。私がそれを起動する方法は、ゲストOSに対するCPU命令を隠しているだけです。ゲストOSのアプリケーションはまだホストマシンの新しいものにアクセスできます。
ホスト
$ 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は、Athlon XPのようなsse2が欠けているCPUでは実行されません(「不正な命令」を生成します)。意味sse2は、ゲストOSで完全に利用可能です。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()
VMをで実行すると、同じことが起こります-cpu athlon,sse2=off
。たとえば、コア数、プロセッサ速度(を使用cpulimit
)、またはI / O機能(qemuのスロットルパラメーターを使用)などを合理的に管理できますが、ゲストが使用できるCPU命令セットを制限することはできませんか?
1
プログラムがこれらの拡張機能を使用している場合、それを隠すと、それらのアプリケーションを実行する必要があります
—
-Ramhound
@Ramhoundええ、それがポイントです。vmで(非表示とは異なり)それらを無効にすると、ターゲットCPUでサポートされていないCPU機能を必要とするアプリケーションを検出できます。そして、代替案(例えば、sseのみのビルド)を見つけます。CPU命令の限られたセットでアプリケーションの動作のアイデアを得ることができます。
—
tuk0z