El Sistema X Window (a partir de ahora X) es una de las Interfaces de Usuario Gráficas (GUI) más usadas. Lo soporta los fabricantes más importantes de estaciones de trabajo y lo usa un gran número creciente de usuarios por todo el mundo. El Sistema X Window ofrece algo más que un entorno. También ofrece un plataforma para paquetes comerciales incorporados excepcionalmente. Además de escribir software de aplicación, algunos grupos de la industria han creado paquetes de software proprietario y estándares para interfaces que aumentan las capacidades de pantalla del Sistema X Window. Estos paquetes se integran luego en aplicaciones para mejorarlos en aspecto y sensación. Los dos paquetes comerciales más significativos en este área son MOTIF y Open Look.
La publicación actual de X contiene dos números: el número de versión que indica el protocolo principal o revisiones estándares y un número de publicación que indica cambios menos importantes.
El propósito de X era permitir al usuario controlar todas las sesiones desde un monitor, con aplicaciones ejecutándose en una ventana, o en terminales virtuales separadas pero con un icono en la pantalla primaria recordando la existencia de esas aplicaciones.
El Sistema X Window proporciona la capacidad de administrar ventanas local y remotamente. Las ventanas remotas se establecen a través de TCP/IP, y las locales a través del uso de sockets BSD.
Concepto
Básicamente existen dos partes que se comunican entre sí:
- La aplicación, que obtiene la entrada del usuario, ejecuta código y envía la salida de vuelta al usuario. En vez de leer y escribir directamente a la pantalla, la aplicación usa la interfaz de programación Xlib para enviar y recibir datos al/desde el terminal de usuario. La parte de la aplicación también se llama cliente X.
- El terminal de usuario, ejecutándose un software de administración de pantalla que recibe/envía datos de/a la aplicación y se llama servidor X.
Terminología:
- Servidor X: programa dedicado que proporciona servicios de visualización en una terminal gráfica a la petición del programa cliente X del usuario. Controla la pantalla y maneja el teclado y el ratón para uno o más clientes X. Típicamente los programas servidores X se ejecutan en PCs de gran rendimiento gráfico y estaciones de trabajo, así como "terminales X", que están diseñadas para ejecutar sólo el programa servidor X.
- Cliente X: aplicación actual que se diseñó para emplear una GUI para visualizar su salida. Típicamente, muchos clientes X compiten por el servicio de un servidor X por pantalla por usuario.
- Administrador X Window: programa cliente X localizado en la estación de trabajo donde se ejecuta el servidor X. Mientras las ventanas se pueden crear sin que esté presente un administrador de ventanas, un administrador de ventanas permite que las ventanas se redimensionen, muevan o se modifiquen a gusto.
- Protocolo X: se ejecuta dentro de la conexión de red y permite peticiones-respuestas entre clientes y servidores.
- Xlib: la interfaz de programación de aplicaciones rudimentaria está contenida en la Xlib. Es una colección de subrutinas primitivas de C embebidas en todos los clientes X, que da acceso al nivel más bajo al protocolo X.
- Kits de herramientas X: sirven para manejar la complejidad de la interfaz de bajo nivel Xlib y del Protocolo X subyacente. Estas herramientas son bibliotecas de software que proporcionan facilidades de alto nivel para implementar objetos de interfaz común de usuario tales como botones, menús y barras de desplazamiento, etc.