Este artículo debe actualizarse . ( Junio de 2021 ) |
Otros nombres | WSL |
---|---|
Desarrollador (es) | Microsoft |
Versión inicial | 2 de agosto de 2016 |
Lanzamiento estable | WSL 2/12 de junio de 2019 [1] |
Repositorio | github |
Sistema operativo | Windows 10 , Windows Server 2019 , Windows 11 |
Predecesor | Servicios de Windows para UNIX |
Escribe | Capa de compatibilidad , virtualización |
Licencia | Subsistema: software comercial patentado ; Kernel de Linux: GNU GPLv2 (solo) con algún código bajo variantes GPL compatibles o bajo licencias permisivas como BSD, MIT |
Sitio web | docs |
El Subsistema de Windows para Linux ( WSL ) es una capa de compatibilidad para ejecutar ejecutables binarios de Linux (en formato ELF ) de forma nativa en Windows 10 , Windows 11 , [2] y Windows Server 2019 .
En mayo de 2019, se anunció WSL 2 , [3] introduciendo cambios importantes como un kernel de Linux real , [4] a través de un subconjunto de características de Hyper-V . Desde junio de 2019, WSL 2 está disponible para los clientes de Windows 10 a través del programa Windows Insider , incluida la edición Home. [5] WSL no está disponible para todos los usuarios de Windows 10 de forma predeterminada. Puede instalarse uniéndose al programa Windows Insider o mediante la instalación manual. [6]
La primera versión de WSL proporciona una interfaz de kernel compatible con Linux desarrollada por Microsoft, que no contiene código de kernel de Linux , [7] que luego puede ejecutar un espacio de usuario GNU encima, como el de Ubuntu , [8] [9] [10] [11] openSUSE , [12] SUSE Linux Enterprise Server , [13] [14] [15] Debian [16] y Kali Linux . [17] Tal espacio de usuario podría contener un lenguaje de comandos y shell GNU Bash , con herramientas nativas de línea de comandos GNU ( sed , awk , etc.), intérpretes de lenguajes de programación ( Ruby , Python , etc.) e incluso aplicaciones gráficas (utilizando un servidor X11 en el lado del host). [18]
La arquitectura se rediseñó en WSL 2, [3] con un kernel de Linux ejecutándose en un entorno de máquina virtual ligero .
WSL beta se introdujo en Windows 10 versión 1607 (actualización de aniversario) el 2 de agosto de 2016. Solo se admitía Ubuntu (con Bash como shell predeterminado). WSL beta también se llamó "Bash en Ubuntu en Windows" o "Bash en Windows".
WSL ya no era beta en Windows 10 versión 1709 (Fall Creators Update), lanzado el 17 de octubre de 2017. Se podían instalar varias distribuciones de Linux y estaban disponibles para su instalación en la Tienda Windows . [15]
WSL solo está disponible en las versiones de 64 bits de Windows 10 a partir de la versión 1607. También está disponible en Windows Server 2019.
Microsoft anunció WSL 2 el 6 de mayo de 2019, [3] que presenta un backend completamente nuevo basado en VM (basado en un subconjunto de características de Hyper-V) en lugar de la capa de adaptación de llamada al sistema anterior. WSL 2 se envió con Windows 10 versión 2004, [19] y también se actualizó a Windows 10 versión 1903 y 1909. [20]
El soporte de GPU para WSL 2 se introdujo en la compilación de Windows 20150. [21] El soporte de GUI para WSL 2 se introdujo en la compilación de Windows 21364. [22] Ambos se envían en Windows 11.
Microsoft presentó una versión de WSL de la Tienda Windows el 11 de octubre de 2021 para Windows 11. [23]
La primera incursión de Microsoft para lograr una compatibilidad similar a Unix en Windows comenzó con el Subsistema POSIX de Microsoft , reemplazado por los Servicios de Windows para UNIX a través de MKS / Interix , que finalmente quedó en desuso con el lanzamiento de Windows 8.1 . La tecnología detrás del Subsistema de Windows para Linux se originó en el inédito Proyecto Astoria , que permitió que algunas aplicaciones de Android se ejecutaran en Windows 10 Mobile . [24] Primero estuvo disponible en Windows 10 Insider Preview build 14316. [25]
Mientras que los proyectos anteriores de Microsoft y Cygwin de terceros se habían centrado en crear sus propios entornos únicos tipo Unix basados en el estándar POSIX , WSL apunta a la compatibilidad nativa con Linux. En lugar de incluir la funcionalidad no nativa en las llamadas al sistema Win32 como estos sistemas anteriores utilizaban, el diseño inicial de WSL (WSL 1) aprovechó el ejecutivo del kernel de NT para servir a los programas de Linux como procesos mínimos especiales y aislados (conocidos como "pico procesos" ) adjuntos al kernel modo "pico proveedores" como llamada de sistema dedicada y excepción manipuladores distintos de los de un proceso NT vainilla, optando por reutilizar las implementaciones NT existentes siempre que sea posible. [26]
Aunque WSL (a través de este diseño inicial) fue mucho más rápido y posiblemente mucho más popular que sus hermanos proyectos UNIX-on-Windows, los ingenieros del kernel de Windows encontraron dificultades para tratar de aumentar el rendimiento de WSL y la compatibilidad de syscall al intentar remodelar el kernel NT existente para reconocer y funcionar correctamente en la API de Linux . En una conferencia de Microsoft Ignite en 2018, los ingenieros de Microsoft ofrecieron una descripción general de alto nivel de una nueva tecnología Hyper-V VM "liviana" para la contenedorización donde un kernel virtualizado podría hacer uso directo de primitivas NT en el host. [27]En 2019, Microsoft anunció una arquitectura WSL (WSL 2) completamente rediseñada que utiliza esta tecnología de VM liviana que aloja imágenes reales (personalizadas) del kernel de Linux, que afirma ser totalmente compatible con syscall. [4]
Microsoft ve WSL como "principalmente una herramienta para desarrolladores, especialmente desarrolladores web y aquellos que trabajan en proyectos de código abierto". [18] En septiembre de 2018, Microsoft dijo que "WSL requiere menos recursos (CPU, memoria y almacenamiento) que una máquina virtual completa" (que antes de WSL era la forma más directa de ejecutar software Linux en un entorno Windows), mientras también permite a los usuarios utilizar aplicaciones de Windows y herramientas de Linux en el mismo conjunto de archivos. [18]
En abril de 2021, Microsoft lanzó una versión de prueba de Windows 10 que también incluye la capacidad de ejecutar aplicaciones de interfaz gráfica de usuario (GUI) de Linux utilizando WSL 2 y CBL-Mariner . [28] [29] El Subsistema de Windows para Linux GUI (WSLg) fue lanzado oficialmente en la conferencia Microsoft Build 2021 . Se incluye en Windows 10 Insider build 21364 o posterior. [30]
LXSS Manager Service es el servicio encargado de interactuar con el subsistema (a través de los controladores lxss.sys
y lxcore.sys
), y la forma en que Bash.exe (no confundir con los Shells que brindan las distribuciones de Linux) lanza los procesos de Linux, además de manejar las llamadas al sistema Linux y los bloqueos binarios durante su ejecución. [31]
Todos los procesos de Linux invocados por un usuario en particular van a una "Instancia de Linux" (normalmente, el primer proceso invocado es init ). Una vez que se cierran todas las aplicaciones, se cierra la instancia.
Desarrollador (es) | Microsoft |
---|---|
Versión inicial | 2 de agosto de 2016 |
Sistema operativo | Microsoft Windows |
Escribe | Mando |
Sitio web | docs .microsoft .com / en-us / windows / wsl / |
El wsl.exe
comando se usa para administrar distribuciones en el Subsistema de Windows para Linux en la línea de comandos . Puede enumerar las distribuciones disponibles, establecer una distribución predeterminada y desinstalar distribuciones. [32] El comando también se puede utilizar para ejecutar archivos binarios de Linux desde el símbolo del sistema de Windows o Windows PowerShell . [33] wsl.exe
reemplaza lo lxrun.exe
que está obsoleto a partir de Windows 10 1803 y versiones posteriores. [34]
Ejecute el uname
comando en WSL con PowerShell.
PS C: \ temp> wsl uname --todos los Linux WikiMachine 4.4.0-18362-Microsoft # 1-Microsoft Lun 18 de marzo 12:02:00 PST 2019 x86_64 x86_64 x86_64 GNU / Linux
Ejemplo usando un sudo
comando desde el símbolo del sistema.
C: \ temp> wsl sudo apt-get update [sudo] contraseña para el nombre de usuario: Hit: 1 https://archive.ubuntu.com/ubuntu xenial InRelease Get: 2 https://security.ubuntu.com/ubuntu xenial- seguridad InRelease [94,5 kB]
El diseño de WSL 1 no presenta emulación / virtualización de hardware (a diferencia de otros proyectos como coLinux) y hace uso directo del sistema de archivos host (a través de VolFS
y DrvFS
) [35] y algunas partes del hardware, como la red, lo que garantiza la interoperabilidad. Por ejemplo, se puede acceder a los servidores web a través de las mismas interfaces y direcciones IP configuradas en el host, y comparten las mismas restricciones sobre el uso de puertos que requieren permisos administrativos o puertos ya ocupados por otras aplicaciones. [36]
Hay ciertas ubicaciones (como carpetas del sistema) y configuraciones cuyo acceso / modificación está restringido, incluso cuando se ejecuta como root, con sudo desde el shell. Se debe iniciar una instancia con privilegios elevados para que "sudo" otorgue privilegios de root reales y permita dicho acceso. [18]
WSL 1 no es capaz de ejecutar todo el software de Linux, como los binarios de 32 bits, [37] [38] o aquellos que requieren servicios específicos del kernel de Linux no implementados en WSL. Debido a la falta de un kernel de Linux "real" en WSL 1, los módulos del kernel, como los controladores de dispositivo, no se pueden ejecutar. WSL 2, sin embargo, utiliza instancias de kernel de Linux virtualizadas en vivo.
Es posible ejecutar algunas aplicaciones gráficas (GUI) (como Mozilla Firefox ) instalando un servidor X11 dentro del entorno de Windows (host) (como VcXsrv o Xming ), [39] aunque no sin salvedades, como la falta de soporte de audio (aunque esto se puede remediar instalando PulseAudio en Windows de manera similar a X11) o aceleración de hardware (lo que da como resultado un rendimiento gráfico deficiente). El soporte para OpenCL y CUDA tampoco se está implementando actualmente, aunque está previsto para versiones futuras. [40] [41]
Microsoft declaró que WSL fue diseñado para el desarrollo de aplicaciones, y no para computadoras de escritorio o servidores de producción , recomendando el uso de máquinas virtuales ( Hyper-V ), Kubernetes y Azure para esos fines. [18]
En los puntos de referencia, el rendimiento de WSL 1 suele estar cerca de las distribuciones nativas de Linux Ubuntu, Debian, Intel Clear Linux u otras distribuciones de Linux. En algunas pruebas, la E / S es un cuello de botella para WSL. [42] [43] [44] Microsoft afirma que el backend WSL 2 rediseñado ofrece un aumento de veinte veces en la velocidad en ciertas operaciones en comparación con WSL 1. [4]
En junio de 2020, un benchmark con 173 pruebas con un AMD Threadripper 3970x muestra un buen rendimiento con WSL 2 (20H2) con un 87% del rendimiento de Ubuntu 20.04.0 LTS nativo. Esta es una mejora con respecto a WSL 1, que tiene solo el 70% del rendimiento de Ubuntu nativo en esta comparación. WSL 2 mejora el rendimiento de E / S, proporcionando un nivel casi nativo. [45] Una comparación de 69 pruebas con Intel i9 10900K en mayo de 2020 muestra casi el mismo rendimiento relativo. [46]
En diciembre de 2020, un benchmark con 43 pruebas con un AMD Ryzen 5900X muestra un buen desempeño con WSL 2 (20H2) con 93% del desempeño del nativo 20.04.1 LTS. Esta es una mejora con respecto a WSL 1, que tiene solo el 73% en esta comparación. [47]
La versión 2 introduce cambios en la arquitectura. Microsoft ha optado por la virtualización a través de un subconjunto altamente optimizado de características de Hyper-V, para ejecutar el kernel y las distribuciones (basadas en el kernel), prometiendo un rendimiento equivalente a WSL 1. Para compatibilidad con versiones anteriores , los desarrolladores no necesitan cambiar nada. en sus distribuciones publicadas. La configuración de WSL 2 se puede modificar mediante la configuración global de WSL , contenida en un archivo INI nombrado .wslconfig
en la carpeta de perfil de usuario . [48] [49]
La instalación de distribución reside dentro de un sistema de archivos con formato ext4 dentro de un disco virtual , y el sistema de archivos del host es accesible de forma transparente a través del protocolo 9P , [50] de manera similar a otras tecnologías de máquinas virtuales como QEMU . [51] Para los usuarios, Microsoft prometió hasta 20 veces el rendimiento de lectura / escritura de WSL 1. [52] Desde Windows se proporciona un redirector de red IFS para el acceso a archivos invitados de Linux utilizando el prefijo de ruta UNC de .\\wsl$
WSL 2 requiere Windows 10 versión 1903 o superior, con compilación 18362 o superior, para sistemas x64, y versión 2004 o superior, con compilación 19041 o superior, para sistemas ARM64. [53]
Bash ejecutándose en Windows 10
Firefox para Linux que se ejecuta en WSL
Administrador de paquetes Synaptic que se ejecuta en WSL
Algunas de las fuentes enumeradas en esta sección pueden no ser confiables . ( Diciembre de 2020 ) |
Se ha expresado la preocupación de que el Subsistema de Windows para Linux podría ser una forma de " adoptar, extender y extinguir " Linux. [54] [55] Richard Stallman ha expresado su temor de que la integración de la funcionalidad de Linux en Windows sólo obstaculice el desarrollo de software libre , y calificó esfuerzos como WSL como "un paso atrás en la campaña por la libertad". [56] Linus Torvalds , por el contrario, dijo que no le preocupaba la adquisición de Linux por parte de Microsoft, porque creía que la licencia GPL 2 de Linux y el tamaño del proyecto lo hacían imposible, además de citar la mayor cooperación de Microsoft con la comunidad Linux. . [57]
En esta nueva actualización, agregamos la capacidad de comenzar a usar opciones de configuración global para WSL.
Estas opciones están dirigidas a usuarios avanzados que desean personalizar aún más su experiencia WSL.
Wikimedia Commons tiene medios relacionados con el subsistema de Windows para Linux . |