NOTA: Post publicado originalmente en el área de recursos de campusMVP. Lo he añadido también aquí porque creo que es de gran interés y así llega también a la audiencia de mi blog.

En los últimos años, con la proliferación de herramientas de desarrollo de código abierto nacidas en el mundo Linux, muchos desarrolladores creaban versiones de sus herramientas solo para sistemas basados en UNIX, como Linux o MacOS. Esto a veces dejaba fuera (o con mucho retraso) a los desarrolladores que utilizan Windows como sistema operativo principal. De hecho algunos tutoriales de herramientas de programación parten de la base de que estás usando Linux o Mac, y todas las explicaciones se ofrecen para éstos, dejando los comandos de Windows fuera y dificultando su seguimiento.

Conscientes de este problema y de que Windows no estaba siendo la plataforma favorita para muchos desarrolladores, Microsoft ha incluido en Windows 10 algo impensable hace años: Linux ejecutándose dentro de Windows.

Microsoft también acaba de anunciar la disponibilidad de PowerShell para Linux y Mac. Es decir, todos con todos en un frenesí de integración que jamás se había visto. Es algo sensacional para los desarrolladores y IT Pros, e impensable en los tiempos de Ballmer. Pero con Satya Nadella es una nueva Microsoft, para lo bueno y para lo malo.

En realidad Windows siempre ha tenido, desde Windows NT,  la capacidad de ejecutar otros sub-sistemas operativos dentro del sistema principal. De hecho las aplicaciones de Windows de 32 bits se ejecutan en un subsistema diferente dentro de Windows de 64bits, y desde la época de Windows NT ha existido un subsistema POSIX compatible con la base de UNIX, como se puede ver en la parte superior de este diagrama de la arquitectura de Windows NT, la base de todos los sistemas Windows actuales:

WindowsNT-Architecture

A estas capas de usuario tradicionales se ha unido recientemente Ubuntu Linux, creado en colaboración con Canonical, la empresa desarrolladora de esta versión del sistema del pingüino.

Esta capa se denomina Windows Subsystem for Linux o LXSS, y permite ejecutar de manera nativa en Windows programas de Linux (en formato ELF64 - Executable and Linkable Format).

Es decir, no es una capa de virtualización, sino que es un verdadero entorno de ejecución de Linux metido dentro de Windows. si quieres ver más detalles de cómo trabaja puedes leer este artículo de MSDN: Windows Subsystem for Linux Overview.

ubuntu-logo

Como no es un Linux completo no permite ejecutar cualquier aplicación. De entrada, aquellas que tienen interfaz gráfica no funcionarán (he publicado un vídeo práctico explicando también cómo habilitar aplicaciones gráficas de Linux en Windows), ni tampoco algunas muy específicas de bajo nivel que necesiten usar el kernel de Linux, ya que éste no está implementado.

Este subsistema LXSS se originó a partir del difunto "Project Astoria", que perseguía ejecutar aplicaciones de Android en Windows 10 Mobile. Algo que nunca llegó a buen puerto por desgracia para la plataforma móvil de Microsoft.

Sólo está disponible para Windows 10 versión 1607 (Anniversary Edition) o posterior, asíq ue no lo intentes instalar en Windows 7/8 o en versiones de servidor.

El intérprete de línea de comandos que se ha incluido junto con el subsistema es Bash (Bourne Again Shell), que es también un lenguaje de programación para consola. Nació en el año 1989, o sea que casi tiene 30 años, pero sigue siendo el procesador de comandos más utilizado puesto que es el shell por defecto de Linux y Mac.

Este nuevo subsistema es muy interesante para desarrolladores que utilizan Windows como sistema principal. Gracias a él podemos ejecutar las mismas herramientas que tienen los programadores de Linux, incluso las que solo están para ese sistema operativo, y podremos seguir sin problemas todas las indicaciones de documentaciones que se basan en la línea de comandos.

En el siguiente vídeo te cuento con detalle cómo instalarlo, cómo ponerlo en marcha, actualizarlo y empiezo a rascar la superficie de lo que se puede hacer con él:

💪🏻 ¿Este post te ha ayudado?, ¿has aprendido algo nuevo?
Pues NO te pido que me invites a un café... Te pido algo más fácil y mucho mejor

Escrito por un humano, no por una IA