X Window System

Rafa Morales 12 Septiembre 2013
8min
0
Linux

El X Window System (también denominado X Window o simplemente X) se trata de una herramienta de software utilizada para el desarrollo de interfaces gráficas de usuario. Se puede decir que X Window es para UNIX lo que Windows era para los sistemas basados en DOS. Con una gran diferencia, que X Window es un estándar que permite que cualquier interfaz GUI puede ser ejecutada en cualquier computadora e incluso en varias a la vez.

El sistema X Window fue desarrollado en 1984 por el MIT (Massachusetts Institute of Technology) con la idea de que todos los programas pudieran estar interactivamente disponibles para todos los usuarios en cualquier estación de trabajo.

En 1987 publicaron la versión X11, nomenclatura la cual ha seguido utilizándose en todas las versiones posteriores.

 

Arquitectura cliente/servidor

El sistema X Window se basa en que todo el proceso gráfico no es más que un proceso que ejecuta el sistema operativo, esto evita muchos problemas de estabilidad al kernel.

Por un lado tenemos que su gran ventaja es la absoluta independencia entre el sistema operativo y el entorno gráfico.

En contrapartida, existe el inconveniente de que el entorno gráfico reduce su velocidad en comparación a otros sistemas gráficos que incluyen los procesos referentes al proceso gráfico en el propio núcleo. Aunque esta práctica tiene la ventaja de que el sistema gráfico es más veloz, se hace un gasto innecesario de recursos, aun sin usar ninguna aplicación, y es más propensa a fallos del sistema debidos a errores en el apartado gráfico. A continuación vemos representada la arquitectura de los sistemas que poseen integrados en su núcleo el sistema gráfico.

Ejemplo de kernel que incluye los procesos gráficos (por ejemplo sistemas Microsoft Windows)

Toda la filosofía de X Window se basa en la arquitectura cliente/servidor.

El servidor se encarga de gestionar un display. Un display se debe entender como la unidad formada por la/s pantalla/s y por los dispositivos de entrada, bien sea un ratón, un teclado, etc.

El cliente, básicamente, es una aplicación que se está ejecutando en modo gráfico.

El funcionamiento sería el siguiente, el servidor se encarga de captar las entradas del usuario y se las pasa a los clientes (las aplicaciones), ya que puede servir a varios a la vez. Dicha información proviene de los dispositivos de entrada del display, para que los clientes actúen en consecuencia. Los clientes tienen que captar esta información y operar. La respuesta del cliente es enviada al servidor ordenándole que dibuje dicha respuesta en la/s pantalla/s del display.

Gracias a esta arquitectura, no estamos limitados a la máquina local, pudiéndose llevar la parte del servidor a cualquier equipo remoto a través de la red como vemos en la siguiente figura.

Hay que señalar que la filosofía del sistema X Window puede parecer engañosa, ya que invierte la posición tradicional del cliente y el servidor. El servidor es el usuario con su terminal X y el cliente está corriendo en una computadora remota o local.

Arquitectura cliente / servidor en ordenadores conectados por red. El Servidor X posee los periféricos y el Cliente X las aplicaciones

Una de las partes más importantes de la arquitectura cliente servidor es la conexión física entre el cliente y el servidor. De ello dependerá en gran medida el rendimiento del sistema. Una conexión de red rápida entre cliente y servidor o que el servidor esté en la misma computadora que el cliente hará que el entorno funcione de una manera rápida.

La comunicación entre el cliente y el servidor se realizan mediante el denominado protocolo X (Xprotocol). Este protocolo permite definir el número exacto de bytes necesarios para definir una ventana. El problema es que la programación con este lenguaje es extremadamente complicada y laboriosa, casi como el lenguaje máquina.

Xlib es una biblioteca de unas 300 funciones escritas en C que generan código del Xprotocol y facilitan su programación. Sin embargo, los aspectos de decoración de ventana y manejos de ventanas no están definidos en esta biblioteca.

 

Historia

X Consortium

En 1994 el MIT cedió todos los derechos del X Window System al X Consortium para que llevara un desarrollo independiente del mismo y evitar que se fragmentara en el mercado, y el cual fue soportado por las tasas que pagaban sus propios miembros.

En 1996 se publicó la versión X11R6 (X11 Release 6).

 

The Open Group

En 1996 el X Consortium cerró y le entregó todos sus derechos sobre el X Window System al The Open Group para que prosiguiera su desarrollo. Este grupo surgió de la fusión del Open Software Foundation (OSF) y el X/Open.

A principios de 1998 se publicó la versión X11R6.4 con una licencia de pago para conseguir financiación, a final de año volvió a publicarla siguiendo con la misma licencia. Aunque durante este tiempo XFree86 comenzó el desarrollo de una versión de X11 libre.

En 1999 The Open Group formó el X.Org para supervisar las siguientes versiones del protocolo. Este nuevo grupo se quedó casi sin actividad y con un desarrollo muy pobre.

 

XFree86

El sistema XFree86 es una implementación libre y de código abierto del X Window System, se distribuye bajo la licencia XFree86 1.1 y fue desarrollado por el XFree86 Project Inc.

Hasta principios los primeros años 2004 fue utilizado en la mayoría de sistemas Unix, Solaris, GNU/Linux, etc.

En febrero del 2004, con su versión 4.4.0, se realizó un cambio de licencia que la FSF (Free Software Foundation) consideró que no era compatible con la licencia GPL, por lo que empezaron a desarrollar variantes del proyecto independientes.

La actual versión fue la 4.8.0 que se lanzó en diciembre del 2008.

 

X.Org

En 2004, tras el cambio de licencia en el sistema XFree86, el proyecto se bifurca y nace la X.Org Foundation, con el mismo objetivo que el anterior, desarrollar mediante software libre el X Window System.

X11R6.7.0 fue la primera versión del X.Org Server que salió a la luz tras la separación del proyecto.

En la actualidad se encuentra por la versión X11R7.7 y es el más adoptado por todas las distribuciones Linux, BSD y sus variantes.

 

Instalación

Para la instalación del sistema X solo tenemos que utilizar el siguiente paquete. Atención porque si se toman las fuentes de los CD/DVDs de instalación puede que este paquete lleve como dependencias los paquetes del gestor de escritorio del que posteriormente hablaremos, se recomienda utilizar los repositorios de Internet para su instalación.

apt-get install xorg

El sistema X nos proporciona la base del sistema gráfico como hemos dicho anteriormente, es decir, sobre él ejecutaremos aplicaciones individuales o un completo sistema de escritorio.

Para comprobar que está funcionando correctamente ejecutamos el siguiente comando:

startx

También se inicia mediante el comando:

xinit

Se mostrará una pantalla negra en modo terminal con la posibilidad de utilizar el ratón.

Servidor X iniciado

Para terminar con el modo gráfico teclearemos:

exit

Si falla el reconocimiento automático de nuestra tarjeta de video podemos configurar Xorg con:

X -configure

La salida del comando genera un archivo llamado /root/xorg.conf.new . Podemos editar este archivo para cambiar las resoluciones, drivers, etc. Después de de revisar y retocar el archivo lo debemos copiar al directorio /etc/X11/ como xorg.conf:

cp /root/xorg.conf.new /etc/X11/xorg.conf