Почему системы обычно отключают виртуализацию по умолчанию в настройках BIOS?

81

Мне еще предстоит увидеть систему, конфигурация которой по умолчанию включает MMU и направленную виртуализацию ввода / вывода. Часто это требует перезагрузки и входа в BIOS, чтобы включить его, если вы хотите, например, 64-битную поддержку на ваших виртуальных машинах.

Существуют ли какие-либо существенные накладные расходы процессора, если они включены, и вы не используете виртуализацию? Если нет, то в чем причина его отключения по умолчанию?

Джон Феминелла
источник

Ответы:

52

Некоторое время назад было несколько руткитов с проверкой концепции, таких как Blue Pill , которые могли владеть системой с включенным VT. После этого открытия большинство поставщиков начали отправлять свои устройства с отключенным VT в качестве общей меры безопасности.

MDMarra
источник
7
+1 Люди, использующие VT на настольном компьютере / ноутбуке, являются исключением. То, что машина восприимчива к virii, является правилом.
Крис С
У меня неожиданно возникли мысли об этой новой блестящей мощной машине разработчика, на которой запущено несколько виртуальных машин с включенной аппаратной виртуализацией. Мне не нужна виртуализация, но я полагаю, что в долгосрочной перспективе это сэкономит мне время, не требуя повторять ее каждые пару месяцев. Насколько большая проблема это?
Paperjam
2
Фактически не существует (по состоянию на этот комментарий). Синяя Таблетка была доказательством концепции. Я не знаю ничего подобного в дикой природе.
MDMarra
1
Вот оценка Майкрософт проблемы безопасности, включая рекомендацию по умолчанию отключать VT в системах ролей клиента: msdn.microsoft.com/en-us/windows/hardware/gg463498.aspx
Jpsy
3
Документ Microsoft больше не доступен на их веб-сайте, но вы можете прочитать его в интернет-архиве, если хотите.
Джош Келли
5

На всех купленных нами блейд-серверах виртуализация включена по умолчанию. Это может быть связано с тем, что наш поставщик принял коммерческое решение, чтобы сэкономить на большом количестве обращений в службу поддержки.

Он не отключается из-за попадания процессора, но зависит от того, для чего он используется. По умолчанию он может быть отключен, поскольку включение этих функций может повлиять на доступ к периферии.

Sirch
источник
4
На какой периферийный доступ это может повлиять? Я никогда не слышал этого раньше.
MDMarra
Вы говорите о VT-d, когда упомянули периферийный доступ?
Зоредаче
Нет, это был MMU ... Я помню, как кто-то недавно обсуждал это. Что-то связанное с Rasberry Pi.
Sirch
2

Обратите внимание, что в соответствии с этим другим потоком, это также, похоже, оказывает некоторое влияние на производительность https://superuser.com/questions/545101/why-does-hp-recommend-that-i-keep-hardware-virtualization-off

Мне это кажется актуальным, поскольку сокращенный набор инструкций более эффективен. Я просто не подумал бы, что изменение опции BIOS может напрямую повлиять на это.

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

Balmipour
источник
2
Угол эффективности из связанного ответа не имеет смысла. Кэш инструкций содержит инструкции программы. Если программа не использует инструкции по виртуализации, тогда этот кеш не влияет. Кроме того, нет сообщения о том, что существует отдельный исполнительный модуль, который обрабатывает виртуализацию, или часть декодера команд, которую можно обойти, поэтому не должно быть разницы в эффективности в любом случае.
Нимрод
1

Другая причина заключается в том, что большинство функций ядра пользователя (например, gettimeofday) перемещены в VDSO.

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

поэтому система не может:

добиться быстрого выполнения этих функций

избежать дорогостоящего переключения с пользовательского на ядро ​​и возврата

Massimo
источник
0

В дополнение к проблемам безопасности, поднятым в ответе @MDMarra, вы должны рассмотреть два дополнительных момента:

  1. Любые включенные дополнительные функции имеют небольшую вероятность иметь неприятные и неожиданные взаимодействия с другими функциями, требующие дополнительной проверки. Производители ПК ненавидят тратить ресурсы на редко используемые функции, и виртуализация на стороне клиента является одной из них.

  2. Я сильно подозреваю, что из-за # 1, встроенная микропрограмма / капля BIOS основного клиента Intel отключена VT. Поэтому любой поставщик, поставляющий клиент с поддержкой VT, должен настроить эту опцию при подготовке своей прошивки.

Тем не менее, мы сейчас в 2019 году; Я вижу больше клиентов с включенным VT по умолчанию. Серверы - это совсем другое дело: я не только обнаружил, что VT включен, но VT-d также часто активен.

shodanshok
источник