如何查找我的操作系统是在虚拟化还是非虚拟化环境中运行?

时间:2013-01-20 18:51:59

标签: linux virtualization virtual-machine paravirtualization

我可以访问我可以使用ssh的机器。如何确定我的操作系统是在完全虚拟化(VMM进行二进制转换),半虚拟化还是非虚拟化环境中运行?我知道如何去做(一些操作,如访问内存页面/磁盘在虚拟化环境中需要更长的时间),但不知道如何继续。

1 个答案:

答案 0 :(得分:2)

这取决于您运行的VMM。如果是Xen或Microsoft VM,我相信CPUID EAX值为0x40000000将在EAX中为您提供非零值。不确定它是否适用于VMWare,VirtualBox或KVM。我希望它也会在那里工作......

测量访问时间不太可能总是向您显示真相,因为在非VM系统中,这些可能会有很大差异,并且没有真正的理由让您看到有效实施方面的巨大差异。当然,您不知道您的VM是否正在运行通过PCI传递的REAL硬盘控制器,或者您的NFS安装的磁盘是通过传递到VM的REAL网卡连接的,还是它们是通过虚拟网卡访问。

只要应用程序本身就是一个好的VMM,就不应该给你带来太大的差异。