Lo que debe saber sobre el uso de herramientas de Linux en Windows 10

Windows 10 ahora puede ejecutar (muchos) binarios de Linux. Sí, en serio. Esto es lo que necesita saber para aprovechar al máximo el Subsistema de Windows para Linux.

 

El año pasado, Microsoft añadió una inusual característica a Windows 10:  el soporte para Linux. El subsistema de Windows para Linux (WSL) – a veces llamado Bash en Windows – es “la implementación de Microsoft de una infraestructura compatible con Linux que se ejecuta encima y dentro del kernel de Windows”. Eso significa ejecutar binarios Linux sin salir de Windows.

“Bash en Windows ofrece un conjunto de herramientas para desarrolladores, administradores de TI y otros profesionales de la tecnología que desean o necesitan ejecutar herramientas de línea de comandos de Linux junto con sus herramientas y aplicaciones de Windows”, explica Turner de CIO.com.

Desarrollado con la ayuda de Canonical (y una gran comunidad de usuarios de Linux), no está ahí para convertir Linux en Windows, o Windows en Linux. Es sólo que algunas herramientas de Linux son tan ubicuas para el desarrollo y la implementación que es útil poder usarlas sin una máquina virtual (VM). Esa es una de las razones por las que las Mac son tan populares entre los desarrolladores: MacOS está basado en BSD, que es UNIX, por lo que puede ejecutar herramientas Linux como Bash. Y ahora, también puede en Windows 10.

“Utilizando Bash en Windows, los desarrolladores pueden ejecutar auténticas herramientas de línea de comandos Linux no modificadas dentro de un entorno Linux altamente compatible, junto con sus herramientas favoritas de productividad y desarrollo de Windows”, explica Turner. Piense en Office y Vi o PowerShell y grep, lado a lado.

WSL está evolucionando rápidamente y con Creators Update, Turner dice que es lo suficientemente bueno para el uso diario. Pero es más fácil de usar una vez que entienda algunas cosas acerca de cómo interactúan Windows 10 y Linux.

1. Es para los desarrolladores

WSL está ahí para hacer que Windows funcione mejor para los desarrolladores que necesitan conectarse fácilmente a un backend de Linux, o usar herramientas que están a menudo disponibles en Linux y no en Windows, o donde esas herramientas han sido compiladas en binarios que suponen que va a usar Linux, con el sistema de archivos Linux. Turner lo llama “un gran conjunto de herramientas para cualquier desarrollador que trabaje en soluciones multi-plataforma, especialmente aquellas que trabajan en la construcción de sitios web y servicios, sistemas distribuidos o servicios de almacenamiento”.

2. WSL es una distribución de Linux, no un kernel de Linux

WSL instala una distribución de Linux en su PC (actualmente, Ubuntu 16.04 es la distribución que obtiene automáticamente, aunque más opciones estarán disponibles en el futuro). Los binarios de Linux hacen sus llamadas de sistema como de costumbre, pero las llamadas al sistema (syscalls) sólo van al kernel de Windows  y no a un kernel de Linux. Eso significa que sólo tiene que instalar y utilizar binarios de Linux sin necesidad de cambiar nada porque está en Windows.

3. No es una máquina virtual

Cuando ejecuta Linux en Windows en una máquina virtual, obtiene un sistema operativo distinto. WSL utiliza mucho menos CPU y memoria que una VM, y como todavía está en Windows, puede usar las herramientas de Windows y Linux juntas en el mismo conjunto de archivos. Eso también significa que funcionará en una máquina virtual de Windows, sin tener que preocuparse por la virtualización anidada.

4. No es Cygwin

Cygwin es una biblioteca que te da un entorno gráfico similar a UNIX dentro de Windows, incluyendo una interfaz de línea de comandos, y tienes que compilar software específicamente para ello. Con WSL, los binarios de Linux se abren dentro del entorno estándar de Windows y no es necesario modificarlos para ejecutarlos en Windows.

5. Cómo instalarlo e iniciarlo

Necesita una versión de 64 bits de Windows 10 Creators Update (versión 1703 o posterior). Primero, abra Configuración> Actualización y seguridad> Para los desarrolladores y activar el modo Desarrollador, seleccione la casilla marcada Windows Subsystem para Linux (Beta) en las funciones Activar o desactivar Windows en el panel de control (también puede escribirlo en una ventana elevada de PowerShell: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux). Reinicie su PC, abra un símbolo del sistema y escriba bash para descargar la imagen de Ubuntu; Esto también agrega un acceso directo al menú Inicio que inicia bash. La primera vez que lo use, será promovido para crear un nombre de usuario y una contraseña de UNIX (esta es una cuenta diferente de su cuenta de Windows).

6. No es necesario tener una cuenta de administrador para usarla

Necesitas credenciales de administrador para activar WSL, pero eso se puede hacer con DISM u otras herramientas de administración, por lo que los desarrolladores que no tienen cuentas de administrador en sus PC aún pueden usar WSL una vez que se haya habilitado.

7. Incluso los enlaces simbólicos no necesitan derechos de administrador

Windows ha dado soporte a enlaces simbólicos desde Vista, pero por razones de seguridad ha tenido que usar un símbolo de sistema de elevacion para crearlos y modificarlos. Esto causa problemas para herramientas como Git y npm, que utilizan enlaces simbólicos al crear y restaurar repos y paquetes. A partir de la actualización de Creators, una vez que haya activado el modo de desarrollador, no es necesario elevar el formulario de administración para que funcione con enlaces simbólicos.

8. No es sólo bash

Bash es el camino hacia WSL; Siempre es el primer proceso de WSL que ejecuta y cierra bash, todos los otros procesos de Linux que está ejecutando se cerrará también. Se puede utilizar apt en bash para instalar binarios Linux. Puede utilizar otras shells como zsh y fish, puede usar herramientas comunes de Linux como apt, sed, grep, awk, top, tmux y ssh, puede usar herramientas de desarrollador como Vim, Emacs, git y GNU Debugger (GDB) Usted puede ejecutar servicios como sshd, Apache, nginx, MySQL y PostgreSQL, y puede ejecutar herramientas de lenguaje como npm para Node.js, gemas para Ruby, Apache Maven para Java, Pip para Python y cualquier otra cosa que usualmente use en Ubuntu .

9. Es para las herramientas de línea de comandos, pero …

WSL está diseñado para ejecutar herramientas de línea de comandos, por lo que se inicia con el shell bash. Pero eso no significa que las herramientas gráficas de Linux no funcionen en absoluto. De hecho, muchas funcionan, pero eso es un efecto secundario del trabajo que Microsoft está haciendo para soportar las herramientas de línea de comandos, no el motivo de que WSL esté presente. Microsoft no está haciendo nada específicamente para soportar la ejecución de herramientas gráficas de Linux, pero, igualmente, no está haciendo nada para detener su ejecución en WSL.

10. La adición de soporte de Linux ha mejorado la consola para todos

Para que la consola de Windows maneje bien el formato de texto para las herramientas de línea de comandos como Vim, Emacs y tmux, la actualización de Creators tiene un mejor soporte para los códigos ANSI y Secuencias de VT que usan las herramientas UNIX y Linux en sus interfaces. También tiene color de 24 bits en lugar de los viejos 16 colores y mejor soporte para el ratón (necesario para herramientas como Midnight Commander y Htop), y los que aparecen en todas las interfaces de línea de comandos de Windows, incluyendo CMD y la consola PowerShell.

11. No está en un Windows Server

WSL sólo se incluye en el cliente de Windows 10, no en Windows Server. Por lo tanto, si está utilizando la infraestructura de escritorio virtual (VDI) u otras formas de ejecutar sesiones de Windows, debe ejecutar el cliente de Windows para poder utilizar WSL.

12. Bash no reemplaza PowerShell

Una de las razones por las que WSL no está en Windows Server es que no está diseñado para gestionar cargas de trabajo como Windows Server, Active Directory, IIS, Exchange, SharePoint, System Center, SQL Server, Hyper-V y Azure de la misma manera que PowerShell. PowerShell es una automatización de tareas y un marco de configuración, no sólo un shell, y WSL no cambia eso.

13. Necesita administrar las actualizaciones

WSL se actualiza regularmente a través de Windows Update y con las actualizaciones dos veces al año de Windows. Pero eso (basado en comentarios fuertes de los usuarios) no actualiza su distribución de Linux. Para obtener actualizaciones de Ubuntu y los diversos binarios de Linux, tienes que ejecutar apt-get update tú mismo (aunque Microsoft planea agregar una forma de automatizar esto a tiempo).

14. Puede (en su mayoría) administrar WSL con sus herramientas habituales de Windows

Una gran ventaja de WSL es que puedes usar las mismas herramientas de administración y monitoreo de red que ya usas para tus sistemas Windows, algo que las VMs a menudo no permiten. Dado que WSL utiliza la memoria existente, el proceso, la red, el almacenamiento, la red y las pilas IO, las inversiones que las empresas han realizado en la protección, administración y monitorización del SO se conservan y se amplían para ayudar a proteger, monitorizar y controlar los procesos Linux. Hasta ahora, Windows Defender es el único antivirus que funciona con WSL y supervisa los procesos de Linux, aunque se dice que muchos otros proveedores de anti-malware ya están trabajando con Microsoft para actualizar sus productos para agregar soporte a WSL.

15. Se conecta cruzada con los procesos de Windows

Los procesos Linux que se ejecutan con WSL se tratan como cualquier otro proceso en Windows, por lo que aparecen en el Administrador de tareas, lo que le da una manera fácil de matar a los procesos que se han colgado. Eso también significa que puedes llamar a los ejecutables de Windows desde dentro de bash simplemente escribiendo el nombre de archivo completo, sensible a mayúsculas y minúsculas del programa (recuerda el archivo .EXE, pero no necesitas especificar dónde vive el archivo si está en la ruta de Windows) o llamar a binarios de Linux y obtener la salida de una aplicación de Windows. Esto significa que puede iniciar archivos por lotes desde bash llamando a CMD.EXE, canalizar la salida de un comando en bash a PowerShell para procesarlo o iniciar Visual Studio o llamar a una herramienta como MSBuild para crear el código que acaba de editar a la derecha de bash. Instale el ayudante de línea de comandos de RunInBash para ejecutar comandos de Linux desde PowerShell o CMD escribiendo $ delante de él.

16. Conexión cruzada con el sistema de archivos de Windows

Con WSL se obtiene un sistema de archivos Linux DrvFs, y todas las unidades permanentemente conectadas desde el sistema de archivos de Windows se montan automáticamente,  esto es para que pueda acceder a los archivos de su sistema Windows desde las herramientas de Linux.  WSL incluso admite el servicio Linux inotify, que permite a las aplicaciones registrarse para notificaciones de cambio de sistema de archivos, incluyendo archivos en el sistema de archivos de Windows, y esas notificaciones pueden activar acciones, como reiniciar un servidor o construir su código. Eso significa que puede mantener su código donde puede editarlo con Visual Studio, utilizar el mismo código con herramientas de Linux y automatizarlo.

17. No puede abrir archivos de Linux en aplicaciones de Windows

Las herramientas de Linux que se ejecutan con WSL pueden abrir archivos de Windows, pero no intente abrir archivos del sistema de archivos Linux en las aplicaciones de Windows. No funcionará y puede dañar los archivos.

18. Usted querrá estar en Windows Insider

WSL sigue desarrollándose y sigue recibiendo nuevas características, como conectarse a puertos serie de Windows desde procesos de Linux o ser capaz de montar unidades extraíbles y recursos compartidos de red. Ésos no estaban en la actualización de Creators, pero usted puede conseguirlos sin la espera de seis meses para la actualización en  Insider de Windows.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.