Por que os sistemas geralmente desabilitam a virtualização por padrão nas configurações do BIOS?

81

Ainda não vi um sistema cuja configuração padrão permita a MMU e a virtualização de E / S direcionada. Geralmente, isso requer reinicialização e entrada no BIOS para habilitá-lo, se você desejar, por exemplo, suporte de 64 bits em suas VMs.

Existe algum tipo de sobrecarga substancial no processador que ocorre se isso estiver ativado e você não estiver usando a virtualização? Caso contrário, qual é o motivo para desativá-lo por padrão?

John Feminella
fonte

Respostas:

52

Havia alguns rootkits de prova de conceito, como o Blue Pill, um tempo atrás que podiam possuir um sistema com o VT ativado. Após essa descoberta, a maioria dos fornecedores começou a enviar suas unidades com o VT desativado como uma precaução geral de segurança.

MDMarra
fonte
7
+1 As pessoas que usam o VT em um desktop / laptop são a exceção. Essa máquina sendo suscetível a vírus é a regra.
Chris S
De repente, estou pensando duas vezes sobre esta nova e poderosa máquina de desenvolvimento que criei que executa várias VMs com a virtualização de hardware ativada. Não preciso de virtualização, mas acho que isso me pouparia tempo a longo prazo, sem ter que repará-la a cada dois meses. Quão grande é essa questão?
paperjam
2
Virtualmente inexistente (a partir deste comentário). Blue Pill foi uma prova de conceito. Não tenho conhecimento de nada assim na natureza.
MDMarra 17/05
1
Aqui está a avaliação da Microsoft sobre o problema de segurança, incluindo a recomendação de desativar o VT por padrão nos sistemas de função do cliente: msdn.microsoft.com/en-us/windows/hardware/gg463498.aspx
Jpsy
3
O artigo da Microsoft não está mais disponível em seu site, mas você pode lê-lo no Internet Archive, se desejar.
Josh Kelley
5

Todos os blades de servidor que compramos têm a virtualização ativada por padrão. Pode ser que nosso fornecedor tenha tomado uma decisão comercial para economizar em tantas chamadas de suporte.

Ele não está desativado devido a uma ocorrência no processador, mas dependendo do uso para o qual está sendo usado. Por padrão, pode estar desativado, pois a ativação desses recursos pode afetar o acesso periférico.

Sirch
fonte
4
Que acesso periférico isso pode impactar? Eu nunca ouvi isso antes.
MDMarra 17/05
Você está falando sobre o VT-d quando mencionou o acesso periférico?
Zoredache 17/05
Não, era MMU ... Lembro-me de alguém falando sobre isso recentemente. Algo a ver com o Rasberry Pi.
Sirch
2

Observe que, de acordo com esse outro segmento, ele também parece ter algum impacto nas performances https://superuser.com/questions/545101/why-does-hp-recommend-that-i-keke-hardware-virtualization-off

Parece-me relevante, pois um conjunto reduzido de instruções é mais eficiente. Eu simplesmente não pensaria que alterar uma opção do BIOS poderia afetar isso diretamente.

Não tenho idéia se o impacto é significativo ou não, mas considerando isso e a falha potencial de segurança, ter um recurso tão raramente usado desativado por padrão parece uma boa opção para mim.

Balmipour
fonte
2
O ângulo de eficiência da resposta vinculada não faz sentido. O cache de instruções contém instruções de um programa de software. Se o programa não usar instruções de virtualização, não haverá efeito nesse cache. Além disso, não há relatos de que exista uma unidade de execução separada que lide com a virtualização, nem uma parte do decodificador de instruções que possa ser ignorada; portanto, não deve haver diferença de eficiência de qualquer maneira.
Nimrod
1

outro motivo é que a maioria das funções do kernel do usuário (como gettimeofday) são movidas no VDSO.

Às vezes, na virtualização, esse caminho rápido não pode ser ativado.

então o sistema não pode:

obter a rápida execução dessas funções

evitar troca cara da terra do usuário para o kernel e retornar

Massimo
fonte
0

Além das preocupações de segurança levantadas na resposta @MDMarra, você deve considerar dois pontos adicionais:

  1. qualquer recurso opcional ativado tem uma pequena probabilidade de ter algumas interações desagradáveis ​​e inesperadas com outras funcionalidades, exigindo validação adicional. Os fornecedores de PC odeiam gastar recursos em recursos raramente usados, e a virtualização do lado do cliente é um deles.

  2. Eu suspeito fortemente que, devido ao item 1, o blob de firmware / BIOS do cliente básico da Intel tenha o VT desativado. Portanto, qualquer fornecedor que envie um cliente habilitado para VT precisa personalizar essa opção ao preparar seu firmware.

Dito isto, estamos agora em 2019; Vejo mais clientes com o VT ativado por padrão. Servidores são uma questão totalmente diferente: eu não sempre achei o VT ativado, mas o VT-d também é frequentemente ativo.

shodanshok
fonte