Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=8cd2a5bc-462c-4e25-ae8d-7b09f2fa6016

Cómo ejecutar aplicaciones gráficas Linux en el shell Bash de Windows 10

Ubuntu-X11-En-WindowsLa semana pasada os explicaba en un artículo+vídeo cómo montar el subsistema Ubuntu Linux para Windows y ejecutar aplicaciones de línea de comandos en Bash.

En teoría este subsistema está pensado en exclusiva para utilizar herramientas de línea de comandos y Microsoft no habilita ninguna manera de poder usar aplicaciones gráficas (ni creo que les interese demasiado).

Sin embargo UNIX es muy poderoso y en realidad nada nos impide hacerlo. Así que, como prometí en el artículo anterior, os voy a mostrar cómo podemos ejecutar también aplicaciones Linux con ventanas desde el subsistema Linux de Windows 10.

Nota: Aunque es posible ejecutar muchas aplicaciones sin problema, algunas que utilizan cuestiones de bajo nivel y necesitan acceder al kernel del sistema o utilizar D-Bus, no podrán funcionar. Es decir, lo que voy a contar en el vídeo a continuación se aplica a muchas aplicaciones, pero no todas podrán trabajar correctamente.

Servidores X

El principal motivo de que no se puedan ejecutar aplicaciones visuales en el subsistema Linux de Windows 10 es que no incluye lo que se llama un "Servidor X".

El sistema gráfico más común en sistemas UNIX es "X Window", más conocido como X11 (el 11 viene de su número de versión, la 11, que no se ha modificado desde 1987). Lo que hace X11 es ofrecer una abstracción de un entorno visual, y separar la responsabilidad entre un cliente y un servidor. El servidor X es un programa que se ejecuta en local y que se encarga de gestionar todo el acceso al hardware y la gestión de la interacción  recibida desde los clientes (entrada de datos del usuario, servicios de ventanas, fuentes, gráficos y gestión de los recursos). Los clientes X son terminales (locales o remotos) que visualizan los gráficos generados por el servidor y sirven de interfaz entre el usuario y el servidor X. La comunicación entre cliente y servidor, da igual que el cliente sea local o remoto, se realiza a través del mismo protocolo de red, conocido como "Protocolo X".

Esta arquitectura tiene la ventaja de que los clientes no tienen que saber nada sobre cómo comunicarse o manejar el hardware. Simplemente mandan instrucciones al servidor (como por ejemplo, pinta esta frase, con esta fuente en esta posición) y reciben resultados que deben visualizar. Y además no hay distinción entre hacerlo en local (lo más común) o en remoto.

Por encima de X11 puede existir otro elemento adicional llamado "escritorio" o "desktop". Este elemento va un paso más allá y añade un entorno gráfico integrado en el que todas las ventanas tienen el mismo aspecto y funcionalidad, ofrecen gestión de sesiones (de modo que puedas restaurar las ventanas tal y como las dejaste mientras no cierres sesión), etc... Es decir, es lo más parecido a lo que estamos acostumbrados en Windows y otros sistemas operativos.

Generalmente si trabajamos de manera gráfica en Linux estaremos usando uno de estos escritorios, siendo los más conocidos KDE, GNOME o Xfce. Este último es muy ligero y rápido, y funciona con pocos recursos, por lo que mucha gente lo prefiere. Incluso hay una distribución paralela de Ubuntu que viene preinstalada con este entorno llamada Xubuntu, y que es muy utilizada.

Aplicaciones gráficas de Linux en Windows

En el vídeo a continuación vamos a ver cómo:

  • Habilitar un servidor X para el subsistema Linux de Windows
  • Ejecutar aplicaciones gráficas de Linux en Windows
  • Cómo instalar Xfce y un escritorio (aunque no lo haremos en el vídeo) para poder disfrutar de las ventajas de un entorno completo
  • Modificar los archivos de inicio para que la configuración anterior sea automática

En cuanto al servidor X tenemos varias opciones, por ejemplo VcXsrv, Cygwin/X o Xming, entre otras. Todas de código abierto. Utilizaremos este último por ser muy conocido y estar muy probado.

Vamos a verlo:

Con todo esto lo cierto es que casi tendremos un sistema Ubuntu Linux entero funcionando en Windows de manera nativa. Prácticamente es como si tuviésemos los dos sistemas instalados a la vez pero sin necesidad de virtualizar ni de disponer de un arranque dual. Muy interesante...

Sin embargo debes tener en cuenta un par de cosas:

  1. El subsistema de Linux para Windows no incluye todo lo que trae el núcleo de Linux, por lo que habrá cosas que no funcionen.
  2. El servidor X puede que no implemente todo lo que requieren algunas aplicaciones nativas muy modernas, por lo que también es posible que fallen detalles debido a la parte gráfica.

Estoy seguro de que a medida que vayan actualizando la funcionalidad (¡y la versión de Ubuntu!) de LXSS será cada vez más capaz y podrá ejecutar todo tipo de aplicaciones. Mientras tanto tenemos algo muy interesante funcionando en Windows 10. Algo que, además, sería impensable hace tan solo un par de años.

¡Que lo disfrutes!

Fecha de publicación:
José Manuel Alarcón Fundador de campusMVP, es ingeniero industrial y especialista en consultoría de empresa. Ha escrito diversos libros, habiendo publicado hasta la fecha cientos de artículos sobre informática e ingeniería en publicaciones especializadas. Microsoft lo ha reconocido como MVP (Most Valuable Professional) en desarrollo web desde el año 2004 hasta la actualidad. Puedes seguirlo en Twitter en @jm_alarcon o leer sus blog técnico o personal. Ver todos los posts de José Manuel Alarcón
Archivado en: General | Herramientas

No te pierdas nada, recibe lo mejor en tu email

Si te ha gustado este art­ículo, únete a miles de desarrolladores que ya reciben cada mes nuestro boletí­n por email. No te pierdas los mejores trucos, noticias y frikadas.

Enviamos poco, pero bueno. Palabra de desarrollador.

Suscríbete aquí­

Sí­guenos también en:

Telegram LinkedIn YouTube
La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.