¿Por qué los sistemas generalmente deshabilitan la virtualización por defecto en la configuración del BIOS?

81

Todavía tengo que ver un sistema cuya configuración predeterminada habilite MMU y la virtualización de E / S dirigida. A menudo, esto requiere reiniciar e ingresar al BIOS para habilitarlo si lo desea, por ejemplo, soporte de 64 bits en sus máquinas virtuales.

¿Existe algún tipo de sobrecarga sustancial del procesador si esto está activado y no está utilizando la virtualización? Si no es así, ¿cuál es la razón por la que está desactivado por defecto?

John Feminella
fuente

Respuestas:

52

Hubo algunos rootkits de prueba de concepto como Blue Pill hace un tiempo que podían poseer un sistema con VT activado. Después de este descubrimiento, la mayoría de los vendedores comenzaron a enviar sus unidades con VT desactivado como medida de seguridad general.

MDMarra
fuente
77
Las personas que usan VT en una computadora de escritorio / portátil son la excepción Que la máquina sea susceptible a virii es la regla.
Chris S
De repente, tengo dudas sobre esta nueva y potente máquina de desarrollo que he construido que ejecuta un montón de máquinas virtuales con virtualización de hardware habilitada. No necesito virtualización, pero creo que a la larga me ahorraría tiempo al no tener que volver a pavimentarlo cada dos meses. ¿Qué tan grande es este problema?
Paperjam
2
Prácticamente inexistente (a partir de este comentario). La píldora azul era una prueba de concepto. No estoy al tanto de algo como esto en la naturaleza.
MDMarra
1
Aquí está la evaluación de Microsoft del problema de seguridad, incluida la recomendación de desactivar VT de forma predeterminada en los sistemas de rol de cliente: msdn.microsoft.com/en-us/windows/hardware/gg463498.aspx
Jpsy
3
El documento de Microsoft ya no está disponible en su sitio web, pero puede leerlo en Internet Archive si lo desea.
Josh Kelley
5

Todos los servidores blade que compramos tienen la virtualización habilitada de forma predeterminada. Puede deberse a que nuestro proveedor ha tomado una decisión comercial de hacerlo para ahorrar en tantas llamadas de soporte.

No está deshabilitado debido a un golpe del procesador, sino dependiendo de para qué se está utilizando. Puede estar desactivado de manera predeterminada, ya que habilitar estas funciones puede afectar el acceso periférico.

Sirch
fuente
44
¿Qué acceso periférico puede afectar esto? Nunca he escuchado eso antes.
MDMarra
¿Estás hablando de VT-d cuando mencionaste el acceso periférico?
Zoredache
No, fue MMU ... Recuerdo que alguien estaba hablando de eso recientemente. Algo que ver con Rasberry Pi.
Sirch
2

Tenga en cuenta que de acuerdo con este otro hilo, también parece tener algún impacto en el rendimiento https://superuser.com/questions/545101/why-does-hp-recommend-that-i-keep-hardware-virtualization-off

Me parece relevante, ya que un conjunto reducido de instrucciones es más eficiente. Simplemente no habría pensado que cambiar una opción de BIOS podría afectar esto directamente.

No tengo idea de si el impacto es significativo o no, pero teniendo en cuenta esto y la falla potencial de seguridad, tener una característica tan raramente desactivada por defecto me parece una buena opción.

Balmipour
fuente
2
El ángulo de eficiencia de la respuesta vinculada no tiene sentido. El caché de instrucciones contiene instrucciones de un programa de software. Si el programa no usa instrucciones de virtualización, entonces no hay efecto en ese caché. Además, no hay informes de que haya una unidad de ejecución separada que maneje la virtualización ni una parte del decodificador de instrucciones que se pueda omitir, por lo que no debería haber diferencia de eficiencia de ninguna manera.
Nimrod
1

Otra razón es que la mayoría de las funciones del núcleo del usuario (como gettimeofday) se mueven en VDSO.

a veces, bajo virtualización, esta ruta rápida no se puede habilitar.

entonces el sistema no puede:

obtener la ejecución rápida de estas funciones

evite el costoso cambio de tierra de usuario a kernel y regrese

Massimo
fuente
0

Además de las preocupaciones de seguridad planteadas en la respuesta de @MDMarra, debe considerar dos puntos adicionales:

  1. cualquier característica opcional habilitada tiene una pequeña probabilidad de tener algunas interacciones desagradables e inesperadas con otras funcionalidades, lo que requiere una validación adicional. Los proveedores de PC odian gastar recursos en funciones poco utilizadas, y la virtualización del lado del cliente es una de ellas.

  2. Sospecho firmemente que debido al n. ° 1, el firmware básico del cliente Intel / BIOS blob tiene VT deshabilitado. Por lo tanto, cualquier proveedor que envíe un cliente habilitado para VT debe personalizar esa opción al preparar su firmware.

Dicho esto, ahora estamos en 2019; Veo más clientes con VT habilitado por defecto. Los servidores son un asunto completamente diferente: no solo siempre encontré VT habilitado, sino que VT-d a menudo también está activo.

shodanshok
fuente