Как определить тип виртуальной машины из гостевой OS X из C++?

Как определить тип виртуальной машины из гостевой OS X?

Установка следующая. Хостовая операционная система — OS X, гостевая операционная система — тоже OS X. И одна из следующих виртуальных машин VMware Fusion, Parallels или Virtual Box.

Можно ли программно определить тип виртуальной машины из кода C++?

У меня есть решение только для VMware Fusion. Команда ассемблера cpuid возвращает строку VMwareVMware для поставщика процессора. Так что это было легко.

А как насчет Parallels и Virtual Box? Я понятия не имею.


person Vlad    schedule 12.02.2015    source источник


Ответы (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

поставит вас на правильный путь.

person flangford    schedule 12.02.2015
comment
да. system_profiler -detailLevelFull возвращает огромный отчет с большим количеством информации. Завтра проверю в среде Parallels. Но на самом деле я хотел бы получить его информацию программно из кода C++. Я проверил opensource.apple.com. К сожалению не было исходников system_profiler(( - person Vlad; 12.02.2015