![Ryzen 上的 KVM:客户操作系统能否分辨出与英特尔 CPU 的区别?](https://linux22.com/image/1529291/Ryzen%20%E4%B8%8A%E7%9A%84%20KVM%EF%BC%9A%E5%AE%A2%E6%88%B7%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E8%83%BD%E5%90%A6%E5%88%86%E8%BE%A8%E5%87%BA%E4%B8%8E%E8%8B%B1%E7%89%B9%E5%B0%94%20CPU%20%E7%9A%84%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
假设我有一个 x86 操作系统,它在开发时并未考虑 Ryzen CPU,也没有针对它们进行测试。它有可能在 Ryzen 机器上的 KVM 中运行吗?
我猜 AMD CPU 的指令集与 Intel 略有不同,但大多数指令应该一一对应?既然如此,KVM 是否有能力模拟不同的指令,同时“传递” Zen 原生的指令?
答案1
根据我的调查,Ryzen Zen微架构支持以下指令集:
x86-64、MMX、SSE1 至 SSE4.2、AES、CLMUL、AVX、AVX2、FMA3、CVT16、F16C、ABM、BMI1、BMI2、SHA
任何经过编译以利用这些指令集的应用程序都可以使用它们。
至于能够分辨出你正在使用哪种 CPU,是的,它可以……但前提是它愿意,即开发人员插入了适当的代码。让我告诉你,这样的代码被归类为“奥秘”。