【问题标题】:How to determine virtual machine type from guest OS X from C++?如何从 C++ 确定来宾 OS X 的虚拟机类型?
【发布时间】:2026-01-08 07:15:01
【问题描述】:

如何从来宾 OS X 中确定虚拟机类型?

设置如下。 主机操作系统是 OS X,客户操作系统也是 OS X。 以及以下虚拟机之一 VMware Fusion、Parallels 或 Virtual Box。

是否可以通过 C++ 代码以编程方式检测虚拟机类型?

我只有 VMware Fusion 的解决方案。 cpuid 汇编程序命令返回 CPU 供应商的 VMwareVMware 字符串。所以很容易。

但是 Parallels 和 Virtual Box 呢? 我完全不知道。

【问题讨论】:

    标签: macos virtual-machine virtualbox parallels vmware-fusion


    【解决方案1】:

    我并行运行 ubuntu,许多设备报告为由 Parallels, Inc. 制造。例如:

    user@ubuntu:~$ lspci | grep Parallels
    00:03.0 Unassigned class [ff00]: Parallels, Inc. Virtual Machine Communication Interface
    01:00.0 VGA compatible controller: Parallels, Inc. Accelerated Virtual Video Adapter
    

    在 OS X 中,system_profiler 命令会返回大量有关您系统的信息。我没有虚拟机来测试这个,但我猜是

    system_profiler | grep Parallels
    

    会让你走上正轨。

    【讨论】:

    • 是的。 system_profiler -detailLevelFull 返回包含大量信息的庞大报告。明天我将在 Parallels 环境中检查它。但实际上我想从 C++ 代码中以编程方式获取他的信息。我检查了 opensource.apple.com。不幸的是没有system_profiler源代码((
    最近更新 更多