El protocolo central del sistema X Window [1] [2] [3] es el protocolo base del sistema X Window , que es un sistema de ventanas en red para pantallas de mapa de bits que se utiliza para crear interfaces gráficas de usuario en Unix , similares a Unix y otros sistemas operativos. sistemas . El sistema X Window se basa en un modelo cliente-servidor : un solo servidor controla el hardware de entrada / salida , como la pantalla , el teclado y el mouse ; todos los programas de aplicaciónactuar como clientes , interactuando con el usuario y con el resto de clientes a través del servidor. Esta interacción está regulada por el protocolo central del sistema X Window. Existen otros protocolos relacionados con el sistema X Window, ambos construidos en la parte superior del protocolo central del sistema X Window o como protocolos separados.
En el protocolo central del sistema X Window, solo se envían cuatro tipos de paquetes, de forma asincrónica , a través de la red: solicitudes, respuestas, eventos y errores. Las solicitudes son enviadas por un cliente al servidor para pedirle que realice alguna operación (por ejemplo, crear una nueva ventana) y que envíe los datos que contiene. Las respuestas son enviadas por el servidor para proporcionar dichos datos. El servidor envía los eventos para notificar a los clientes sobre la actividad del usuario u otros sucesos que les interesan. Erroresson paquetes enviados por el servidor para notificar a un cliente los errores ocurridos durante el procesamiento de sus solicitudes. Las solicitudes pueden generar respuestas, eventos y errores; Aparte de esto, el protocolo no impone un orden específico en el que se envían los paquetes a través de la red. Existen algunas extensiones del protocolo central, cada una con sus propias solicitudes, respuestas, eventos y errores.
X se originó en el MIT en 1984 (su [update]versión actual X11 apareció en septiembre de 1987). Sus diseñadores Bob Scheifler y Jim Gettys establecieron como principio inicial que su protocolo central era "crear un mecanismo, no una política". Como resultado, el protocolo central no especifica la interacción entre clientes y entre un cliente y el usuario. Estas interacciones son objeto de especificaciones independientes, [4] como las especificaciones ICCCM y freedesktop.org , y normalmente se aplican automáticamente mediante el uso de un conjunto de widgets determinado .
La comunicación entre el servidor y los clientes se realiza mediante el intercambio de paquetes a través de un canal . La conexión la establece el cliente (no se especifica cómo se inicia el cliente en el protocolo). El cliente también envía el primer paquete, que contiene el orden de bytes que se utilizará e información sobre la versión del protocolo y el tipo de autenticación que el cliente espera que utilice el servidor. El servidor responde enviando un paquete indicando la aceptación o rechazo de la conexión, o con una solicitud de autenticación adicional . Si se acepta la conexión, el paquete de aceptación contiene datos para que el cliente los utilice en la interacción posterior con el servidor.
Una vez establecida la conexión, se intercambian cuatro tipos de paquetes entre el cliente y el servidor a través del canal:
Los paquetes de solicitud y respuesta tienen una longitud variable, mientras que los paquetes de eventos y errores tienen una longitud fija de 32 bytes .