X en Linux

X Window System (o X a secas) es una interfaz gráfica desarrollada por el MIT, después por el X Consortium, después por The Open Group y actualmente por X.org.

Hay alguna confusión acerca de cómo llamar a este sistema. Muchos creen que es correcto llamarlo “X-Windows”, “XWin”, “las X” o vaya a saber cuántos inventos. No es cierto. Otros opinan que se llama “X Window”, tampoco es cierto. El nombre en inglés se traduce como “Sistema de ventanas X”, llamarlo “X Window” es como llamarlo “de ventanas X”, es cortar la frase =).

Características

X tiene características bastante interesantes:

Multiplataforma

X en sí no está especialmente orientado a ningún sistema operativo en particular. Hay servidores X para todos los Unix, Windows, Mac OS, etc. El consorcio responsable por el desarrollo de X publica el código fuente de una versión multiplataforma, pero que tiene ya incluído un buen soporte para Linux. Las distribuciones toman este código y lo incluyen entre sus paquetes. Anteriormente no era así, el mundo serio de la gente seria de los UNIX serios miraba con desdén a los aventureros de Linux, y la versión para Linux era desarrollada por el proyecto XFree. Este proyecto cayó en desgracia cuando quizo hacer un cambio de licencia no aceptado por el resto de la comunidad. Al mismo tiempo el mundo serio UNIX ya estaba catatónico, y el consorcio X fue relanzado apuntando hacia Linux como plataforma principal.

Diseñado para redes

Al final de tanto sistema de software están los fierros. Pero el camino seguido desde la aplicación hasta la placa de video es diferente en Windows y en X. En Windows:

Aplicación → Funciones de soporte (API) → hardware (mouse, pantalla, etc.)

En X, el esquema es el siguiente:

Aplicación → Funciones de soporte (API) → Protocolo X (puede funcionar sobre una red) → Servidor → hardware (mouse, pantalla, etc.)

Esto necesita un poco más de explicación. Llamamos servidor a lo que sería la “terminal”, la computadora en la que uno está sentado. Las aplicaciones son clientes porque el servidor X les provee "servicio de ventanas". Lo particular es que los clientes X (las aplicaciones, p. ej. Firefox) pueden estar corriendo en otra máquina, en cualquier punto de internet, pero recibiendo clicks de nuestro mouse y mostrando sus ventanas en nuestra pantalla.

Flexible

El protocolo X no define ningún criterio en la interfaz del usuario. X sólo maneja cosas como la forma en que el servidor debe informar a la aplicación cliente qué teclas se pulsaron, y mandar imagenes del cliente al servidor. No provee funciones para botones, menues, etc.

Conceptos

Window managers

Un window manager es una aplicación cliente más, que se ocupa de controlar la disposición de otras ventanas. Este programa dibuja los bordes de las ventanas, los títulos, y es el que permite cambiar su tamaño, maximizarlas y minimizarlas. El poner todas estas funciones en un programa separado le permite a X ser todo un camaleón en cuanto a su interfaz. Hay window managers que emulan las interfaces de Windows, NexT, Amiga, etc.

Toolkits

Programar usando solamente el protocolo de X es bastante incómodo y solamente adecuado en programas muy simples, como por ejemplo un reloj. Como no hay funciones para crear los más comunes elementos de toda interfaz gráfica, no sólo se hace difícil sino que cada programador crearía botones y menúes según sus gustos, y eso no queda lindo.

Existen bibliotecas de funciones que implementan controles (o widgets en la jerga de X) como menúes y botones. Se llaman toolkits. Uno de los primero toolkits, hoy en desuso, es el Athena Widgets. Si bien sus widgets suplen las funciones nece­sarias para crear aplica­ciones comu­nes... son bastante feos y desabridos =). Son los que usa el xman, xedit, etc.

El toolkit usado comercialmente en los comienzos de X era Motif. Si bien fue desarrollado por una institución llamada Open Software Foundation, era un producto comercial. Se supone que la OSF lo desarrolló para contribuir al desarrollo de X y de los estándares abiertos, pero lo arrastró a la obsolecencia al cobrar por su distribución mientras crecía la popularidad de Linux, para el cuál no había que pagar nada.

Hay que recordar que por esas épocas “abierto” quería decir independiente de los grandes monstruos de la época (IBM, Sun, HP, Silicon Graphics, etc), no gratis y menos que menos no quería decir “software libre”.

Además de que no era gratuito, no sólo era necesario comprar Motif para desarrollar las aplicaciones. Las bibliotecas dinámicas (DLLs) también eran necesarias para correrlas y las tenía que comprar... el usuario de la aplicación! La única solución para esquivar esto era construir el ejecutable para que contenga las bibliotecas enlazadas estáti­camente. Esto hacía a los programas grandes y pesados. Las viejas versiones de Netscape lo incluían.

Todo esto dejo de ser un problema principal para Linux desde la llegada de GTK+. GTK+ es un toolkit creado originalmente para ser usado en el programa de manipulación de gráficos GIMP, pero se convirtió en EL toolkit para aplicaciones para Linux. Sobre éste se construyó el entorno de escritorio Gnome

Otro toolkit muy popular es Qt. Este toolkit no era gratuito, pero la empresa que lo desarrolla, Trolltech, ahora lo convirtió en software libre. Sin embargo su licencia es la licencia GNU GPL, que prohibe su uso en programas que no sean software libre. Este toolkit es la base del entorno KDE.


La página principal

Hecho por Nicolás Lichtmaier.