Probando el Subsistema Windows 10 para Linux (Beta)

El 30 de marzo saltaba la noticia: las llamadas al sistema de Linux  se podrán ejecutar en Windows 10 de forma «nativa» (se podrán traducir en tiempo real a llamadas al sistema de Windows, algo así como un WINE a la inversa):

Intenté probarlo en su día, pero no encontraba tiempo. Tampoco creo que estuviera disponible para todos los usuarios… Hoy he recordado la noticia y le he dedicado un rato porque necesito ejecutar algunas funcionalidades de Linux en una máquina Windows (y la opción de Cygwin me parece demasiado «heavy»… y problemática, la he sufrido en alguno de mis cursos, donde he recibido numerosas peticiones de auxilio 😉

Para probar el subsistema Windows para Linux (Windows Subsystem for Linux o WSL) hay que tener la actualización Windows 10 Anniversary Update (se publicó en Agosto de este año). La forma más sencilla es a través de este enlace oficial a la web de Microsoft. Tras la instalación/upgrade, hay que activar el modo programador entrando en Configuración / Para programadores

bash_win_0

A continuación, entramos en Panel de Control / Programas / Activar o desactivar las características de Windows . Activamos el Subsistema de Windows para Linux (beta) y reiniciamos las veces que haga falta 😛

subsistema_Linux

Ahora viene lo bueno. Ejecutamos bash desde el menú de inicio (tecleamos bash y pulsamos intro) y al ser la primera vez se lanzará la instalación:

bash_win_1

Le costará un rato descargar WSL (al final está descargando una especie de versión de Ubuntu Server) y activarlo. Cuando lo haga, nos pedirá crear un usuario (que por defecto estará en la lista de sudoers)bash2

Le asignamos un pass al nuevo user y tachán, ya estamos en Bash 🙂

bash3

Se hace raro poder ejecutar ls, id, pwd, cat, vi ! , apt (sí apt-get!) en Windows sin recibir mensajes de error…bash4

Realmente estamos en Bash dentro de un Ubuntu 14.04 ejecutándose sobre Windows 10. Buf… si me lo llegan a decir hace un tiempo hubiera puesto cara de incrédulo.bash5

Los archivos están donde deben (en un sistema que siga el LSB) y tienen el contenido esperado.

bash6

El sistema de archivos del anfitrión Windows está montado en /mnt . Tenemos los repos apt de Ubuntu a nuestra disposición para instalar las aplicaciones que necesitemos.

bash8

Otro puntazo a favor es que tenemos un intérprete python y un intéprete perl instalados de serie (los mismos que instala Ubuntu 14.04, claro)

bash9

También he visto que hay un servicio ssh lanzado en el puerto 22, pero por lo que he probado NO es openssh (se puede ver el fingerprint del servidor mediante un simple telnet – sí, telnet, para ver el banner del server – al puerto 22), sino un servidor SSH de Windows (yo diría que en alfa, porque aún no he conseguido autenticarme y creedme que he probado de todo). ¿Tal vez sea una implementación en desarrollo del port openssh de Microsoft ?

bash7

Leyendo algunos foros comentaban que openssh se puede configurar para que escuche en un puerto distinto al 22 (el 60022, por ejemplo), abrir una regla en el firewall de Windows para ese nuevo puerto y listo. Si no lo tenemos instalado por defecto (en mi caso sí lo estaba) siempre podremos instalarlo con sudo apt-get update && sudo apt-get install openssh 🙂

A continuación, modificamos /etc/ssh/sshd_config y lo dejamos así:

Port 60022
ListenAddress 0.0.0.0
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
UsePrivilegeSeparation no
KeyRegenerationInterval 3600
ServerKeyBits 1024
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication no
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
PasswordAuthentication yes
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes

Si openssh ya estaba instalado, antes de reiniciar el server openssh lo reconfiguramos (si no lo hacemos, arrancará, pero no conseguiremos conectar porque no habrá generado los ficheros necesarios):

$ sudo dpkg-reconfigure openssh-server

Ahora sí, reiniciamos el server openssh:

sudo service ssh restart

Y conectamos desde localhost para probar:

bash_win_10

¡Funciona! 🙂

UPDATE (5/09/2016): si en algún momento la liamos parda con la configuración del WSL, siempre podremos desinstalar y volver a instalar con dos sencillos comandos:

C:\> lxrun.exe /uninstall /full
C:\> lxrun.exe /install

UPDATE (6/09/2016): es posible iniciar el servidor openssh de WSL al arrancar el equipo. Para ello, basta con parar el Server SSH de Microsoft (el que viene por defecto) y lanzar OpenSSH con la configuración indicada, salvo que ahora podremos lanzarlo en su puerto natural, el 22. Además, si queremos lanzar el servidor cada vez que iniciemos el equipo, podremos crear un script de arranque.

ay! se me escapó el Windows 7…

Qué cosas pasan en Redmond… alguien ha guardado una versión beta de Microsoft Windows 7 en la carpeta de «Share» del BitTorrent. Y parece ser que ese alguien trabaja en Microsoft. Justo en el período vacacional, tras Navidad, y antes de que empecemos todos a trabajar a tope, los Windows-eros necesitan carnaza para probar y dar publicidad gratuita a la empresa de Redmond. Así que, ¿por qué no? «Porque Microsoft perdería mucha pa$ta dejando una copia pirata en BitTorrent…» responderá alguien. Falso. Si un usuario se descarga Windows 7 beta de BitTorrent para usarlo, probablemente sea un usuario que nunca compraría esa versión. No creo que pierda nada. «¿Y qué gana?» Publicidad gratuita: «qué bien que me va el Seven, cuando Vista ni siquiera arrancaba…», «¿has visto las novedades de Windows 7?», posts en blogs (incluso en éste ;-), etc.. Por si a alguien le quedan dudas, han puesto un timeout en la versión de BitTorrent, que hace que caduque en 30 días, lo cual provocará que esa versión beta deja de funcionar (a no ser que otro alguien saque un «parche de extensión», más conocido como c….) En fin, cuando salga la versión definitiva aprovecharé la licencia universitaria que Microsoft nos ofrece para probar a la bestia y conocer a fondo «al maligno» 😉

Cómo perder el 30% de tus potenciales clientes

NetApplications.com nos confirma algo que ya sabíamos. El uso a nivel mundial de Microsoft Internet Explorer cae en picado (acaba de bajar la barrera del 70% de utilización) mientras que Firefox (+20%) y Safari (+7%) empiezan a comerle la tostada. Por tanto, si sólo sabes programar tu web para usuarios de IE (hay claros ejemplos) estás dándole una patada a un 30% de tus potenciales clientes/usuarios. Tú mismo.

Ulteo Virtual Desktop: ejecuta aplicaciones Linux en Windows

Sí, has leído bien, Ulteo (la nueva empresa de Gaël Duval, ex-mandrake-man) ha publicado Ulteo Virtual Desktop, una aplicación para Windows (.exe) construída sobre coLinux que permite ejecutar aplicaciones Linux en un sistema operativo Windows, al parecer, de forma totalmente transparente e integrada (se oye el audio, se puede imprimir, el chrome de las ventanas se mantiene en Windows, etc.) Así que si tienes que trabajar con el sistema de Redmond pero echas en falta aplicaciones Linux (Amarok, Evince, Rythmbox, Evolution, …) ahora ya no tendrás que lanzar VMWares, VirtualBoxes ni demás … Interesante.