Comparación de las versiones de WSL

Obtenga más información sobre las distintas versiones de WSL, como por ejemplo el motivo por el que WSL 2 es ahora la predeterminada, así como los escenarios o excepciones específicos que pueden garantizar el cambio de la distribución de Linux instalada a la arquitectura anterior de WSL 1.

Comparación de WSL 1 con WSL 2

En esta guía se compara WSL 1 con WSL 2, incluidas las excepciones para usar WSL 1 en lugar de WSL 2. Las principales diferencias entre WSL 1 y WSL 2 son el uso de un kernel de Linux real dentro de una VM administrada, la compatibilidad completa con las llamadas del sistema y el rendimiento en los sistemas operativos Linux y Windows. WSL 2 es la versión predeterminada actual al instalar una distribución de Linux y usa lo más grande y reciente en tecnología de virtualización para ejecutar un kernel de Linux dentro de una máquina virtual (VM) de utilidad ligera. WSL2 ejecuta distribuciones de Linux como contenedores aislados dentro de la máquina virtual administrada. Si su distribución ejecuta actualmente WSL 1 y desea actualizar a WSL 2, consulte actualización de WSL 1 a WSL 2.

Comparación de características

Característica WSL 1 WSL 2
Integración entre Windows y Linux
Tiempos de arranque rápidos
Huella de recurso pequeña en comparación con las máquinas virtuales tradicionales
Se ejecuta con las versiones actuales de VMWare y VirtualBox
VM administradas
Kernel de Linux completo
Compatibilidad completa con las llamadas del sistema
Rendimiento entre sistemas de archivos del sistema operativo
compatibilidad con systemd
Compatibilidad de IPv6

Como puede ver en la tabla de comparación anterior, la arquitectura de WSL 2 supera a WSL 1 de varias maneras, a excepción del rendimiento en los sistemas de archivos del sistema operativo, lo que se puede solucionar almacenando los archivos del proyecto en el mismo sistema operativo que las herramientas que se ejecutan para trabajar en el proyecto.

WSL 2 solo está disponible en Windows 11 o Windows 10, versión 1903, compilación 18362 o posterior. Para comprobar la versión de Windows, selecciona la tecla del logotipo de Windows + R, escribe winver y selecciona Aceptar. (También puedes escribir el comando ver en el símbolo del sistema de Windows). Es posible que tengas que actualizar a la versión más reciente de Windows. En el caso de las compilaciones inferiores a 14393, no se admite WSL en absoluto.

Para más información sobre las últimas actualizaciones de WSL 2, consulta el blog de la línea de comandos de Windows, incluida la compatibilidad con Systemd que ya está disponible en WSL y la actualización de WSL de septiembre de 2023 para obtener más información sobre la compatibilidad con IPv6.

Nota:

WSL 2 funcionará con VMware 15.5.5+ y aunque VirtualBox 6+ indica que hay soporte con WSL, todavía hay desafíos importantes que hacen que no sea compatible. Obtenga más información en nuestras preguntas más frecuentes.

Novedades de WSL 2

WSL 2 es una revisión importante de la arquitectura subyacente y usa tecnología de virtualización y un kernel de Linux para habilitar las nuevas características. Los principales objetivos de esta actualización son aumentar el rendimiento del sistema de archivos y agregar compatibilidad completa con las llamadas del sistema.

Arquitectura de WSL 2

Una experiencia de VM tradicional puede presentar un arranque lento, aislamiento y un consumo excesivo de recursos, además de exigir tiempo para su administración. WSL 2 no tiene estos atributos.

WSL 2 ofrece las ventajas de WSL 1, incluida una integración perfecta entre Windows y Linux, tiempos de arranque más breves y una superficie de recursos pequeña. Además, no requiere ninguna configuración ni administración de las VM. Aunque WSL 2 usa una VM, se administra y se ejecuta en segundo plano, lo que te permite disfrutar de la misma experiencia de usuario que WSL 1.

Kernel de Linux completo

Microsoft ha creado el kernel de Linux en WSL 2 a partir de la rama estable más reciente. Para ello, se basó en el origen disponible en kernel.org. Este kernel se ha ajustado especialmente para WSL 2, y se ha optimizado su tamaño y rendimiento para ofrecer una increíble experiencia de Linux en Windows. El kernel recibirá actualizaciones de Windows, lo que significa que obtendrás las correcciones de seguridad y las mejoras del kernel más recientes sin que debas administrarlo por tu cuenta.

El kernel de Linux para WSL 2 es de código abierto. Si quieres obtener más información, consulta la entrada de blog Envío de un kernel de Linux con Windows, escrita por el equipo que lo creó.

Obtenga más información en las Notas de la versión del Subsistema de Windows para el kernel de Linux.

Mayor rendimiento de E/S de archivos

Las operaciones de uso intensivo de archivos, como git clone, npm install, apt update, apt upgrade y otras, son considerablemente más rápidas con WSL 2.

El aumento de la velocidad real dependerá de la aplicación que se esté ejecutando y de cómo interactúes con el sistema de archivos. Las versiones iniciales de WSL 2 se ejecutan hasta 20 veces más rápido en comparación con WSL 1 al desempaquetar un archivo tarball comprimido, y aproximadamente entre 2y 5 veces más rápido cuando se usan git clone, npm install y cmake en distintos proyectos.

Compatibilidad completa con las llamadas del sistema

Los archivos binarios de Linux usan llamadas del sistema para ejecutar funciones, como el acceso a archivos, la solicitud de memoria, la creación de procesos, etc. Mientras que WSL 1 usaba una capa de traducción creada por el equipo de WSL, WSL 2 incluye su propio kernel de Linux con total compatibilidad con las llamadas del sistema. Entre las ventajas se incluyen las siguientes:

  • Un conjunto de aplicaciones nuevo y completo que se pueden ejecutar en WSL, como Docker , entre otros.

  • Todas las actualizaciones del kernel de Linux están listas para su uso inmediato. (No tienes que esperar a que el equipo de WSL implemente actualizaciones y agregue los cambios).

Excepciones para usar WSL 1 en lugar de WSL 2

Te recomendamos que uses WSL 2, ya que ofrece un rendimiento mayor y compatibilidad completa con las llamadas del sistema. Sin embargo, hay algunos escenarios específicos en los que podrías preferir el uso de WSL 1. Considera el uso de WSL 1 en los casos siguientes:

  • Los archivos de proyecto se deben almacenar en el sistema de archivos de Windows. WSL 1 ofrece un acceso más rápido a los archivos montados desde Windows.
    • Si vas a usar tu distribución de WSL para Linux para acceder a los archivos de proyecto en el sistema de archivos de Windows, y estos archivos no se pueden almacenar en el sistema de archivos de Linux, obtendrás un mayor rendimiento en los sistemas de archivos del sistema operativo mediante WSL 1.
  • Un proyecto requiere la compilación cruzada con las herramientas de Windows y Linux en los mismos archivos.
    • El rendimiento de los archivos en los sistemas operativos Windows y Linux es mayor en WSL 1 que en WSL 2, por lo que, si usas aplicaciones Windows para acceder a archivos de Linux, obtendrás un mayor rendimiento con WSL 1.
  • El proyecto necesita acceso a un puerto serie o un dispositivo USB. Sin embargo, la compatibilidad con dispositivos USB ahora está disponible para WSL 2 a través del proyecto USBIPD-WIN. Consulte Conexión de dispositivos USB para ver los pasos de configuración.
  • WSL 2 no incluye compatibilidad para acceder a los puertos serie. Obtenga más información en las preguntas más frecuentes o en el problema del repositorio de WSL en GitHub sobre la compatibilidad de serie.
  • Tiene requisitos de memoria estrictos
    • El uso de memoria de WSL 2 aumenta y se reduce al usarla. Cuando un proceso libera memoria, se devuelve automáticamente a Windows. Sin embargo, a partir de ahora WSL 2 no libera todavía las páginas almacenadas en caché de nuevo en Windows hasta que se cierra la instancia de WSL. Si tiene sesiones de WSL de larga duración o tiene acceso a una gran cantidad de archivos, esta memoria caché puede ocupar memoria en Windows. Estamos realizando un seguimiento del trabajo para mejorar esta experiencia en el problema 4166 del repositorio de GitHub de WSL.
  • Para aquellos que usan VirtualBox, asegúrese de usar la versión más reciente de VirtualBox y WSL 2. Consulte las preguntas más frecuentes relacionadas.
  • Si se basa en una distribución de Linux para tener una dirección IP en la misma red que el equipo host, es posible que tenga que configurar una solución alternativa para ejecutar WSL 2. WSL 2 se ejecuta como máquina virtual de Hyper-V. Se trata de un cambio con respecto al adaptador de red con puente usado en WSL 1, lo que significa que WSL 2 usa un servicio de traducción de direcciones de red (NAT) para su red virtual, en lugar de hacer puente en la tarjeta de interfaz de red (NIC) del host, lo que da lugar a una dirección IP única que cambiará en el reinicio. Para obtener más información sobre el problema y la solución alternativa que reenvía los puertos TCP de los servicios de WSL 2 al sistema operativo host, consulte el problema 4150 del repositorio de GitHub de WSL sobre el modo de puente NIC (solución alternativa de TCP).

Nota:

Considera la posibilidad de probar la extensión Remote WSL de VS Code para poder almacenar los archivos de proyecto en el sistema de archivos de Linux, mediante las herramientas de línea de comandos de Linux, pero también con VS Code en Windows para crear, editar, depurar o ejecutar el proyecto en un explorador de Internet, sin experimentar las ralentizaciones de rendimiento asociadas con el trabajo en los sistemas de archivos de Windows. Más información.

WSL en Microsoft Store

WSL ha quitado la funcionalidad de actualización de la imagen del sistema operativo Windows y la ha incluido en un paquete que está disponible a través de Microsoft Store, lo que agiliza las actualizaciones y el mantenimiento en cuanto estén disponibles, ya que no es preciso esperar a una actualización del sistema operativo Windows.

WSL se incluyó originalmente en el sistema operativo Windows como un componente opcional que debía habilitarse para instalar una distribución de Linux. La versión de WSL que se encuentra en Microsoft Store tiene la misma experiencia de usuario, ya que es el mismo producto, pero recibe actualizaciones y mantenimiento como un paquete de Microsoft Store, en lugar de como una actualización completa del sistema operativo. A partir de la versión 19044 de Windows, al ejecutar el comando wsl.exe --install se instalará la actualización de mantenimiento de WSL desde Microsoft Store. (Consulte la entrada de blog que anuncia esta actualización). Si ya usa WSL, puede actualizarlo para asegurarse de que recibe las características y el mantenimiento de WSL más recientes desde Store. Para ello, debe ejecutar wsl.exe --update.