0

需要一个 Linux 应用程序来检测它是否在虚拟机(如 VMware ESX/ESXi、Xen、Oracle Virtualbox、Microsoft 虚拟服务器等)中执行。根据此检测的结果,需要强制执行一些软件许可规则。

我知道有一些用于许可的商业软件库/框架可以执行此类检测,但由于多种原因,我们需要自行开发。

有哪些方法和手段可以实现这种检测?

4

1 回答 1

1

对于现代硬件加速 (VT-x) 管理程序(VMware、VirtualBox、KVM/QEmu),它们都设置了“管理程序”CPUID 位,从 Linux 中读取该位非常简单。打开文件 /proc/cpuinfo,并在标志行中查找“管理程序”。

虽然不是100%。基于软件的管理程序(Bochs 等)不会设置它,并且该位未强制执行,因此可以修改 QEmu 以不设置该位。但是,它可能足以满足您的使用需求。

于 2013-04-02T05:39:39.537 回答