El su­b­si­s­te­ma de Windows para Linux 2 (WSL2) es la solución más sencilla y eficiente para utilizar apli­ca­cio­nes Linux en Windows. WSL2 permite el acceso a las he­rra­mie­n­tas y apli­ca­cio­nes Linux di­re­c­ta­me­n­te desde el entorno Windows habitual y, por ello, es es­pe­cia­l­me­n­te in­te­re­sa­n­te para pro­gra­ma­do­res. Gracias a la ar­qui­te­c­tu­ra co­m­ple­ta­me­n­te revisada respecto a la versión anterior, WSL2 ofrece un mayor re­n­di­mie­n­to que los pla­n­tea­mie­n­tos co­m­pa­ra­bles que existen.

¿Qué es WSL2?

WSL2, que fue lanzado en la primavera de 2020, es un pe­r­fe­c­cio­na­mie­n­to de Windows Subsystem for Linux (WSL1). Linux es un sistema operativo de código abierto que se di­fe­re­n­cia fu­n­da­me­n­ta­l­me­n­te de Windows, que se de­sa­rro­lla y di­s­tri­bu­ye como un producto comercial. Linux convence es­pe­cia­l­me­n­te por su amplia variedad de he­rra­mie­n­tas de pro­gra­ma­ción y otros paquetes de software di­s­po­ni­bles li­bre­me­n­te.

¿Cuáles son exac­ta­me­n­te las di­fe­re­n­cias con la versión anterior?

La di­fe­re­n­cia fu­n­da­me­n­tal entre WSL2 y su versión anterior se encuentra en la ar­qui­te­c­tu­ra del software. Mientras que WSL1 cuenta con una capa de co­m­pa­ti­bi­li­dad para la tra­n­s­fe­re­n­cia de la ejecución del código entre Windows y Linux, WSL2 está basado en la vi­r­tua­li­za­ción de un sistema operativo Linux. La máquina virtual que se utiliza se ejecuta en el hi­pe­r­vi­sor nativo de Windows Hyper-V, que ofrece un re­n­di­mie­n­to es­pe­cia­l­me­n­te alto.

Mientras que el abanico de funciones de la interfaz Linux de WSL1 era limitado, WSL2 utiliza un núcleo Linux completo. Se trata de núcleo op­ti­mi­za­do es­pe­cia­l­me­n­te para WSL2 en cuanto a tamaño y a re­n­di­mie­n­to, basado en el código original estable de “kernel.org”. En la práctica, este pla­n­tea­mie­n­to se traduce en una ace­le­ra­ción de la ejecución del código por un factor de entre dos y veinte. Además, WSL2 requiere menos capacidad de memoria que la versión previa. Para los usuarios resulta es­pe­cia­l­me­n­te útil que en el núcleo se realicen las tareas de ma­n­te­ni­mie­n­to como parte de las ac­tua­li­za­cio­nes regulares de Windows.

Puesto que WSL1 utiliza una capa de tra­du­c­ción para gestionar los accesos a Linux y a Windows, algunos tipos de software es­pe­cia­li­za­do de Linux no pueden incluirse. Por el contrario, la vi­r­tua­li­za­ción del núcleo de WSL2 ofrece co­m­pa­ti­bi­li­dad completa con los accesos al sistema. En la práctica, esto significa que los elementos de software complejo como Docker también se pueden ejecutar con WSL2. Además, desde el entorno Linux se obtiene acceso a la tarjeta gráfica, lo que resulta ventajoso sobre todo en apli­ca­cio­nes con grandes conjuntos de datos, como las que se usan para el machine learning o en contextos de data science.

Aunque se re­co­mie­n­da la uti­li­za­ción de WSL2 en sistemas modernos, ambas versiones pueden funcionar en paralelo. En cada di­s­tri­bu­ción Linux es posible de­te­r­mi­nar qué versión WSL se debe utilizar para el control.

¿Cuáles son los re­qui­si­tos de WSL2?

Los re­qui­si­tos del sistema para la uti­li­za­ción de WSL2 dependen del pro­ce­sa­dor que el ordenador tenga instalado:

  • Para sistemas x64 se requiere como mínimo la versión 1903 con build 18362 o superior.
  • Para sistemas ARM64 se requiere como mínimo la versión 2004 con build 19041 o superior.

Si no estás seguro de qué versión y edición de Windows utilizas, lo puedes comprobar siguiendo estos pasos:

  • Pulsa el [símbolo de Windows] + [R], introduce “winver” en el campo de texto que aparece y pulsa [Intro].
  • También lo puedes consultar haciendo clic en “Inicio” > “Co­n­fi­gu­ra­ción” > “Sistema” > “Acerca de” > “Es­pe­ci­fi­ca­cio­nes de Windows”.

¿Cómo se puede utilizar WSL2 en el propio sistema?

Existen dos métodos pri­n­ci­pa­les con los que utilizar WSL2 en tu sistema propio. A co­n­ti­nua­ción, mostramos las dos variantes en detalle:

  1. Si aún no has instalado ningún su­b­si­s­te­ma de Windows para Linux, instala WSL2 en tu sistema y configura una di­s­tri­bu­ción Linux.
  2. Si ya eres usuario de WSL1, instala WSL2 y ejecuta una ac­tua­li­za­ción de la in­s­ta­la­ción Linux existente.

Para co­n­fi­gu­rar WSL2 en tu sistema, necesitas Windows Po­we­r­She­ll. Ten en cuenta que deberás abrir Po­we­r­She­ll como ad­mi­ni­s­tra­dor para realizar la in­s­ta­la­ción. Copia el comando mostrado en la línea de comandos de Po­we­r­She­ll y ejecútalo.

Activar WSL2 e instalar una di­s­tri­bu­ción Linux

En caso de que aún no tengas WSL1 instalado en tu sistema, sigue nuestras in­s­tru­c­cio­nes para instalar WSL2 y una di­s­tri­bu­ción Linux:

Paso 1: activar Windows Subsystem for Linux

Copia el siguiente comando en la línea de comandos de Po­we­r­She­ll y ejecútalo:

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

Paso 2: activar el fu­n­cio­na­mie­n­to del ordenador virtual

Copia el siguiente comando en la línea de comandos de Po­we­r­She­ll y ejecútalo:

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

Paso 3: instalar el paquete de ac­tua­li­za­ción para el núcleo Linux

A co­n­ti­nua­ción, descarga el paquete de in­s­ta­la­ción apropiado para tu sistema. Ejecuta entonces el asistente para la in­s­ta­la­ción. Se­le­c­cio­na el paquete adecuado de­pe­n­die­n­do de la ar­qui­te­c­tu­ra del pro­ce­sa­dor de tu ordenador:

Paso 4: definir WSL2 como versión estándar

Copia el siguiente comando en la línea de comandos de Po­we­r­She­ll y ejecútalo:

wsl --set-default-version 2

Paso 5: reiniciar el ordenador

Reinicia el ordenador.

Paso 6: se­le­c­cio­nar e instalar la di­s­tri­bu­ción Linux

Abre Microsoft Store y busca “Linux”. Se mostrará una serie de apli­ca­cio­nes de Linux di­s­po­ni­bles.

Haz clic en la di­s­tri­bu­ción Linux deseada y después en “Instalar”. En caso de que no estés seguro de qué di­s­tri­bu­ción es la adecuada, te re­co­me­n­da­mos la in­s­ta­la­ción de Ubuntu Linux 20.04 LTS.

Una vez fi­na­li­za­da la in­s­ta­la­ción, haz clic en “Abrir”.

Paso 7: co­n­fi­gu­rar la di­s­tri­bu­ción Linux

En la ventana que aparece, se descargan y de­s­co­m­pri­men algunos paquetes de inicio. Esto puede durar unos minutos. A co­n­ti­nua­ción, se so­li­ci­ta­rá que indiques tu nombre de usuario y co­n­tra­se­ña para la in­s­ta­la­ción de Linux.

Nota

Con WSL puedes ejecutar varias apli­ca­cio­nes Linux de manera paralela. Si quieres hacerlo, deberás crear una cuenta de usuario in­de­pe­n­die­n­te para cada di­s­tri­bu­ción.

Ac­tua­li­zar una di­s­tri­bu­ción Linux existente de WSL1 a WSL2

Si ya eres usuario de WSL1 y has co­n­fi­gu­ra­do una in­s­ta­la­ción Linux, ejecuta en primer lugar los pasos 2-4 de las in­s­tru­c­cio­nes an­te­rio­res. Utiliza el siguiente comando de Po­we­r­She­ll para modificar una di­s­tri­bu­ción Linux ya instalada en WSL2:

wsl --set-version <distribution> 2</distribution>

Ten en cuenta que la variable “<di­s­tri­bu­tion>” se debe sustituir por el nombre de una di­s­tri­bu­ción Linux instalada. Utiliza el siguiente comando Po­we­r­She­ll para vi­sua­li­zar una lista de las di­s­tri­bu­cio­nes Linux in­s­ta­la­das junto con sus nombres:

wsl --list --verbose
Nota

Los ajustes de cada di­s­tri­bu­ción Linux instalada se almacenan en un archivo de co­n­fi­gu­ra­ción llamado “wsl.conf”. Este archivo seguirá fu­n­cio­na­n­do después del cambio a WSL2.

Co­m­pa­ra­ción final de las ca­ra­c­te­rí­s­ti­cas de WSL2 y WSL1

Como ya hemos visto, la uti­li­za­ción de WSL2 ofrece numerosas ventajas frente a su versión anterior. La siguiente tabla resume los puntos en común y las di­fe­re­n­cias entre las dos versiones:

Ca­ra­c­te­rí­s­ti­ca WSL1 WSL2
In­te­gra­ción entre Windows y Linux ✓ ✓
Arranque rápido del entorno Linux ✓ ✓
Elevado re­n­di­mie­n­to y baja necesidad de recursos ✓ ✓
Basado en máquina virtual (VM) ✗ ✓
Núcleo completo de Linux ✗ ✓
Co­m­pa­ti­bi­li­dad completa con llamadas al sistema ✗ ✓
Permite la uti­li­za­ción paralela de VMware y Vi­r­tua­l­Box ✓ ✓
Permite la uti­li­za­ción más allá de los sistemas de archivo del sistema operativo ✓ ✗
Ir al menú principal