Preguntas más frecuentes sobre el subsistema de Windows para Linux

General

¿Qué es el Subsistema de Windows para Linux (WSL)?

el Subsistema de Windows para Linux (WSL) es una característica del sistema operativo Windows que permite ejecutar un sistema de archivos Linux, junto con herramientas de línea de comandos de Linux y aplicaciones de GUI, directamente en Windows, junto con las aplicaciones y el escritorio Windows tradicionales.

Consulta la página Acerca de para obtener más detalles.

¿Para quién es WSL?

Se trata principalmente de una herramienta para desarrolladores, especialmente desarrolladores web, aquellos que trabajan en proyectos de código abierto o que implementan en entornos de servidor Linux. WSL es para cualquier persona que quiera usar Bash, herramientas comunes de Linux sedawk (, , etc.). y marcos de trabajo de Linux (Ruby, Python, etc.) pero también le gusta el uso de Windows de productividad

¿Qué puedo hacer con WSL?

WSL le permite ejecutar Linux en un shell de Bash con su elección de distribución (Ubuntu, Debian, OpenSUSE, Kali, Alpine, etc.). Con Bash, puedes ejecutar aplicaciones y herramientas de Linux de línea de comandos. Por ejemplo, escribe lsb_release -a y presiona Entrar para ver los detalles de la distribución de Linux que se está ejecutando actualmente:

Captura de pantalla de los detalles de distribución

También puede acceder al sistema de archivos de la máquina local desde el shell de Bash de Linux; encontrará las unidades locales montadas en la /mnt carpeta . Por ejemplo, la unidad C: se monta en /mnt/c:

Captura de pantalla de la unidad C montada

¿Puede describir un flujo de trabajo de desarrollo típico que incorpore WSL?

WSL va destinado a personas desarrolladoras y está pensado para usarse como parte de un bucle de desarrollo interno. Supongamos que Sam está creando una canalización de CI/CD (entrega continua de integración continua) y quiere probarla primero en un equipo local (portátil) antes de implementarla en & la nube. Sam puede habilitar WSL (WSL 2 para mejorar la velocidad y el rendimiento) y, a continuación, usar una instancia original de Ubuntu de Linux localmente (en el portátil) con los comandos y herramientas de Bash que & prefieran. Después de verificar localmente la canalización del desarrollo, Sam puede insertar esa canalización de CI/CD en la nube. Para ello, debe convertirla en un contenedor de Docker e insertar dicho contenedor en una instancia en la nube, que se ejecute en una máquina virtual Ubuntu preparada para producción.

¿Qué es Bash?

Bash es un conocido shell basado en texto, que cuenta con un lenguaje de comandos. Es el shell predeterminado que está incluido en Ubuntu, en otras distribuciones de Linux y en macOS. Los usuarios pueden escribir comandos en un shell para ejecutar scripts o ejecutar comandos y herramientas para realizar varias tareas.

¿Cómo funciona?

Consulte este artículo en el blog de la línea de comandos de Windows: A Deep Dive Into How WSL Allows Windows to Access Linux Files (Un análisis detallado de cómo WSL permite a Windows acceder a archivos de Linux), donde se detalla la tecnología subyacente.

¿Por qué debo usar WSL en lugar de Linux en una VM?

WSL necesita menos recursos (CPU, memoria y almacenamiento) que una máquina virtual completa. Asimismo, WSL también te permite ejecutar aplicaciones y herramientas de línea de comandos de Linux junto con la línea de comandos de Windows, aplicaciones de escritorio y de Store, así como la posibilidad de acceder a los archivos de Windows desde Linux. Esto te permite usar las aplicaciones de Windows y las herramientas de línea de comandos de Linux en el mismo conjunto de archivos, si así lo deseas.

¿Por qué debo usar, por ejemplo, Ruby en Linux en lugar de en Windows?

Algunas herramientas multiplataforma se crearon suponiendo que el entorno en el que se ejecutan se comporta como Linux. Por ejemplo, algunas herramientas suponen que pueden obtener acceso a rutas de acceso de archivos muy largas o que existen archivos o carpetas específicos. Esto suele provocar problemas en Windows, que a menudo se comporta de forma diferente de Linux.

Muchos lenguajes como Ruby y Node.js a menudo se porte y se ejecutan muy bien en Windows. Sin embargo, no todos los propietarios de bibliotecas Ruby Gem o node/NPM portan sus bibliotecas para que admitan Windows, y muchas tienen dependencias específicas de Linux. Esto a menudo puede dar como resultado que los sistemas que se crearon con herramientas y bibliotecas de este tipo sufran errores de compilación y, a veces, del entorno de ejecución o tengan comportamientos no deseados en Windows.

Estos son solo algunos de los problemas que han provocado que muchas personas pidan a Microsoft que mejore las herramientas de línea de comandos de Windows, lo que nos llevó a asociarnos con Canonical para permitir que las herramientas de línea de comandos nativas de Bash y Linux se ejecuten en Windows.

¿Qué significa esto para PowerShell?

Al trabajar con proyectos de OSS, existen numerosos escenarios en los que es enormemente útil usar Bash desde un símbolo del sistema de PowerShell. La compatibilidad con Bash es complementaria y fortalece el valor de la línea de comandos en Windows, permitiendo que PowerShell y la comunidad de PowerShell aprovechen otras tecnologías populares.

Puedes leer más en el blog del equipo de PowerShell: Bash para Windows: por qué es impresionante y qué significa para PowerShell.

¿Qué procesadores admite WSL?

WSL admite las CPU x64 y ARM.

¿Cómo accedo a la unidad C:?

Los puntos de montaje de las unidades de disco duro en la máquina local se crean automáticamente y proporcionan un acceso sencillo al Windows archivos.

/mnt/ letra de unidad > /

Un ejemplo de uso sería cd /mnt/c para acceder a c:\

¿Qué debo hacer para instalar el Administrador de credenciales de GIT? (¿Cómo puedo usar mis permisos de GIT de Windows en WSL?)

Consulte el tutorial Introducción aluso de Git en Subsistema de Windows para Linux , que incluye una sección sobre cómo configurar Git Administrador de credenciales y almacenar tokens de autenticación en Windows Administrador de credenciales.

¿Cómo uso un archivo de Windows con una aplicación de Linux?

Uno de los beneficios de WSL es que puedes acceder a tus archivos mediante aplicaciones o herramientas de Windows y Linux.

WSL monta las unidades fijas de la máquina que están en la carpeta /mnt/<drive> en tus distribuciones de Linux. Por ejemplo, la unidad C: se monta en /mnt/c/

Con las unidades montadas, puede editar código en , por ejemplo, mediante Visual Studio / o VS Code , y compilar o probar ese código en Linux mediante el acceso a los mismos archivos a través de C:\dev\myproj\C:\dev\myproj\ .

Obtenga más información en el artículo Working across Windows and Linux file systems (Trabajar entre sistemas de archivos de Windows y Linux).

¿Los archivos de la unidad de Linux son diferentes de la unidad de Windows montada?

  1. Los archivos de la raíz de Linux (es decir, ) se controlan mediante WSL, que se alinea con el comportamiento de / Linux, incluidos, entre otros:

    • Archivos que contienen caracteres de nombre de archivo de Windows que no son válidos
    • Vínculos simbólicos creados para usuarios que no son administradores
    • La opción de cambiar atributos de archivo a través de chmod y chown
    • Distinción de mayúsculas y minúsculas en archivos o carpetas
  2. Los archivos de las unidades montadas se controlan mediante Windows y tienen los siguientes comportamientos:

    • Compatibilidad para la distinción de mayúsculas y minúsculas
    • Todos los permisos se establecen para reflejar mejor los permisos de Windows

¿Cómo desinstalo una distribución de WSL?

Para quitar una distribución de WSL y eliminar todos los datos asociados a esa distribución de Linux,ejecute donde es el nombre de la distribución de Linux, que se puede ver en la lista del <distroName>wsl -l comando.

Además, puede desinstalar la aplicación de distribución de Linux en el equipo como cualquier otra aplicación de la tienda.

Para más información sobre los comandos wsl, consulte el artículo Comandos básicos para WSL.

¿Cómo ejecuto un servidor OpenSSH?

OpenSSH se incluye Windows como característica opcional. Consulte el documento Install OpenSSH (Instalar OpenSSH). Los privilegios de administrador Windows para ejecutar OpenSSH en WSL. Para ejecutar un servidor OpenSSH, ejecute la distribución de WSL (es decir, Ubuntu) o Terminal Windows como administrador. Hay varios recursos que abarcan escenarios SSH con WSL. Consulte los artículos de blog de Scott Hanselman: How to SSH into a Windows 10 Machine from Linux OR Windows OR anywhere, How to SSH into WSL2 on Windows 10 from anexternal machine , THE EASY WAY how to SSH into Bash and WSL2 on Windows 10 from an external machiney How to use Windows 10 OpenSSH integrado para ssh automáticamente en una máquina Linux remota.

¿Cómo cambio el idioma de visualización de WSL?

La instalación de WSL intentará cambiar automáticamente la configuración regional de Ubuntu para que coincida con la configuración regional de la instalación de Windows. Si no quieres que esto pase, puedes ejecutar este comando para cambiar la configuración regional de Ubuntu una vez finalizada la instalación. Tendrá que volver a iniciar la distribución de WSL para que este cambio suba efecto.

En el ejemplo siguiente se cambia la configuración regional a en-US:

sudo update-locale LANG=en_US.UTF8

¿Por qué no tengo acceso a Internet desde WSL?

Algunos usuarios han detectado problemas con aplicaciones de firewall específicas que bloquean el acceso a Internet en WSL. Los firewalls que dan error son:

  1. Kaspersky
  2. AVG
  3. Avast
  4. Symantec Endpoint Protection
  5. F-Secure

En algunos casos, si desactivas el firewall podrás acceder. En otros casos, simplemente tener instalado el firewall parece bloquear el acceso a Internet.

¿Cómo obtengo acceso a un puerto desde WSL en Windows?

WSL comparte la dirección IP de Windows, ya que se ejecuta en Windows. Así pues, puedes obtener acceso a cualquier puerto en localhost; por ejemplo, si tienes contenido web en el puerto 1234, puedes obtener acceso https://localhost:1234 al explorador de Windows. Para obtener más información, vea Acceso a aplicaciones de red.

¿Cómo puedo realizar una copia de seguridad de mis distribuciones de WSL o moverlas de una unidad a otra?

La mejor manera de realizar copias de seguridad o mover las distribuciones es a través de los comandos de exportación e importación disponibles Windows versión 1809 y posteriores. Puedes exportar toda la distribución a un tarball mediante el comando wsl --export. A continuación, puede volver a importar esta distribución en WSL mediante el comando , que puede dar nombre a una nueva ubicación de unidad para la importación, lo que le permite realizar una copia de seguridad y guardar los estados de (o mover) las distribuciones de wsl --import WSL.

Tenga en cuenta que los servicios de copia de seguridad tradicionales que copian los archivos de copia de seguridad de las carpetas de AppData (Copias de seguridad de Windows) no dañarán los archivos de Linux.

WSL 2

¿WSL 2 utiliza Hyper-V? ¿Estará disponible en Windows 10 Home?

WSL 2 está disponible en todas las SKU de escritorio en las que WSL está disponible, Windows 10 Home.

La versión más reciente de WSL usa la arquitectura de Hyper-V para habilitar su virtualización. Esta arquitectura estará disponible en el componente opcional "Plataforma de máquina virtual". Este componente opcional estará disponible en todas las SKU. Pronto podrás ver más detalles sobre esta experiencia cuando se acerque el lanzamiento de WSL 2.

¿Qué pasará con WSL 1? ¿Se abandonará?

Actualmente no tenemos planes para dejar en desuso WSL 1. Puedes ejecutar distribuciones de WSL 1 y WSL 2 en paralelo, y puedes actualizar y degradar cualquier distribución en cualquier momento. La adición de WSL 2 como una nueva arquitectura presenta una plataforma mejor para que el equipo de WSL entregue características que convierten WSL en un método increíble para ejecutar un entorno de Linux en Windows.

¿Podré ejecutar WSL 2 y otras herramientas de virtualización de terceros, como VMware o VirtualBox?

Algunas aplicaciones de terceros, como VMware y VirtualBox, no pueden funcionar cuando Hyper-V está en uso, lo que significa que no podrán ejecutarse mientras WSL 2 esté habilitado. Sin embargo, VirtualBox y VMware han publicado versiones compatibles con Hyper-V y WSL2 recientemente. Puede obtener más información sobre los cambios de VirtualBox aquí y sobre los cambios de VMware aquí. Para solucionar problemas, eche un vistazo a las discusiones de problemas de VirtualBox en el repositorio de WSL en GitHub.

Trabajamos de forma constante en las soluciones para admitir la integración de terceros de Hyper-V. Por ejemplo, exponemos un conjunto de API llamado Hypervisor Platform que los proveedores de virtualización externos pueden usar para hacer que su software sea compatible con Hyper-V. Esto permite que las aplicaciones usen la arquitectura de Hyper-V para su emulación, como Google Android Emulator y VirtualBox 6 y versiones posteriores, que ahora son compatibles con Hyper-V.

Consulte el repositorio de problemas de WSL para obtener más información sobre los problemas de WSL 2 con VirtualBox 6.1.

*Si busca una máquina virtual de Windows 10, las descargas de máquina virtual de VMWare, Hyper-V, VirtualBox y Parallels están disponibles en el Windows Centro de desarrollo.

¿Puedo acceder a la GPU en WSL 2? ¿Hay planes para aumentar la compatibilidad de hardware?

Hemos publicado compatibilidad para acceder a la GPU dentro de las distribuciones de WSL 2. Esto significa que ahora puede usar WSL para escenarios de aprendizaje automático, inteligencia artificial y ciencia de datos más fácilmente cuando hay involucrados conjuntos de macrodatos. Consulte el tutorial Introducción a la compatibilidad con GPU. A partir de ahora, WSL 2 no incluye compatibilidad de serie ni compatibilidad con dispositivos USB. Estamos investigando la mejor manera de agregar estas características.

¿WSL 2 podrá usar aplicaciones de redes?

Sí, en general, las aplicaciones de redes serán más rápidas y funcionarán mejor, ya que ofrecemos compatibilidad total con las llamadas del sistema. Sin embargo, la nueva arquitectura utiliza componentes de redes virtualizados. Esto significa que en las compilaciones iniciales de la versión preliminar, WSL 2 se comportará de forma más similar a una máquina virtual, por ejemplo: WSL 2 tendrá una dirección IP distinta de la del equipo host. Nos comprometemos a que WSL 2 tenga el mismo aspecto que WSL 1, lo que incluye mejorar nuestra historia de redes.

¿Puedo ejecutar WSL 2 en una máquina virtual?

Sí. Debes asegurarte de que la máquina virtual tiene habilitada la virtualización anidada. Para habilitarlo en el host de Hyper-V primario, ejecuta el siguiente comando en una ventana de PowerShell con privilegios de administrador:

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

Asegúrate de reemplazar "<VMName>" por el nombre de tu máquina virtual.

¿Puedo usar wsl.conf en WSL 2?

WSL 2 admite el mismo archivo wsl.conf que se usa en WSL 1. Esto significa que todas las opciones de configuración que hayas establecido en una distribución de WSL 1, como el montaje automático de unidades de Windows, la habilitación o deshabilitación de la interoperabilidad, el cambio del directorio donde se montarán las unidades de Windows, etc., funcionarán en WSL 2. Puede obtener más información sobre las opciones de configuración de WSL en la página Administración de distribución. Obtenga más información sobre la compatibilidad con el montaje de unidades, discos, dispositivos o discos duros virtuales (VHD) en el artículo Montaje de un disco Linux en WSL 2.

¿Dónde puedo enviar mis comentarios?

Los problemas del repositorio de productos de WSL le permiten:

  • Buscar problemas existentes para ver si hay algún asociado que experimenta el mismo problema. Tenga en cuenta que, en la barra de búsqueda, puede quitar "is:open" para incluir los problemas que ya se han resuelto en la búsqueda. Considere la posibilidad de comentar o indicar que le gusta algún problema abierto para el que le gustaría expresar interés de seguir como una prioridad.
  • Presentación de un nuevo problema. Si ha experimentado un problema con WSL y parece que no existe, puede seleccionar el botón verde Nuevo problema y, a continuación, elegir WSL - Informe de errores. Deberá incluir un título para el problema, el número de compilación de Windows (ejecute cmd.exe /c ver para ver el número de compilación actual), tanto si ejecuta WSL 1 o 2, el número de versión actual del kernel de Linux (ejecute wsl.exe --status o cat /proc/version), el número de versión de la distribución (ejecute lsb_release -r), cualquier otra versión de software implicada, los pasos de reproducción, el comportamiento esperado, el comportamiento real y los registros de diagnóstico si están disponibles y son adecuados. Para más información, consulte Contribución a WSL.
  • Para presentar una solicitud de característica, seleccione el botón verde Nuevo problema y, a continuación, seleccione Solicitud de característica. Tendrá que atender algunas preguntas de descripción de la solicitud.

También puede:

Si quieres mantenerte al día con las últimas noticias de WSL, puedes hacerlo con: