Sistema de ventanas distribuido independiente de:
Facilita desarrollo y transporte de interfaces de usuario gráficos
Desarrollado por MIT y DEC. Antecedente sistema W de Stanford.
Numerosas versiones de X. Algunos ejemplos:
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):
X está orientado a dispositivos bit-mapped (cada pixel está representada por uno o más bits de memoria). Definición de display:
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).
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:
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.
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).
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 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.
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:
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