¿Cómo está organizada la pila de gráficos de Linux?

Pregunta:

¿Alguien puede explicar (con suerte con una imagen), cómo está organizada la pila de gráficos de Linux? Escucho todo el tiempo sobre X / GTK / GNOME / KDE, etc., pero realmente no tengo ni idea de lo que hacen realmente y cómo interactúan entre sí y con otras partes de la pila. ¿Cómo encajan Unity y Wayland?

Respuesta:

El sistema X Window utiliza una arquitectura cliente-servidor. El servidor X se ejecuta en la máquina que tiene la pantalla (monitores + dispositivos de entrada), mientras que los clientes X pueden ejecutarse en cualquier otra máquina y conectarse al servidor X usando el protocolo X (no directamente, sino usando una biblioteca, como Xlib, o el XCB controlado por eventos sin bloqueo más moderno). El protocolo X está diseñado para ser extensible y tiene muchas extensiones (consulte xdpyinfo(1) ).

El servidor X solo hace operaciones de bajo nivel, como crear y destruir ventanas, hacer operaciones de dibujo (hoy en día la mayoría de los dibujos se hacen en el cliente y se envían como una imagen al servidor), enviar eventos a Windows, … Puedes ver lo poco un servidor X lo hace ejecutando X :1 & (use cualquier número que no haya sido usado por otro servidor X) o Xephyr :1 & (Xephyr ejecuta un servidor X incrustado en su servidor X actual) y luego ejecutando xterm -display :1 & y cambiar al nuevo servidor X (es posible que deba configurar la autorización X mediante xauth(1) ).

Como puede ver, el servidor X hace muy poco, no dibuja barras de título, no minimiza / iconifica la ventana, no administra la ubicación de la ventana … Por supuesto, puede controlar la ubicación de la ventana manualmente ejecutando un comando como xterm -geometry -0-0 , pero normalmente tendrá un cliente X especial que haga las cosas anteriores. Este cliente se llama administrador de ventanas . Solo puede haber un administrador de ventanas activo a la vez. Si todavía tiene abierto el servidor X desnudo de los comandos anteriores, puede intentar ejecutar un administrador de ventanas en él, como twm , metacity , kwin , compiz , larswm , pawm , …

Como dijimos, X solo realiza operaciones de bajo nivel, y no proporciona conceptos de nivel superior como pulsadores, menús, barras de herramientas, … Estos son proporcionados por librerías llamadas toolkits , por ejemplo: Xaw, GTK, Qt, FLTK, …

Los entornos de escritorio son colecciones de programas diseñados para proporcionar una experiencia de usuario unificada. Por lo tanto, los entornos de escritorio generalmente proporcionan paneles, lanzadores de aplicaciones, bandejas del sistema, paneles de control, infraestructura de configuración (dónde guardar la configuración). Algunos entornos de escritorio bien conocidos son KDE (construido usando el kit de herramientas Qt), Gnome (usando GTK), Enlightenment (usando sus propias bibliotecas del kit de herramientas), …

Algunos efectos de escritorio modernos se realizan mejor con hardware 3D. Entonces aparece un nuevo componente, el administrador compuesto . Una extensión X, la extensión XComposite, envía el contenido de la ventana al administrador compuesto. El administrador de compuestos convierte esos contenidos en texturas y utiliza hardware 3d a través de OpenGL para componerlos de muchas formas (mezcla alfa, proyecciones 3d, …).

No hace mucho tiempo, el servidor X hablaba directamente con los dispositivos de hardware. Una parte importante del manejo de este dispositivo se ha trasladado al kernel del sistema operativo: DRI (que permite el acceso al hardware 3D por parte de X y clientes de renderizado directo), evdev (interfaz unificada para el manejo de dispositivos de entrada), KMS (configuración del modo de gráficos en movimiento al kernel) , GEM / TTM (gestión de la memoria de texturas).

Entonces, con la complejidad del manejo de dispositivos ahora principalmente fuera de X, se hizo más fácil experimentar con sistemas de ventanas simplificados. Wayland es un sistema de ventanas basado en el concepto de administrador compuesto, es decir, el sistema de ventanas es el administrador compuesto. Wayland hace uso del manejo del dispositivo que se ha movido fuera de X y renderiza usando OpenGL.

En cuanto a Unity, es un entorno de escritorio diseñado para tener una interfaz de usuario adecuada para netbooks.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım