Antes de meternos de lleno a ver qué es WSL2, cómo instalarlo y cómo usarlo -que lo haremos-, me gustaría añadir algunos antecedentes con los que posiblemente te sientas identificado si naciste en la década de los 80 como yo.

Desde muy pequeño me he sentido atraído por los ordenadores, y en mi infancia no eran tan comunes como lo son hoy en día, en que prácticamente todo el mundo tiene uno al alcance. Creo que mi primer contacto con un ordenador fue a los 11 o 12 años, con un, ya para la fecha, antiguo ordenador que tenía mi padre en la oficina. Recuerdo pasar horas frente a la pantalla, aunque no estoy muy seguro de qué estaba haciendo, porque para esas fechas no había internet.

Aquel viejo ordenador tenía Windows 3.1; mi primer contacto con un ordenador también lo fue con el Sistema Operativo de Microsoft, el cual usé en todas sus versiones (y adelanto que lo sigo usando). De allí en adelante continué utilizándolo durante toda mi vida; de hecho no conocía nada más hasta que llegué a la universidad y algunos amigos me hablaron de Linux (Mac no era una alternativa viable para mí).

Desde que lo conocí quedé enamorado del sistema operativo del pingüino, su filosofía y su fantástica terminal, así que comencé a probarlo en el ordenador de casa, con todos los problemas de compatibilidad que daba por aquellos tiempos, donde te pasabas medio día instalando y otros dos buscando los drivers. Aun así era una experiencia nueva y, aunque frustrante, cuando lo lograbas la sensación de plenitud era magnífica. Eso sí, para mí no pasó de ser un experimento durante muchos años.

La mitad de mi vida profesional giró en torno a Windows, desde mis primeros trabajos como técnico de microinformática hasta la administración de servidores y servicios basados en el S.O. de Microsoft. Incluso estudié en una academia asociada a Microsoft y me certifiqué en Microsoft Windows Server 2012. No fue hasta principios de 2013 que tuve mi primer contacto profesional con Linux en un viejo servidor web que alguien tenía que mantener. Efectivamente, ese alguien fui yo y dediqué muchas más horas de las necesarias a ese solitario servidor.

Como muchos de vosotros, me encuentro en la siguiente tesitura: me encanta Linux y su ecosistema pero me parece que Microsoft hace un muy buen trabajo en su S.O. y, por alguna razón, siempre termino volviendo a él; el sueño sería tener lo mejor de los dos mundos. He probado el dual boot, la virtualización y cwin, pero ninguno se sentía como una experiencia completa. Pensé que era lo mejor que conseguiría aunque no fuera ideal y estaba resignado, hasta que Microsoft anunció WSL.

¿Qué es WSL?

WSL son las siglas para Windows Subsystem for Linux, que no era más que una capa de compatibilidad para entornos nativos Linux dentro de Windows. Su primera versión fue anunciada en 2016 y fueron grandes noticias. Recuerdo tener la terminal de Ubuntu 16.04 corriendo nativamente en Windows y pensar “esto es lo que he estado esperando, todo lo que necesito sin perder compatibilidad”.

Lamentablemente WSL, aunque muy útil, tenía varias carencias: todas las ejecuciones eran interpretadas, no teníamos acceso a todo el hardware de la máquina, el rendimiento general era bastante malo, etc. Yo no dejé de usarlo, pero no era para todo el mundo. Aun así fue el primer paso; en 2019 anunciaron WSL2, que ya no sería interpretado, tendría todo el kernel de Linux nativo y corriendo en Windows a todo rendimiento. WSL2 fue recientemente liberado para todos los usuarios de Windows 10 en la versión 2004. Parece que ahora sí que se hace realidad tener todo lo que he necesitado. No es perfecto, eso de antemano, pero es impresionante lo bien que va.

¿Por qué WSL2 y no una distro Linux?

“Depende”, sí, esa siempre es la respuesta. Muchos de vosotros, por políticas de empresa, no podréis cambiar el S.O. de vuestro ordenador o estarán atados a Windows por usar la suite de Office o las herramientas de Adobe, o incluso porque os sintáis más cómodos en un entorno Windows que en uno Linux.

En mi caso tengo la libertad de elegir el sistema operativo que uso, mi empresa no pone ninguna restricción siempre que cumpla con la política de mantenerlo actualizado y tener activo un antivirus. He intentado usar Linux directamente y al final siempre tengo que volver a Windows o virtualizarlo y prefiero virtualizar Linux en Windows que al revés.

En mi día a día tengo muchas tareas diferentes, aunque tengo una terminal WSL2 siempre abierta en uno de mis escritorios virtuales, paso la mitad del día en meetings de diferentes proveedores (webex en Linux es una pesadilla). Utilizo diferentes VPNs y escritorios virtuales de clientes, edito videos para el canal de YouTube de Pandora FMS, etc. Y muchas de estas cosas las hago con herramientas que no van del todo bien en Linux, por lo que WSL2 me ha dado la solución casi perfecta para mi día a día.

(Si creéis que es interesante escribir algún artículo acerca de mi flujo de trabajo y todas las herramientas que uso, dejad un mensaje en la caja de comentarios).

Desplegar WSL2

Si estás aquí es porque te has sentido identificado con alguno de los casos expuestos. Instalar WSL2 es muy sencillo, pero vamos paso a paso.

Recuerda que tienes que tener Windows 10 en su versión 2004 o superior para poder usar WSL2.

Para comprobarlo es tan sencillo como dar a la tecla de inicio, escribir winver y enter.

wsl2

Te mostrará una pantalla como esta, en la que verás la versión de Windows 10.

wsl2

Si cumplimos con la versión de Windows correcta pongámonos manos a la obra; si no, toca pasar por Windows update.

Paso 1: Habilitar WSL en nuestro sistema.

La forma más sencilla es abrir una terminal de PowerShell como administrador y ejecutar:

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

No cerramos la terminal ni reiniciaremos aún.

Paso 2: Habilitar la virtualización.

Ejecutamos el siguiente comando en la terminal de PowerShell abierta como Admin.

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

Ahora sí reiniciamos la máquina.


Paso 3:
Activamos WSL en su versión 2 como predeterminada.

Abrimos otra vez una terminal de PowerShell como administrador y ejecutamos:

wsl --set-default-version 2

Veremos un mensaje similar a: “WSL 2 requires an update to its kernel component. For information, please visit https://aka.ms/wsl2kernel. Vamos a la URL y descargamos el paquete siguiendo los pasos del asistente, el típico siguiente – siguiente.

wsl2

Paso 4: Descargamos la distro, de preferencia desde la tienda de Windows. Escribimos wsl en el buscador para que salgan las opciones (personalmente uso Arch, pero no está en la tienda por lo que es un poco más complicada de instalar); mi recomendación es instalar Ubuntu, es la primera que se liberó y a mi parecer la que tiene más soporte.

wsl2

Una vez descargado, lo abrimos y comenzará la instalación de la distro. Nos solicitará el usuario y contraseña; para el sistema Linux podemos poner el que prefiramos, no tiene nada que ver con el usuario de Windows.

wsl2

Una vez terminada la instalación veremos una pantalla similar a la siguiente y el prompt listo para usar Ubuntu bash.

wsl2

Paso 5: Comprobamos la instalación desde una terminal de PowerShell, ejecutando:

wsl --list --verbose

Donde nos listará las distros que tengamos instaladas y su versión; ya os dije que usaba arch y sí, también tengo Docker for Windows corriendo en WSL2. En vuestro caso mostrará solo la que tengáis instalada, en este caso Ubuntu y tendría que ser de versión 2.

wsl2

Conclusiones

Con estos sencillos pasos tendremos Ubuntu instalado dentro de Windows con su kernel al 100% y podemos ejecutar todas las herramientas que necesitemos, como por ejemplo Docker de forma nativa directamente en el kernel de Linux (algo que antes con HyperV a mí me iba muy mal y que WSL1 no soportaba).

La implementación no es perfecta, tiene muchas ventajas pero también tiene algunos problemas a solucionar. Aun así creo que es la mejor implementación actual para tener un sistema híbrido donde disfrutar de lo mejor de los 2 mundos, así que yo lo recomiendo al 100%.

Si os interesa el tema podemos escribir un artículo listando las ventajas, desventajas y soluciones alternativas a ciertos problemas que tiene actualmente esta tecnología. Dejadme saber si os interesa en los comentarios.

Shares