Este post está patrocinado por Miguel Ángel Álvarez Rodríguez, de la empresa Data Keeper, expertos en mantenimiento de sistemas, servidores, almacenamiento y virtualización. Miguel ha donado 50€ para el banco de alimentos en mi iniciativa "¿Te he ayudado? Ayúdame a ayudar a otros". ¡Muchas gracias Miguel!
Mucha gente no es consciente de ello, pero con Windows 10 viene de serie una completa plataforma de virtualización, que nos permite instalar otros sistemas operativos, aislados unos de otros, y ejecutarlos al mismo tiempo en nuestra máquina.
Así, por ejemplo, podríamos estar ejecutando al mismo tiempo nuestro sistema, otra copia de Windows 10 para pruebas, una versión antigua de Windows para pruebas, y un Ubuntu Linux para ciertas herramientas de desarrollo. Por ejemplo, esta imagen muestra un Windows 10 ejecutándose dentro de otro Windows 10:
Gracias a esta característica no es necesario instalar otro software de virtualización como VirtualBox o VMWare, ni nada similar.
Esta plataforma de virtualización se llama Hyper-V y viene con Windows desde hace muchos años.
OJO: para poder usar Hyper-V necesitamos tener una edición de Windows 10 Profesional o Enterprise. No nos sirve, a priori, una edición Home como las que meten muchos fabricantes de PCs para ahorrarse unos euros. De todos modos, si quieres te explico aquí cómo habilitar Hyper-V aunque tengas una edición Home de Windows 10 😉
Para instalar Hyper-V lo único que tenemos que hacer es ir al panel de control, al apartado Programas
y pulsar en la opción de Activar o desactivar características de Windows
:
En la animación anterior ya muestro las opciones relevantes desplegadas. El problema es que, si te fijas, existen al menos 3 opciones que parecen estar relacionadas con la virtualización y con Hyper-V:
Mmmm. Antes era mucho más fácil todo, pues solo teníamos una opción. Pero ahora tenemos:
- Hyper-V y todas sus opciones subordinadas
- Virtual Machine Platform
- Windows Hypervisor Platform
¿Cuál es la que necesitamos? ¿Debemos activarlas todas o solo algunas de ellas? ¿Qué significa cada una de estas opciones?
Vamos a verlo. Pero antes... necesitamos la explicación básica de un concepto, para poder entenderlo bien todo.
Hipervisores: lo mínimo que todo usuario debería saber
Un ordenador es un conjunto de elementos físicos (llamado hardware) que permiten realizar operaciones como: almacenar datos a corto y largo plazo (memoria RAM y discos duros), efectuar cálculos muy rápido (CPU), mostrar imágenes en una pantalla externa (tarjeta gráfica), comunicarse con otros ordenadores (tarjeta de red), etc...
Pero este hardware, por si solo no es más que algo inútil. Necesita "algo" que le diga que tiene qué hacer y cómo hacerlo, y que además intermedie con las personas que lo van a utilizar, o sea, los usuarios. Este "algo" es el sistema operativo (S.O.) y es un tipo de software muy complejo que es capaz de intermediar entre el usuario y el hardware subyacente para lograr que funcione como queremos. Los sistemas operativos más habituales son Windows, macOS y Linux, aunque hay muchos más.
La manera convencional de ejecutar un sistema operativo sobre el hardware es comunicándolo de manera directa: es decir, directamente sobre el hardware se ejecuta el sistema operativo, sin intermediarios. En este modo convencional de trabajo, sobre un mismo hardware físico sólo se puede ejecutar un único sistema operativo al mismo tiempo.
Pero desde hace ya al menos 20 años se han popularizado los sistemas de virtualización. Estos sistemas permiten ejecutar al mismo tiempo varios sistemas operativos sobre un mismo hardware, de modo que se comparte entre todos ellos.
Para lograr esta hazaña se necesita una pieza adicional que se sitúa entre el hardware y los sistemas operativos, y que coordina el acceso al hardware para todos ellos: el hipervisor.
Dicho de forma muy básica, un hipervisor de software (los hay de hardware también) es un programa especial que se sitúa entre el hardware de tu equipo y el sistema operativo para regular el acceso a éste de varias máquinas virtuales. Es decir, un hipervisor nos permite crear máquinas que no existen realmente y que comparten el hardware físico de nuestro ordenador.
Existen dos tipos de Hipervisores:
- De nivel 1: que son los que acabo de describir, ya que sitúan entre el hardware y el sistema operativo para virtualizarlo. Son en realidad una especie de sistema operativo especializado exclusivamente en intermediar entre el hardware y otros sistemas operativos de propósito general. Entre estos tenemos a Hyper-V de Microsoft, VMWare ESXi o Xen, entre otros.
- De nivel 2: que en realidad son programas que se ejecutan sobre un sistema operativo convencional como Windows o Mac, para hacer lo mismo. En esta categoría están los famosos VirtualBox de Oracle, Parallels para macOS o VMWare Player/Workstation. Suelen ofrecer menos rendimiento que los de nivel 1.
El siguiente diagrama muestra visualmente la diferencia entre el trabajo convencional de un sistema operativo y el uso de hipervisores de nivel 1 y 2:
Hyper-V
Hyper-V es el hipervisor de Microsoft. Es un hipervisor de nivel 1, por lo que se sitúa entre el hardware y el sistema operativo Windows para permitir la virtualización. O sea, que en realidad no lo ves, pero lo que ocurre es que lo gestionas desde el sistema operativo huésped por defecto, que en este caso es tu instalación de Windows 10.
Si lo único que te interesa es poder ejecutar otros sistemas operativos como Linux u otras instancias de Windows, es lo único que necesitas instalar de las opciones anteriores.
Generalmente debes instalar todas las piezas que tiene como "hijas" en el diálogo anterior. Te permite instalar por separado todas ellas porque puedes necesitarlas para otras cosas. Por ejemplo, puedes instalar las herramientas de administración visuales (GUI Management Tools) o los scripts de Powershell (Module for Windows Powershell) para administrar Hyper-V en otras máquinas, no necesariamente en la tuya. Y al revés: puedes instalar el Hipervisor (Hyper-V Hypervisor) y administrarlo remotamente desde otra máquina.
O sea, en la gran mayoría de los casos marcarás sin más la opción "madre" Hyper-V
y a correr. A partir de ese momento ya podrás empezar a virtualizar sistemas operativos en tu máquina.
Nota: como Hyper-V es un hipervisor de nivel 1 está entre el "hierro" y Windows 10, por lo que Windows 10 no se está ejecutando sobre el hardware directamente, sino sobre la abstracción de éste que le proporciona el Hyper-V. Es transparente para nosotros, pero conviene saberlo. En la práctica significa que nos dará ligeramente menor rendimiento que si no tuviésemos Hyper-V habilitado, pero en la práctica, con un uso convencional del sistema, la diferencia es casi despreciable.
Virtual Machine Platform
Como probablemente sabrás, Windows 10 soporta también Linux. Es decir, Windows 10 permite ejecutarse al a vez Windows y varias instancias de Linux, pudiendo usar los comandos de este sistema operativo de código abierto e incluso ejecutar aplicaciones gráficas. Esto es así desde hace al menos 4 años, pero la versión 1 usaba emulación, mientras que la mas reciente versión 2 (WSL2) utiliza virtualización para ganar rendimiento.
Bien, para este tipo de virtualización "ligera", no es necesario toda la potencia del hipervisor de nivel 1 Hyper-V, así que en la actualización de marzo de 2019 de Windows 10 y en preparación para WSL2, Microsoft lanzó este componente que ofrece una virtualización ligera con este objetivo.
Este componente es necesario si vas a usar WSL2 para ejecutar Linux como un componente más de Windows. No es necesario instalarlo si solo quieres crear máquinas virtuales y ya has instalado Hyper-V.
También puede ser necesario para crear paquetes MSIX, que son una forma muy chula y muy potente de empaquetar aplicaciones para aislarlas del sistema operativo subyacente, aunque con Hyper-V se entrega una plantilla para crear un sistema especifico para crear este tipo de paquetes (ver imagen anterior).
Windows Hypervisor Platform
Bien. El último componente que nos queda por analizar y que puede causar confusión es esta plataforma del hipervisor de Windows.
Pero, ¿en qué quedamos? ¿Hyper-V no lleva su propio hipervisor? ¿Para que queremos otro aparte? ¿O es el mismo?
Empezando por el final: no, no es el mismo.
Este componente lo que hace es permitir que los hipervisores de nivel 2 puedan ejecutarse sobre Windows con Hyper-V. Es decir, en la práctica permite una cosa muy interesante que antes era imposible: que podamos ejecutar al mismo tiempo en Windows Hyper-V y productos como VirtualBox o WMWare Player. En especial, lo que permite es que se pueda ejecutar sobre Windows el gestor de contenedores por antonomasia: Docker.
Gracias a este componente podemos utilizar Docker nativamente sobre Windows o utilizar máquinas virtuales con VirtualBox, por ejemplo, al mismo tiempo que usamos máquinas virtuales con Hyper-V:
Esto está genial si quieres usar otro hipervisor, ya que muchas veces ciertas máquinas virtuales que te entregan preconfiguradas no las tienes para Hyper-V. Yo suelo usar Virtual Box y antes me obligaba a tener dos arranques diferentes (con y sin Hyper-V) para poder utilizarlo. Ahora los puedo usar a la vez.
Un consejo: para mejorar el rendimiento de VirtualBox si virtualizas Windows con la Windows Hypervisor Platform activada, vete a las configuración de tu máquina virtual y en el apartado de System > Acceleration
cambia la interfaz de paravirtualización a "Hyper-V":
¡Espero que te resulte útil!