Как проверить, установлен ли бит присутствия гипервизора с помощью CPUID

В настоящее время у меня проблемы с определением, установлен ли бит гипервизора (31 бит) в значение true, используя CPUID в командной строке.

Я использую следующую команду cpuid -1 -r для получения шестнадцатеричных данных, как показано на скриншоте ниже.

Я не знаю, как точно получить битовое значение гипервизора из этого списка шестнадцатеричных значений.

Мы будем благодарны за любую помощь в решении этой проблемы.

enter image description here

0
09.03.2017, 00:50
1 ответ

Я бы просто использовал текстовое представление, заданное по умолчанию cpuid :

cpuid -1 | grep 'hypervisor guest status'

Если вы действительно хотите использовать необработанные значения, вам нужно отфильтровать CPUID # 1, а затем проверить, что ECX больше или равно 0x80000000:

cpuid -1 -r | grep '^   0x00000001.*ecx=0x[89a-f]'

Если это дает результат, бит установлен, в противном случае - нет; вы также можете использовать статус выхода grep .

1
28.01.2020, 02:46

Теги

Похожие вопросы