WSL (Windows Subsystem Linux) o cómo y por qué trabajar con Linux en Windows
En este post queremos acercaros una de las herramientas imprescindibles para desarrolladores Windows: WSL, el subsistema de Linux sobre Windows. Verás la manera más cómoda y versátil de instalar Linux en Windows y, sobre todo, te explicamos por qué querrías hacerlo.
Windows vs Linux para desarrolladores
Antes de comenzar queremos ponernos en antecedentes, comenzando por destacar que Windows es el sistema operativo más popular pero, sin embargo, Linux es el sistema operativo donde se realizan la mayoría de los despliegues de aplicaciones. Esa dualidad pone en un lugar tradicionalmente incómodo para los desarrolladores de Windows, que encuentran muchas diferencias entre el sistema donde trabajan en su día a día y el sistema en el que tienen que administrar las aplicaciones en producción.
No es un capricho trabajar en el desarrollo en un entorno lo más parecido a producción, sino una ventaja, dado que garantiza mejor que lo que funciona en local funciona también en remoto. Si desarrollamos en Linux podremos usar las mismas librerías y software involucrado en las aplicaciones, como los gestores de bases de datos o servidores de correo, servidores de colas, etc.
Los usuarios de MacOS no tienen tanto problema, porque en el fondo este sistema comparte con Linux su base de funcionamiento. Ese es el motivo por el que muchos desarrolladores han acabado cambiándose a MacOS en sus equipos de trabajo. El culmen de las frustraciones vino con Docker, un software de contenedores que se ha convertido en una herramienta indispensable en múltiples campos y que en Windows funciona especialmente mal.
Qué es WSL
WSL corresponde con las siglas de «Windows Subsystem Linux» y es un software que permite la instalación de sistemas operativos de la familia GNU/Linux en Windows. Si bien es cierto que antes de WSL podíamos virtualizar usando un programa como Virtual Box, la experiencia distaba un poco de la que necesitaban los desarrolladores. Envolturas como Vagrant consiguieron mejorar bastante la experiencia de trabajo, pero todavía había algunas cuestiones importantes que solucionar y sobre todo, Docker todavía no se adaptaba bien a esta solución.
Desde que se tiene WSL, se ha podido resolver esta demanda tradicional de los desarrolladores de Windows, que ya pueden disponer de una manera cómoda e integrada de todas las ventajas de Linux sobre el sistema operativo Windows.
Por debajo WSL funciona con virtualización, la diferencia con otros sistemas como Virtual Box es que la creación de las máquinas virtuales se realiza automáticamente y sin dificultades ni procesos complejos para el usuario. Además, todos los aspectos necesarios que debemos configurar cuando queremos virtualizar y compartir espacios de trabajo, se entregan de casa y con ello se consigue una experiencia integrada de ambos sistemas operativos sin complicaciones.
Casos de uso de WSL
Como hemos dicho, existen una serie de casos en los que WSL nos ha venido especialmente bien. Podemos destacar los siguientes:
Docker en Windows
Comenzamos por el más relevante, que sería el uso de Docker en Windows. Hasta ahora Docker era complejo de manejar en Windows y no tenía todas las características necesarias. Sin embargo gracias a WSL podemos por fin ejecutar Docker sin más complicaciones.
Node y NVM
Otro punto importante para los desarrolladores web es la posibilidad de usar herramientas Node que no estaban disponibles en Windows, como es el caso de NVM.
Ejecutar software Linux en Windows
Todo el software disponible para Linux lo podremos ejecutar en Windows gracias a WSL y además tener acceso al sistema de archivos de ambos sistemas.
Instalación de WSL
Ahora vamos a ver cómo instalar Windows Subsystem Linux en un ordenador Windows, para posteriormente aprender a usarlo.
Primero debemos saber que esta utilidad solamente está disponible en sistemas operativos Windows recientes, concretamente Windows 10 o Windows 11 en el momento de escribir este post. Si tu versión de Windows es más antigua te recomendamos consultar la ayuda de WSL para encontrar la manera de instalar esta herramienta de manera manual.
Para instalar WSL necesitamos simplemente ejecutar un comando de consola. Para ello abriremos Power Shell, que es la consola avanzada de Windows disponible en W10 o W11. Una vez abierto Power Shell lanzaremos el siguiente comando.
wsl --install
Este comando realizará la instalación de WSL propiamente dicha y además añadirá Ubuntu como sistema operativo en WSL, para que podamos comenzar a usar Linux de una manera inmediata.
Durante el proceso de instalación veremos una ventana de progreso en la que se realizarán las descargas necesarias para WSL y la distribución de Ubuntu. El proceso se tiene que completar realizando la creación de un usuario y contraseña para el sistema Linux que se acaba de instalar.
Cómo instalar otras distribuciones de Linux con WSL
Una vez ya tenemos WSL instalado en nuestro sistema, podemos crear otras máquinas virtuales con otras distribuciones de Linux. Para ello existen nuevos comandos que podemos usar:
wsl --list --online
Este comando nos ofrece una lista de las distribuciones de Linux que podemos instalar, entre las que encontramos Ubuntu en distintas versiones, Debian, Kali Linux, Open Suse y otras.
Una vez localizamos la que nos interesa, podemos lanzar el siguiente comando para instalarla, indicando su nombre al final.
wsl --install -d <nombre_distribucion>
WSL1 vs WSL2
WSL existe ya en dos versiones distintas. Recomendamos WS2 para tener todas las características más nuevas, ya que por ejemplo Docker funciona sobre WSL2. Si quieres saber qué versión de WSL tienes instalada puedes lanzar el siguiente comando desde Power Shell:
wsl -l -v
Eso nos indicará qué versión de WSL se está ejecutando para cada distribución de Linux que tenemos instalada. Ahora, para indicar que se debe usar la versión 2 de WSL como la predeterminada, cuando se instala una nueva distribución de Linux, podemos lanzar el comando:
wsl --set-default-version 2
Este paso solamente lo tendrán que hacer los usuarios de WSL 1 que quieran usar WSL 2. Además, si tenemos una distribución de Linux instalada con WSL 1 y queremos comenzar a usar WSL 2 en ella podemos lanzar el comando siguiente:
wsl --set-version <nombre_distribucion> 2
Terminal Windows
Ahora queremos hablaros de un software fundamental para sacar todas las ventajas de WSL en tu ordenador. Se trata de Windows Terminal, o Terminal Windows en Español. Este software permite usar todas las distribuciones de Linux, junto con el propio terminal en el sistema Windows, de una manera integrada, ofreciendo en un solo programa todo lo que necesitas para manejar tu Windows y cualquier distribución Linux instalada mediante WSL. El terminal de Windows lo podemos obtener e instalar directamente por medio de la tienda de aplicaciones de Windows. Consulta el enlace de Windows Terminal en las herramientas de desarrollo.
El uso es muy sencillo, ya que nos permite crear terminales nuevos de una manera sencilla, seleccionando el sistema operativo sobre el que quieres iniciar la ventana del terminal, o incluso el modelo de shell si se trata de una sesión de terminal de Windows.
El uso de Windows Terminal es muy intuitivo. Simplemente al crear una nueva pestaña en el programa podemos elegir el tipo de terminal que queremos y el sistema operativo sobre el que se va a ejecutar.
Sin duda, Windows Terminal es una de esas herramientas esenciales para todos los desarrolladores con Windows, que recomendamos como terminal de cabecera, incluso aunque no tengas intención de usar WSL. Ya no es solo que tenga una interfaz gráfica muy atractiva, sino que nos permitirá jubilar otras herramientas usadas anteriormente para conectarnos por SSH con servidores Linux como PuTTY.
WSL, junto con Windows Terminal, forman la pareja perfecta para ofrecer a los desarrolladores de Windows una experiencia de trabajo más cercana a la que se consigue con sistemas operativos Linux o Mac.