Virtualización x86

La virtualización es el método por el cual se virtualiza la arquitectura de procesador x86. La arquitectura x86 no cumplía originalmente los requerimientos de virtualización de Popek y Goldberg, así que era difícil implementar una máquina virtual general en un procesador x86. En 2005 y 2006 Intel añadió extensiones a la arquitectura x86 que resolvían estas y otras dificultades de virtualización.

Técnicas software 
La virtualización en arquitecturas x86 es compleja, y necesita técnicas complejas para ser resuelta.

Uno de los pioneros en virtualización fue la Universidad de Stanford. El 9 de febrero de 1999 VMware introdujo el primer producto de virtualización x86, llamado "Mlware Virtual Plataform", basado en una investigación anterior realizada por sus fundadores en la Universidad de Stanford. VMware pidió una patente para su técnica en octubre de 1997, que fue concedida con el número 6.397.242 el 28 de mayo de 2002. VMware y otros programas de virtualización similares crean un entorno interpretado para las instrucciones del kernel del sistema operativo; con lo que, vía emulación, podían ejecutar cualquier sistema operativo virtualizado para x86 a costa de rendimiento.

Kevin Lawton paralelamente desarrolló el proyecto bochs, con funcionalidad similar, que comenzó siendo software privativo pero pasó a ser software libre cuando Mandriva compró el proyecto.

Oracle provee de un software de virtualización llamado VirtualBox que es software libre bajo licencia GPL.

Microsoft ofrece dos productos de virtualización basados en Windows, Microsoft Virtual PC y Microsoft Virtual Server, basados en tecnología que adquirieron de Connectix.

Los esfuerzos de investigación recientes buscan proporcionar virtualización de alto rendimiento en la arquitectura x86 presentando una interfaz que difiere de la del hardware en crudo. Los sistemas operativos son portados para ser ejecutados en esta interfaz, que no emplea las partes difícilmente virtualizables del conjunto de instrucciones x86. Esta técnica se conoce como paravirtualización. Los sistemas Denali, L4 y Xen emplean esta técnica para ejecutar versiones modificadas de varios sistemas operativos.

Soporte hardware 
Intel y AMD han desarrollado independientemente extensiones de virtualización a la arquitectura x86. No son directamente compatibles entre sí, pero proporcionan las mismas funciones. Ambos permiten que una máquina virtual se ejecute en un huésped no modificado sin incurrir en penalizaciones de emulación.

Intel VT (IVT) 
La extensión de Intel para virtualización de la arquitectura de 32 y 64 bits se llama IVT (Intel Virtualization Technology: Tecnología de Virtualización de Intel) y se la referencia a veces por el nombre "Vanderpool". Intel ha publicado las especificaciones del Vanderpool para el IA-64 (procesadores Itanium). Anteriormente, la virtualización IA-64 tenía el nombre en clave de "Silvervale".

Intel VT se publicó oficialmente en el Intel Developer Forum la primavera de 2005. Está disponible para todos los procesadores Pentium 4 6x2, Pentium D 9x0, Xeon 3xxx/5xxx/7xx, Intel Core e Intel Core 2. En algunas implementaciones, Vanderpool puede ser desactivado desde la BIOS.

Intel Core 
T2700,T2600,T2500,T2400,T2300

Intel Celeron
Procesadores de escritorio: 
E3200, E3300.

Intel Pentium
Procesadores de escritorio: 
E5300 (no todas las SPEC) E5400, E5500, E5700 y todas las series E6000.

Intel Core 2
Procesadores de escritorio:
E8600,E8500,E8400,E8300,E8200
E7600
E6850,E6750,E6700,E6600,E6550,E6540,E6420,E6400,E6320,E6300,
Series Q6000, Q8000 (no en todos los modelos) y Q9000, además de otros Core 2 Quad (ver en sitio oficial de Intel).

Procesadores móviles:
SP9400, SP9300, SL9400, SL9300, SU9400, SU9300
T9500,T9300,T8300,T8100,T7800,T7700,T7600,T7500,T7400,T7300,T7200,T7100,T5600
L7500,L7400,L7300,L7200
U7700,U7600
x  dsd

Virtualización AMD (AMD-V) 
La extensión de virtualización AMD para la arquitectura de 64 bits x86 se llama AMD Virtualization (abreviada AMD-V), y a menudo se la referencia por el nombre en clave "Pacífica".

Los procesadores AMD que usan Socket TR4, Socket AM4, Socket AM3, Socket AM2, Socket S1 y Socket F incluyen AMD-V. En mayo de 2006, AMD introdujo estas versiones en el procesador Athlon 64 y el Turion 64.

Software que utiliza la virtualización x86 
 Microsoft Virtual PC 
 Kernel Virtual Machine (KVM) - Controlador añadido a la rama del kernel 2.6 (>2.6.20) de Linux que permite utilizar las extensiones de virtualización de los procesadores Intel (Intel VT) y AMD (AMD-V).
 Microsoft Virtual Server — (Virtual Server 2005 R2 SP1,) tiene soporte para Intel VT y AMD-V.
 Parallels Workstation — Hypervisor con soporte para Intel VT-x.
 TRANGO hypervisor empotrado en tiempo real.
 VMware — en los procesadores Intel, VMware 5.5 necesita Intel VT para ejecutar huéspedes de 64 bits. Para huéspedes de 32-bit, el uso de VT es posible pero no se encuentra activado por defecto porque para cargas de trabajo normales es más lento.
 Xen — Xen 3.0 emplea Intel VT para ejecutar sistemas operativos no modificados como huésped. Tanto Intel como AMD han dado apoyo a sus extensiones de virtualización dentro del monitor de máquina virtual Xen, permitiendo que se ejecuten sistemas operativos no modificados.
 VirtualBox

Rendimiento 
A medida que los desarrolladores de software de virtualización han empezado a usar las nuevas capacidades hardware, los benchmarks muestran que las nuevas capacidades de hardware no proporcionan un incremento demasiado grande en la virtualización, cuando se comparan con propuestas enteramente software. Se especula que las próximas versiones de la virtualización por hardware, incrementarán el rendimiento de una forma más significativa.

Véase también 
 Virtualización
 Hipervisor
 Máquina virtual
 Paravirtualización
 Vitualización a nivel de sistema operativo

Referencias

Enlaces externos 
Enlaces generales
 Virtualizacion, ParaVirtualizacion, FullVirtualizacion Todas las Plataformas 
 Xen and the Art of Virtualization - Sobre la paravirtualización de Xen
 OpenVZ - Máquina virtual x86 libre con Hypervisor.
 VMWare - software de máquina virtual x86.
 Virtuozzo - software de máquina virtual x86.
 Trango Systems - Trango, hipervisor empotrado en tiempo real.

Arquitectura x86
Virtualización de hardware