Comparación de WSL 1 con WSL 2

La diferencia y los motivos principales para actualizar el Subsistema de Windows para Linux de WSL 1 a WSL 2 son:

  • Aumento del rendimiento del sistema de archivos.
  • Compatibilidad completa con las llamadas del sistema.

WSL 2 usa la tecnología de virtualización más reciente y óptima para ejecutar un kernel de Linux en una máquina virtual (VM) de utilidad ligera. Sin embargo, WSL 2 no es una experiencia de VM tradicional.

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

Como puede ver en la tabla de comparación anterior, la arquitectura de WSL 2 supera a la de WSL 1 de varias maneras, con la excepción del rendimiento en los sistemas de archivos del sistema operativo.

WSL 2 solo está disponible en Windows 10, versión 1903, compilación 18362 o superior. 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 18362, no se admite WSL en absoluto.

Nota:

WSL 2 funcionará con VMWare 15.5.5 y versiones posteriores y VirtualBox 6 y versiones posteriores. 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ó.

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.
  • 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.

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.