Conceptos básicos del sistema X Window (2014)

Este artículo se basa en muchas demostraciones interactivas que usan JavaScript para demostrar cómo funciona el sistema X Window. Desafortunadamente, el artículo no funcionará correctamente sin estas demostraciones interactivas, así que si siente que se está perdiendo algo, intente habilitar JavaScript.

Antes que empecemos...

Dado que este artículo contiene muchas demostraciones interactivas que se basan en tecnología de navegador bastante moderna, asegurémonos de que está bien antes de continuar.

Si puede ver el patrón de puntos de arriba, su navegador es lo suficientemente moderno para ver las demostraciones interactivas.

Es posible que haya notado que cuando pasó el mouse sobre la línea de puntos, el cursor cambió. Esto se debe a que no es solo una simple imagen de línea punteada, esa línea punteada es en realidad el fondo de una sesión de servidor X completa que se ejecuta en su navegador usando un lienzo HTML5. Todas las demostraciones interactivas usarán este marco para explicar lo que sucede debajo del capó.

Arquitectura Básica

Si bien esto puede sonar un poco estirado, ¿observa cómo sigo diciendo "el sistema de ventanas X" en lugar de los métodos abreviados más tradicionales "X", "X11" o "Xorg"? Quiero ser muy cuidadoso al separar las ideas y el diseño del sistema de sus componentes.

El sistema X Window es un sistema de visualización en red. Un componente del servidor, el servidor X, es responsable de la coordinación entre todos los clientes conectados, tomando la entrada del mouse y del teclado y enviando píxeles a la salida. La implementación del servidor X más popular es el servidor Xorg X, desarrollado por la comunidad y la fundación X.Org. Hay otras implementaciones de servidores X: puede recordar que Xorg se derivó de XFree86 hace diez años, que Sun Microsystems tenía varias implementaciones de servidores X, tanto en Xsun como en XNeWS. Hoy en día, Xorg es la implementación dominante del servidor X y obtiene la mayor parte del desarrollo. Pero en ese momento, existían varias implementaciones en competencia.

Los servidores X y los clientes X intercambian un protocolo de red estandarizado, conocido como X11. Este protocolo está bien especificado, desde el formato de cable hasta la semántica de cada solicitud. La documentación del protocolo vinculada anteriormente es una documentación invaluable para cualquier pirata informático que desee obtener más información sobre este tema.

Sin embargo, las aplicaciones y los juegos de herramientas no escriben el formato de cable directamente en el zócalo. A menudo usan bibliotecas cliente que implementan los protocolos, como la biblioteca Xlib tradicional o la xcb algo más nueva.

Intentaré ser preciso en mi nomenclatura en este artículo.

Cuando hablo de las características generales del sistema o de las decisiones de diseño, intentaré llamarlo Sistema X Window, aunque suene un poco prolijo. por ejemplo. El Sistema X Window nos proporciona Pixmaps, que son imágenes en la memoria del servidor.

Cuando hable sobre características o detalles del protocolo de red, me referiré al protocolo X11. por ejemplo. El protocolo X11 proporciona un mecanismo de extensión genérico, que permite implementar nuevas funciones con compatibilidad con versiones anteriores sin tener que rediseñar partes más antiguas de X11.

Cuando hablo del comportamiento de un cliente o un servidor, digo X cliente o X servidor, por ejemplo. Usando la extensión MIT-SHM, los clientes X pueden pasar búferes al servidor X usando la memoria compartida POSIX, lo que evita la creación de redes y copias grandes.

Cuando hablo de características o arquitectura en la implementación del servidor Xorg X, me referiré explícitamente a él como Xorg o el servidor Xorg X, p. Para acelerar las llamadas de dibujo, los controladores de video Xorg pueden proporcionar versiones aceleradas por hardware de algunas primitivas de dibujo a través de EXA.

Si alguna vez digo "tal y cual es una característica de X", es un error.

Solicitudes y Eventos

Como se dijo en la introducción, los clientes X se conectan a un servidor X y hablan un protocolo X11. Más detalladamente, los clientes pueden enviar solicitudes para pedirle al servidor X que haga algo. Una solicitud de ejemplo simple es CreateWindow, que le dice al servidor X que "cree una ventana". Aprenderemos más sobre Windows en un momento.

Si sucede algo interesante dentro del servidor X (por ejemplo, se ha creado una ventana), el servidor X puede enviar un evento a los clientes X. Para evitar que el tráfico de la red se sobrecargue, los clientes X deben decirle a X que... .

Este artículo se basa en muchas demostraciones interactivas que usan JavaScript para demostrar cómo funciona el sistema X Window. Desafortunadamente, el artículo no funcionará correctamente sin estas demostraciones interactivas, así que si siente que se está perdiendo algo, intente habilitar JavaScript.

Antes que empecemos...

Dado que este artículo contiene muchas demostraciones interactivas que se basan en tecnología de navegador bastante moderna, asegurémonos de que está bien antes de continuar.

Si puede ver el patrón de puntos de arriba, su navegador es lo suficientemente moderno para ver las demostraciones interactivas.

Es posible que haya notado que cuando pasó el mouse sobre la línea de puntos, el cursor cambió. Esto se debe a que no es solo una simple imagen de línea punteada, esa línea punteada es en realidad el fondo de una sesión de servidor X completa que se ejecuta en su navegador usando un lienzo HTML5. Todas las demostraciones interactivas usarán este marco para explicar lo que sucede debajo del capó.

Arquitectura Básica

Si bien esto puede sonar un poco estirado, ¿observa cómo sigo diciendo "el sistema de ventanas X" en lugar de los métodos abreviados más tradicionales "X", "X11" o "Xorg"? Quiero ser muy cuidadoso al separar las ideas y el diseño del sistema de sus componentes.

El sistema X Window es un sistema de visualización en red. Un componente del servidor, el servidor X, es responsable de la coordinación entre todos los clientes conectados, tomando la entrada del mouse y del teclado y enviando píxeles a la salida. La implementación del servidor X más popular es el servidor Xorg X, desarrollado por la comunidad y la fundación X.Org. Hay otras implementaciones de servidores X: puede recordar que Xorg se derivó de XFree86 hace diez años, que Sun Microsystems tenía varias implementaciones de servidores X, tanto en Xsun como en XNeWS. Hoy en día, Xorg es la implementación dominante del servidor X y obtiene la mayor parte del desarrollo. Pero en ese momento, existían varias implementaciones en competencia.

Los servidores X y los clientes X intercambian un protocolo de red estandarizado, conocido como X11. Este protocolo está bien especificado, desde el formato de cable hasta la semántica de cada solicitud. La documentación del protocolo vinculada anteriormente es una documentación invaluable para cualquier pirata informático que desee obtener más información sobre este tema.

Sin embargo, las aplicaciones y los juegos de herramientas no escriben el formato de cable directamente en el zócalo. A menudo usan bibliotecas cliente que implementan los protocolos, como la biblioteca Xlib tradicional o la xcb algo más nueva.

Intentaré ser preciso en mi nomenclatura en este artículo.

Cuando hablo de las características generales del sistema o de las decisiones de diseño, intentaré llamarlo Sistema X Window, aunque suene un poco prolijo. por ejemplo. El Sistema X Window nos proporciona Pixmaps, que son imágenes en la memoria del servidor.

Cuando hable sobre características o detalles del protocolo de red, me referiré al protocolo X11. por ejemplo. El protocolo X11 proporciona un mecanismo de extensión genérico, que permite implementar nuevas funciones con compatibilidad con versiones anteriores sin tener que rediseñar partes más antiguas de X11.

Cuando hablo del comportamiento de un cliente o un servidor, digo X cliente o X servidor, por ejemplo. Usando la extensión MIT-SHM, los clientes X pueden pasar búferes al servidor X usando la memoria compartida POSIX, lo que evita la creación de redes y copias grandes.

Cuando hablo de características o arquitectura en la implementación del servidor Xorg X, me referiré explícitamente a él como Xorg o el servidor Xorg X, p. Para acelerar las llamadas de dibujo, los controladores de video Xorg pueden proporcionar versiones aceleradas por hardware de algunas primitivas de dibujo a través de EXA.

Si alguna vez digo "tal y cual es una característica de X", es un error.

Solicitudes y Eventos

Como se dijo en la introducción, los clientes X se conectan a un servidor X y hablan un protocolo X11. Más detalladamente, los clientes pueden enviar solicitudes para pedirle al servidor X que haga algo. Una solicitud de ejemplo simple es CreateWindow, que le dice al servidor X que "cree una ventana". Aprenderemos más sobre Windows en un momento.

Si sucede algo interesante dentro del servidor X (por ejemplo, se ha creado una ventana), el servidor X puede enviar un evento a los clientes X. Para evitar que el tráfico de la red se sobrecargue, los clientes X deben decirle a X que... .

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow