Volver al índice ; Próximo: Ventanas

Introducción

¿Qué es X?

Sistema de ventanas distribuido independiente de:

Facilita desarrollo y transporte de interfaces de usuario gráficos

Historia

Desarrollado por MIT y DEC. Antecedente sistema W de Stanford.

Numerosas versiones de X. Algunos ejemplos:

Versión 10 Release 4 (1986)
Interés comercial
Versión 11 Release 2 (1988)
Control del sistema pasa de MIT a Consorcio X (man XConsortium)
Versión 11 Release 6.3 (Diciembre de 1996)
Última versión denominada Broadway: Incluye la capacidad de acceso a aplicaciones X a través del Web.
Algunas palabras sobre la historia y el desarrollo de X por parte de uno de sus creadores, Jim Gettys, el día del décimo aniversario del sistema (19 Jun 1994).

Situación actual

A principios de 1997 el Consorcio X ha transferido el control del sistema al Open Group (OSF + X/Open).

El Open Group, además de en otros campos como los entornos distribuidos (Distributed Computing Environment), trabaja sobre la tecnología Desktop:

Proporcionar una interfaz de usuario gráfica estándar para sistemas abiertos que los haga tan fáciles de manejar como un PC. La propuesta está organizada en tres niveles (de abajo a arriba):

El curso se centra en los dos niveles inferiores: X y Motif.

Conceptos básicos

Display

X está orientado a dispositivos bit-mapped (cada pixel está representada por uno o más bits de memoria). Definición de display:

Modelo cliente-servidor

Adecuado para entornos distribuidos.

Se realiza buffering de las peticiones del cliente que no se mandan hasta que ocurre alguna de las siguientes situaciones:

Un servidor controla cada display realizando las siguientes tareas:

Al principio, puede resultar un poco confuso el papel del cliente y del servidor en X, ya que, a diferencia de la situación habitual, el servidor suele ser local (el proceso que ejecuta en la máquina en la que estamos sentados controlando los dispositivos gráficos) y los clientes locales o remotos (en el caso de un terminal X, todos son remotos).

Nuevo concepto hardware: Terminal X
Máquina que ejecuta sólo el servidor X

Especificando el display

La mayoría de los programas clientes no especifican (valor nulo en XOpenDisplay) a qué display se conectan. La librería del cliente consulta la variable de entorno DISPLAY cuya sintaxis es:

host:display[.screen]

donde:

host
Nombre (dirección) del host dónde ejecuta el servidor
display
Número de display. En teoría pueden existir varios displays (y servidores) en una máquina. Usualmente sólo hay uno que es el 0.
screen
Número de pantalla (opcional)

Ejemplo: Ejecutando una aplicación X simple (Ver nota sobre el arranque de X)


Ejemplo: Ejecutando aplicaciones X remotas sobre el display local


Gestor de ventanas

Permite al usuario controlar las ventanas (posiblemente de múltiples usuarios y aplicaciones) creadas en un display

Algunas funciones del gestor de ventanas:

El servidor X proporciona mecanismos pero no define políticas: Gestor de ventanas no incluido en el servidor.

Es un cliente con algunos privilegios. Existen numerosos gestores de ventanas: twm, mwm, fvwm, etc. No es necesario que esté activo para que funcione correctamente una aplicación X.


Ejemplo: Gestor de ventanas como un cliente más


Eventos

Servidor envía eventos al cliente para informar de acciones de usuario y cambios en el estado del sistema. Por ejemplo, evento Expose se produce cuando queda visible parcial o totalmente una ventana.

La librería del cliente encola los eventos recibidos. El programa irá recogiendo los eventos de la cola (diálogo dirigido por el programa).


Ejemplo: Viendo los eventos que ocurren en una ventana


Recursos

Permiten al usuario controlar el aspecto y funcionamiento de la aplicación. Un programa tiene opciones de configuración (recursos) que puede fijar el usuario.

La librería del cliente construye en tiempo de ejecución una base de datos con las definiciones de recursos especificadas por el usuario. El programa puede consultar estas definiciones.

Comunicación entre clientes

Comunicación usando propiedades: datos con nombre y tipo. Mecanismo usado por el gestor de ventanas para recibir información del resto de los clientes.

Los clientes también se pueden comunicar mediante eventos.

Arquitectura y APIs de X

Todas las aplicaciones (incluyendo los comandos X y el gestor de ventanas) se comunican con el servidor llamando a la biblioteca Xlib.

Desventajas del uso directo de Xlib:

Se usan bibliotecas con llamadas de nivel más alto denominadas toolkits.

X Toolkit es la biblioteca estándar. Características:

Algunos conjuntos de widgets predefinidos:

Athena
Desarrollado para mostrar las características de Xt. No destinado, en principio, a uso comercial.
OPEN-LOOK
Comenzó como especificación de I.U. de Sun. AT&T desarrolló un conjunto de widgets que siguen la especificación.
Motif
Definido por OSF. Proporciona un I.U. basado en el Presentation Manager de Microsoft.

NOTA IMPORTANTE: Generalmente los programadores de aplicaciones X sólo utilizarán directamente las funciones de Xlib para realizar dibujos, trabajando el resto del tiempo con widgets. Sin embargo, por motivos de generalidad, este curso también muestra cómo es la programación exclusivamente con Xlib (capítulos del 2 al 6).


Volver al índice ; Próximo: Ventanas