miércoles, 7 de mayo de 2008

Jugando con X11

Uno de los grandes potenciales de nuestro dispositivo es que su nucleo está basado en UNIX/Linux. Esto quiere decir que muchísimas de las aplicaciones para UNIX/Linux con pequeñas modificaciones podrían, en teoría, correr bajo iPod Touch/iPhone.

La comunidad linux se ha basado en gram mededida en utilidades y programas por linea de comandos, pero evidentemente ha sido necesario siempre, en un punto u otro, una interfaz gráfica. Estamos de acuerdo de que muchas aplicaciones nos puede valer una linea de comando: Escuchar música, un cortafuegos, un conversor... pero hay aplicaciones que evidentemente es necesario casi al 100% una representación gráfica de estos datos, imaginemos sin ir mas lejos un simple diagrama, un editor de texto decente... hoy en día cualquier aplicación para el usuario final generalmente requerirá de un GUI.

Bueno pues por ello se creó X Windows (X11), para poder dotar de una interfaz gráfica a los sistemas UNIX. A raiz de X Windows se crearon con el tiempo los diferentes entornos que podemos encotrar hoy en día como KDE o GNOME, pero todos ellos funcionan sobre X11.

Por desgracia Apple no usó X11 para su MAC OS. Apple creó una capa gráfica diferente llamada Quartz. Luego nuestro dispositivo muy posiblemente use Quartz igualmente para todo el sistema gráfico. Si nuestro dispositivo corriese por ejemplo X11 posiblemente podríamos ejecutar no solo aplicaciones unix/linux de linea de comandos, sino también aplicaciones gráficas. Esto no quiere decir que nuestro dispositivo no sea capaz de ejecutarlas, tan solo que no es capaz de visualizarlas. Aun así no descarto a ningún genio que sea capaz de traernos alguna app que sea capaz de visualizar entornos x11.

Sin embargo, una de las mejores funciones que podemos encontrar en X11 es la posibilidad de "llevarnos la pantalla" a donde queramos. Dado que se trata de un sistema cliente-servidor, podemos hacer que la aplicación GUI ya se ejecute de forma remota por ejemplo a través de SSH o localmente, sea llevada a cualquier monitor del mundo. Es decir, sabemos que a través de SSH podemos ejecutar aplicaciones de forma remota, ¿verdad? pues igualmente podenos traernos su entorno. Es como un escritorio remoto pero tan solo aplicado a una aplicación, valga la redundancia.

La idea me vino pensando en como podría ser capaz de realizar una conexión de Escritorio Remoto a mi PC que ejecuta Windows Vista desde mi iPod Touch. Lo primero fue encontrar la aplicación rdesktop portada para iPhone, pero por suerte ya se había hecho. Aun así el segundo problema es de cajón. Vale, ya tenemos la aplicación y sabemos que funciona pero... está claro que necesitaríamos una interfaz gráfica para poder usar un escritorio remoto, función que por ahora no es posible. La solución pasó por usar X11 y sus propiedades para exportar la pantalla. Esto seguramente se vería mejor con un esquema del proceso:

1º. Instalación de rdesktop en el iPhone/iPod, que hará de cliente
2º. Un PC servidor con Windows preparado para permitir conexiones de Escritorio Remoto
3º. Un PC cliente que "recivirá" la pantalla a través de X11, evidentemente necesita para ello correr un servidor X11, por ejemplo una máquina Windows con Xming o MAC OS, o Unix/Linux...

Luego la aplicación se ejecutaría en nuestro dispositivo portatil, se conectaría a nuestro servidor y dado que no podemos visualizarlo en nuestro ipod por la falta de soporte, mandaríamos el visinado a un segundo PC que aceptara conexiónes X11.

No solo se puede hacer esto con escritorio remoto, sino cualquier aplicación. Está claro que la utilidad de este sistema es por ahora limitada, y tan solo se me ocurren algunos ejemplos donde podría ser útil:

Estamos en la universidad, trabajo... y usan máquinas que corren bajo MAC OS o unix o linux. De forma simple podríamos ejecutar aplicaciones que no tendríamos en la máquina de delante, o de la cual no nos fiamos. La aplicación en realidad se estaría ejecutando en nuestro dispositivo portatil, lo único que realiza el segundo PC es el visionado, usarlo a modo de terminal básicamente.

Pero bueno como digo por ahora es tan solo a modo de curiosidad. Esperemos que en un futuro podamos mejorar esta falta de soporte y se pueda usar el miso iPod/iPhone como cliente para visionar aplicaciones.

Os un ejemplo de la aplicación xeyes ejecutandose en un iPod Touch mientras que se visualiza en una máquina Windows Vista. Iba a poner unas imágenes de escritorio remoto, pero para ello necesito un segundo PC y no tengo ganas ahora de encender otro:



3 comentarios:

Felipe Astroza dijo...

Linux no tiene nada que ver. Esta basado en Mach/BSD, BSD es el UNIX de la Universidad de Berkeley.

Theliel dijo...
Este comentario ha sido eliminado por el autor.
Theliel dijo...

Siento discrepar FelipeA, pero si no recuerdo mal la historia, tanto Linux como MACOS están basados en Unix.

MACOS usa un kernel híbrido basado en Mach, pero no quita que MAC OS esté basado completamente en BSD UNIX, al igual que aunque Linux tiene evidentemente su nucleo propio y no procede "directamente" de en UNIX, está basado en él, es evidente.

Tanto la evolucion de MACOS como Linux parten del mismo padre, UNIX, y esto es claramente lo que quería expresar.

Aquí tenemos una imagen sobre la evolución de Unix hasta los dias de hoy:

http://upload.wikimedia.org/wikipedia/commons/7/77/Unix_history-simple.svg

Que evidentemente luego cada OS haya evolucionado mas o menos por diferentes sendas, la verdad es que tanto Linux como Unix como MACOS comparten la misma base, aunque Linux se encuentre... "fuera" por así decirlo

 
Creative Commons License
Esta obra está bajo una licencia de Creative Commons.