(Estoy investigando la relación de GNOME y X. Me gustaría compartir algunos de mis entendimientos. Lo presentaré de la manera más lógica posible).
1. ¿De qué está compuesta la GUI?
A continuación se muestra una ilustración de los componentes básicos de una GUI.
El componente clave es el servidor de visualización . Hay varios servidores de visualización disponibles. Como:
- X11 (principalmente para * nix)
- Wayland (principalmente para * nix)
- Mir (principalmente para * nix)
- SurfaceFlinger (Esto es para Google Android).
- Compositor de cuarzo (esto es lo que usa Apple MacOS).
- Desktop Window Manager (Esto es lo que usa Microsoft Windows).
2. ¿Qué es X?
X, X11 y X Window System son sinónimos. Todos ellos representan un sistema de ventanas . Windowing System es un tipo de interfaz gráfica de usuario (GUI, como mencioné anteriormente) que implementa el paradigma WIMP (ventanas, iconos, menús, puntero) para una interfaz de usuario.
Aquí hay una lista de los principales sistemas de ventanas para sistemas Linux y Windows.
El componente principal de cualquier sistema de ventanas generalmente se llama servidor de visualización (no es de extrañar porque el sistema de ventanas es una especie de GUI y el servidor de visualización es la parte clave de cualquier GUI), aunque también se usan otros nombres como servidor de ventanas o compositor .
Cualquier aplicación que se ejecute y presente su GUI es un cliente del servidor de visualización . El servidor de visualización y sus clientes se comunican entre sí a través de un protocolo de comunicaciones, que generalmente se denomina protocolo de servidor de visualización , siendo el servidor de visualización el mediador entre los clientes y el usuario. El servidor de visualización recibe todas las entradas del núcleo, que el núcleo recibe de todos los dispositivos de entrada conectados, como el teclado, los dispositivos señaladores o la pantalla táctil, y los transmite al cliente correcto. El servidor de visualización también es responsable de la salida de los clientes al monitor de la computadora. Un protocolo de servidor de pantallapuede ser capaz de red o incluso transparente de red. (para que pueda ver, se trata esencialmente de flujo de datos y enrutamiento, los datos visuales siguen siendo datos).
Y según aquí :
Un servidor X es un programa que proporciona servicios de visualización y entrada de usuario a otros programas. En comparación, un servidor de archivos proporciona a otros programas acceso a dispositivos de almacenamiento de archivos. Los servidores de archivos generalmente se encuentran en una ubicación remota y usted utiliza los servicios de un servidor de archivos desde la máquina en la que se encuentra. Por el contrario, un servidor X generalmente se ejecuta en la máquina en la que se encuentra ; los programas que se ejecutan en su máquina, así como los programas que se ejecutan en máquinas remotas , pueden solicitar los servicios de visualización y entrada de usuario .
Entonces X se compone de:
- servidor de visualización
- mostrar el protocolo del servidor
- algunas librerías para el desarrollo
- Y otras cosas
De acuerdo a aquí :
X proporciona el marco básico para un entorno GUI: dibujar y mover ventanas en el dispositivo de visualización e interactuar con un mouse y un teclado. X no exige la interfaz de usuario, esto es manejado por programas individuales. Como tal, el estilo visual de los entornos basados en X varía mucho; diferentes programas pueden presentar interfaces radicalmente diferentes.
En otras palabras, X solo le da a un programa la capacidad de hacer cosas básicas como dibujar / mover ventanas e interactuar con entradas . X no impone estilos visuales. Entonces, lo que dijo " ... Le da un estándar a las aplicaciones para presentar sus IU ... " es incorrecto.
3. ¿Qué es GNOME / KDE?
GNOME y KDE son ambos entornos de escritorio Linux . Un entorno de escritorio es un conjunto de programas que se ejecutan sobre un sistema operativo y que comparten una GUI común .
Pero al igual que mencioné anteriormente, X11, como servidor de visualización, solo proporciona la capacidad de dibujo básica a través de algunas bibliotecas como Xlib o XCB. Las aplicaciones que interactúan directamente con X11 a través de tales bibliotecas pueden tener estilos visuales radicalmente diferentes .
Entonces, ¿cómo crear una GUI común? Aquí viene el kit de herramientas de widgets . Tales como GTK + y Qt . Son populares en Wayland y X11 sistemas de ventanas .
GNOME usa el GTK +.
KDE usa el Qt.
Y aquí es una comparación de X Window System entornos de escritorio.
Para resumir...
Dibujo una ilustración conceptual aproximada. Las 3 partes sobre el sistema operativo son muy personalizables. Es por eso que surge tanta flexibilidad (confusión).
AGREGAR 1 - 1:26 PM 21/09/2018
Y aquí hay una discusión sobre QT y GTK (aunque puede ser un tema fuera de este hilo ...)