Tabla de contenidos REXEC

4.9 El sistema X Window




Figura: Sistema X Window

El sistema X Window(referido de ahora en adelante como X) es una de las GUI("Graphical User Interface"), o sistema de ventanas de mapas de bits, más usadas. Todos los principales distribuidores de estaciones de trabajo trabajan con ella, y es usada cada vez más por los usuarios de todo el mundo. X ofrece es más que un simple entorno. Ofrece además una plataforma para paquetes comerciales incorporados en ella de modo exclusivo. Algunos grupos industriales, además de producir software de aplicación, han creado paquetes de software propios y estándares de interfaces que refinan las capacidades el sistema X Window. Estos paquetes se integran en las aplicaciones para mejorar su look and feel. Los dos paquetes comerciales más significativos en esta área son el MOTIF de OSF("Open Software Foundation") y el Open Look de UNIX International. X fue una creación de Robert Scheifler, Jim Gettys, y otros en el MIT, como parte del Proyecto Atenea, un proyecto de investigación dedicado al chequeo de grande redes de ordenadores personales y estaciones de trabajo. (Para más información sobre este proyecto, remitirse a Proyecto Atenea: estudio de computación distribuída en el MIT). Como parte de este estudio, se consideró necesario un sistema de entorno de ventanas que unificase los entornos existentes. X se concibió como tal, de modo que fuera un sistema de ventanas que pudiera ser usado en las diferentes redes y ordenadores integrados en el proyecto.

A medida que el proyecto Atenea progresaba, X evolucionó hacia un sistema de ventanas transportable y basado en red. Gran parte del trabajo inicial desarrollado en X se derivó de un sistema de ventanas de la misma época, desarrollado por Stanford y llamado W. De hecho, el nombre X fue simplemente una continuación del nombre anterior, W. El Consorcio del MIT, fundado en 1988, se dedica al desarrollo de X y a promover la cooperación en la industria informática para estandarizar las interfaces de X.

Las versiones actuales de X contienen dos números: el número de versión que indica el protocolo principal o revisiones del estándar, y el número de versión, que indica cambios menores. En el momento de redactar este documento, la última versión es X11R6; V1.2 para el OSF/MOTIF(basado en X11R5). Las principales revisiones de X son incompatibles entre sí, aunque hay compatibilidad hacia atrás con versiones menores dentro de una misma categoría.

El objeto de X fue permitir al usuario controlar todas las sesiones desde una sola pantalla, con aplicaciones ejecutándose bien en una ventana, o en terminales virtuales separadas, pero con un icono en la ventana principal recordándole la existencia de esa aplicación.

X proporciona la capacidad de gestionar tanto ventanas locales como remotas. Las ventanas remotas se establecen a través de TCP/IP, y las locales mediante el uso de zócalos de BSD.

4.9.1 Concepto funcional

Básicamente hay dos partes que se comunican entre sí:

  1. La aplicación, que recibe entradas del usuario, ejecuta código y envía la salida al usuario. En vez de leer y escribir directamente en el display, la aplicación usa la interfaz de programación Xlib para enviar y recibir datos de/a la terminal de usuario. La parte de aplicación se conoce también como cliente X.
  2. La terminal de usuario, que ejecuta la interfaz con el display y envía o recibe datos a/de la aplicación se denomina servidor X.




Figura: Concepto del sistema X Window - Clientes y servidores comunicándose.

Terminología:

El servidor X X11R5 ha proporcionado algunas mejoras en la velocidad y nuevas interfaces para la fuentes. Existe un Protocolo de Servicio de Fuentes X disponible para permitir a los servidores X delegar la gestión de las fuentes en un servidor de fuentes.

X11R5 ha añadido algunos clientes más, nuevas demos y una implementación completamente nueva del mapa de bits y xmag.

X11R5 ha añadido dos grandes funcionalidades a Xlib:

Funcionalidad:




Figura: Estructura de ventanas del sistema X Window - Cada ventana es hijo de otra ventana, siendo la raíz el display.

Aplicar el concepto de cliente/servidor tiene las siguientes ventajas:

4.9.2 Protocolo

Un protocolo X se puede implementar sobre cualquier mecanismo de transporte fiable y orientado a conexión. Utiliza un simple bloque de protocolo sobre la capa de transporte. Se usan cuatro tipos de mensajes:

Donde:

Los mensajes de respuesta, error y evento son enviados por el servidor al cliente.

Los displays se numeran siempre a partir de cero. Para conexiones TCP, el número de display N se asocia con el puerto 5800+N (hex 5800) y el 5900+N. El servidor X trata las conexiones en el puerto 58xx como conexiones con hosts que usan el formato "primero el byte inferior", y a los 59xx como aquellos que tienen el formato "primero el byte de orden superior".

Hay más de cien posibles peticiones, cada una correspondiente a una llamada de aplicación de Xlib. Ya que este documento no es una guía del programador, no trataremos las funciones de Xlib. El RFC 1013 - Protocolo del sistema X Window, Version 11 contiene la actualización alfa de 1987 del X11. Para conseguir documentación sobre la versión actual de X11R6, ponerse en contacto con el MIT o con un distribuidor de libros técnicos.

Tabla de contenidos RPC ("Remote Procedure Call")