Kernel-based Virtual Machine (KVM) es un módulo de virtualización gratuito y de código abierto en el kernel de Linux, que permite que el kernel funcione como un hipervisor. Este artículo brinda una visión general detallada sobre KVM, explorando sus orígenes, características internas, hardware emulado, herramientas de gestión gráfica y licencia.
Historia y Desarrollo
KVM fue introducido en la versión 2.6.20 del kernel de Linux, lanzada el 5 de febrero de 2007. Fue desarrollado inicialmente por Avi Kivity en Qumranet, una empresa tecnológica adquirida por Red Hat en 2008. Paolo Bonzini mantiene actualmente KVM.
Características Técnicas
Requisitos y Compatibilidad
KVM requiere un procesador con extensiones de virtualización de hardware, como Intel VT o AMD-V. Aunque originalmente diseñado para procesadores x86, KVM ha sido portado a otras arquitecturas como ESA/390, PowerPC, IA-64 y ARM. El puerto IA-64 fue eliminado en 2014.
Sistemas Operativos Invitados
KVM admite una amplia variedad de sistemas operativos invitados, incluyendo BSD, Solaris, Windows, Haiku, ReactOS, Plan 9, AROS, macOS y otros sistemas Linux. También es compatible con Android 2.2, GNU/Hurd, Minix 3.1.2a, Solaris 10 U3, Darwin 8.0.1 y versiones más recientes de estos, aunque con ciertas limitaciones.
Soporte de Paravirtualización
KVM ofrece soporte de paravirtualización para varios sistemas operativos invitados, incluyendo Linux, OpenBSD, FreeBSD, NetBSD, Plan 9 y Windows, utilizando la API VirtIO. Esto incluye una tarjeta Ethernet paravirtual, controlador de E/S de disco, driver de globo y una interfaz gráfica VGA utilizando drivers SPICE o VMware.
Internos del KVM
KVM proporciona abstracción de dispositivos pero no emula el procesador. Expone la interfaz /dev/kvm, que un host en modo usuario puede utilizar para configurar el espacio de direcciones de la VM invitada, alimentar la simulación de E/S y mapear la visualización de video del invitado de vuelta al host del sistema.

Originalmente, se proporcionó una versión bifurcada de QEMU para lanzar invitados y manejar la emulación de hardware que no es gestionada por el kernel. Ese soporte eventualmente se fusionó con el proyecto principal. Ahora hay numerosos Monitores de Máquina Virtual (VMM) que pueden utilizar la interfaz KVM, incluyendo kvmtool, crosvm y Firecracker.
Internamente, KVM utiliza SeaBIOS como una implementación de código abierto de un BIOS x86 de 16 bits.
Características
KVM ha tenido soporte para CPUs virtuales intercambiables en caliente, gestión dinámica de memoria y Migración en Vivo desde febrero de 2007. También reduce el impacto que las cargas de trabajo intensivas de escritura de memoria tienen en el proceso de migración.
Hardware Emulado
KVM en sí mismo emula muy poco hardware, delegando en aplicaciones de nivel superior como QEMU, crosvm o Firecracker para la emulación de dispositivos. Proporciona los siguientes dispositivos emulados:
- CPU virtual y memoria.
- VirtIO.
Herramientas de Gestión Gráfica
- libvirt soporta KVM.
- Kimchi: herramienta de gestión de virtualización basada en web para KVM.
- Virtual Machine Manager: admite la creación, edición, inicio y detención de máquinas virtuales basadas en KVM, así como la migración en vivo o en frío de VM entre hosts.
- Proxmox Virtual Environment: paquete de gestión de virtualización de código abierto que incluye KVM y LXC.
- OpenQRM: plataforma de gestión para infraestructuras de centros de datos heterogéneos.
- GNOME Boxes: interfaz Gnome para gestionar invitados libvirt en Linux.
- oVirt: herramienta de gestión de virtualización de código abierto para KVM basada en libvirt.
Licencia
El componente de modo kernel de KVM es parte del kernel de Linux, licenciado bajo la GNU General Public License, versión 2.
En conclusión, KVM se destaca como una solución de virtualización integral y versátil, integrada en el kernel de Linux, que ofrece soporte para una amplia gama de sistemas operativos invitados y múltiples opciones de paravirtualización. Su naturaleza de código abierto y su integración con diversas herramientas de gestión lo convierten en una opción atractiva para entornos empresariales y de investigación.