Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=0359ffb2-c512-4bfe-ba60-e09f9e03475c

Cómo instalar Linux en Windows y usar los dos sistemas a la vez: montando el subsistema de Linux (WSL2)

Imagen ornamental: un logo de Ubuntu sobre un fondo con el logo de Windows

La proliferación de herramientas de desarrollo de código abierto nacidas en el mundo Linux ha hecho que muchos desarrolladores creasen versiones de sus herramientas que solo funcionan en sistemas basados en UNIX, como Linux o macOS. Esto tradicionalmente había dejado fuera (o con mucho retraso) a los desarrolladores que utilizaban Windows como sistema operativo principal. De hecho, algunos tutoriales de herramientas de programación parten de la base de que estás usando Linux o macOS, y todas las explicaciones se ofrecen para estos, dejando los comandos de Windows fuera y dificultando su seguimiento.

Conscientes de este problema y de que Windows no estaba siendo la plataforma favorita para muchos desarrolladores, hace ya unos años, en verano de 2016 Microsoft incluyó en Windows 10 algo impensable hasta ese momento: Linux como parte integral de Windows.

Un poco de historia (interesante)

En realidad, Windows siempre ha tenido (desde los tiempos de Windows NT)  la capacidad de ejecutar otros subsistemas operativos dentro del sistema principal. De hecho, cuando en un sistema moderno de 64 bits ejecutas aplicaciones antiguas de Windows para 32 bits, estas se ejecutan en un subsistema diferente dentro de Windows de 64bits. Y desde la época de Windows NT ha existido en la arquitectura de Windows la posibilidad de añadir otros subsistemas. En concreto, existe de siempre en el núcleo un subsistema POSIX compatible con la base de UNIX y había otro subsistema para aplicaciones de OS/2 (el fallido sistema operativo de Microsoft e IBM de principios de los '90), como se puede ver en la parte superior de este diagrama de la arquitectura de Windows NT, la base de todos los sistemas Windows actuales:

WindowsNT-Architecture

A estas capas de usuario tradicionales se unió en 2016 un subsistema Linux, creado en colaboración con Canonical, la empresa desarrolladora de Ubuntu, la versión más popular del sistema del pingüino. Este subsistema se originó a partir del difunto "Project Astoria", que perseguía ejecutar aplicaciones de Android en Windows 10 Mobile, algo que nunca llegó a buen puerto por desgracia para la plataforma móvil de Microsoft. 

A esta capa dentro de Windows se la denomina Windows Subsystem for Linux o WSL, y permite ejecutar de manera nativa en Windows programas de Linux (en formato ELF64 - Executable and Linkable Format).

Es decir, no es una capa de virtualización, sino que es un verdadero entorno de ejecución de Linux metido dentro de Windows. Si quieres ver más detalles de cómo trabaja puedes leer este artículo original de MSDN de cuando apareció la primera versión hace unos años, que es bastante interesante: Windows Subsystem for Linux Overview.

ubuntu-logo

Esta primera versión de WSL, como no era un Linux completo, no permitía ejecutar cualquier aplicación. De entrada, aquellas que tenían interfaz gráfica no funcionaban (de todos modos publiqué entonces un vídeo práctico explicando cómo saltarse esa limitación y habilitar aplicaciones gráficas de Linux en Windows), ni tampoco algunas muy específicas de bajo nivel.

En 2019 Microsoft lanzó la segunda versión del subsistema Linux: WSL2. Esta versión aprendía de la anterior y le añadía multitud de características nuevas, una gran mejora de rendimiento (hasta 20 veces más) que lo equipara a los programas nativos de Windows, y dando soporte completo para el sistema operativo Linux, ya que tiene incluso el Kernel y las utilidades de bajo nivel. Soporta el uso de GPUs, lo cual es una pasada, pero no soporta de momento dispositivos USB o serie. En Windows 11, WSL tiene ya soporte oficial para aplicaciones gráficas, por lo que cualquier cosa que puedas hacer en Linux la puedes hacer ya en Windows con WSL.

Esto es sensacional y hace que, si tienes Windows, en realidad tienes también Linux: 2 por el precio de 1 😉

Este nuevo subsistema es muy interesante para desarrolladores que utilizan Windows como sistema principal. Gracias a él podemos ejecutar las mismas herramientas que tienen los programadores de Linux, incluso las que solo están para ese sistema operativo, y podremos seguir sin problemas todas las indicaciones de documentaciones que se basan en la línea de comandos.

Vamos a ver cómo instalarlo en nuestro equipo con Windows.

Instalar Linux en Windows

Instalar Linux en Windows implica dos tareas separadas. En primer lugar, instalar el subsistema de Linux (WSL), que es la capa que da soporte y permite ejecutar el sistema operativo. Y, luego, instalar una versión de Linux concreta, por ejemplo Ubuntu u otra de las disponibles. En cualquier caso, es un proceso rápido y sencillo, mucho más fácil que instalar el propio Linux desde cero en un equipo (¡otra ventaja!).

Paso 0: Verificar requisitos de hardware

Antes de nada, tenemos que tener la seguridad de que nuestra máquina es capaz de ejecutar WSL.

Para empezar, tienes que tener Windows 10 actualizado. Si lo tienes a la última mejor (y no hay disculpa para no tenerlo: ¡se actualiza solo!). WSL2 necesita la versión 1903 o posterior, con un número de build 18362 o mayor.

Para averiguarla pulsa Windows + R, en la ventanita que aparece escribe winver y dale a ENTER para ver una ventana como esta, en la que verás la versión y el número de build:

 La versión de Windows, resaltada en la ventana

Yo, por ejemplo, tengo la versión 19042 (o sea, posterior más que de sobra a la necesaria) y, por lo tanto, la build también posterior (1110 en mi caso).

También tiene que ser un sistema operativo de 64bits (que no lo fuera sería una rareza hoy en día, así que, por eso no creo que debas preocuparte).

También debería soportar virtualización, ya que por debajo usan las extensiones de hardware correspondientes para mejora de rendimiento. En concreto, debe soportar el modo de monitorización de máquinas virtuales (lo que en procesadores Intel se llama VT-x y en AMD se llama AMD-V). En general, si tu procesador tiene menos 6 o 7 años seguro que lo tiene.

Por supuesto deberá estar habilitado en la BIOS y generalmente lo estará, pero verifícalo si algo sale mal.

Para saber si todo es correcto relativo a esto, haz lo siguiente: pulsa las teclas CTRL+Mayúsculas+ESC para sacar el administrador de tareas. Vete a la pestaña de Redimiento, sección CPU y fíjate en la parte de abajo si está habilitada la virtualización, como en esta captura:

La información sobre virtualización, resaltada

Paso 1: Instalar el subsistema de Linux en Windows (WSL)

Una vez que estamos seguros de soportarlo, lo primero es instalar el soporte en Windows para poder ejecutar Linux, o sea, el subsistema Linux. Se puede hacer desde línea de comandos  o desde la interfaz de usuario (más cómodo).

Para hacerlo desde la línea de comandos es necesario abrir una ventana de PowerShell como administrador y escribir lo siguiente:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

La última opción /norestart se la ponemos para que no nos pida reiniciar el equipo, ya que, de todos modos, tendremos que hacerlo poco después, así nos evitamos hacerlo dos veces.

Ahora, antes de continuar, hay que habilitar el soporte para virtualización del sistema (ojo, no es Hyper-V, es otra cosa), para lo cual debes introducir este comando en PowerShell:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all

Te va a pedir que reinicies. Ahora sí, hazlo. Si no te lo pide, da igual: tú reinicia el sistema operativo.

Si prefieres hacer lo mismo desde la interfaz gráfica, pulsa Windows + R, y en la ventana que aparece escribe OptionalFeatures.exe. Esto abrirá la ventana de características opcionales de Windows y podrás marcar las opciones de la plataforma de máquina virtual y del subsistema de Linux, como en esta figura:

Las opciones correspondientes, resaltadas

Acepta, se instala y te pedirá reiniciar.

Paso 2: Instalar la actualización del kernel de Linux

Ahora debes actualizar el Kernel de Linux a la última versión. Microsoft lo tiene colgado en un blob de Azure y no en el sitio oficial de descargas (WTF?), así que el enlace hay que sabérselo. Descárgalo y ejecútalo. Necesitarás permisos de administrador.

Es tan solo darle a siguiente hasta llegar al final.

Paso 3: poner WSL2 como versión por defecto

Cuando se instala WSL, las dos versiones existentes coexisten, y si no le indicas lo contrario puede que sea WSL1 la que quede por defecto, lo cual te limita mucho las posibilidades. Lo suyo es que pongas como versión por defecto WSL2, para obtener el mejor rendimiento y capacidades.

Abre una ventana de PowerShell como administrador y escribe lo siguiente:

wsl --set-default-version 2

Paso 4: Instalar una distribución de Linux (o varias)

Vale, ya casi estamos...

Ahora ya tenemos la base para trabajar. Lo único que nos falta es instalar una distribución de Linux concreta desde la tienda de Windows. Existen multitud de ellas, aunque seguramente la más utilizada es Ubuntu, ya que además de ser la más popular también son los que han trabajado con Microsoft para tener WSL en Windows. Pero hay muchas más. Basta con que abras a la tienda de Microsoft en Windows y busques Linux:

Algunas de las distribuciones Linux disponibles

Te dejo enlaces a las que sé que están ahora mismo, para que vayas directamente:

Basta darle al botón de Obtener y dejar que la tienda lo descargue y lo instale. Tardará unos pocos minutos dependiendo de la capacidad de tu conexión, pero será rápido.

¡Listo! Ahora ya tienes un Linux instalado en tu equipo.

Para utilizarlo abres una consola de PowerShell y escribes el comando wsl. Al darle a ENTER se abrirá su terminal y podrás trabajar con él desde línea de comandos.

De todos modos, te recomiendo que instales el Terminal de Windows y que lo pongas "bonito" y con mejor funcionalidad para una experiencia mucho más agradable no sólo con el terminal de Linux, sino también con PowerShell y los demás terminales de Windows.

Puedes instalar más de una distribución al mismo tiempo. Si tienes más de una instalada, puedes lanzar una concreta usando el comando: wsl -d <nombre-distribucion> y puedes saber las que tienes (y con qué versión de WSL están) con el comando wsl --list --verbose.

¡Felices sesiones con Linux en Windows!

Fecha de publicación:
José Manuel Alarcón Fundador de campusMVP, es ingeniero industrial y especialista en consultoría de empresa. Ha escrito diversos libros, habiendo publicado hasta la fecha cientos de artículos sobre informática e ingeniería en publicaciones especializadas. Microsoft lo ha reconocido como MVP (Most Valuable Professional) en desarrollo web desde el año 2004 hasta la actualidad. Puedes seguirlo en Twitter en @jm_alarcon o leer sus blog técnico o personal. Ver todos los posts de José Manuel Alarcón
Archivado en: Herramientas

¿Te ha gustado este post?
Pues espera a ver nuestro boletín mensual...

Suscríbete a la newsletter

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.