Diferencia entre Xorg y Gnome / KDE / Xfce

21

Quiero aprender más sobre los sistemas UNIX y creo que tengo una pregunta bastante directa. Creo que sé para qué se usa X: da un estándar a las aplicaciones para presentar sus UI (entre otras cosas).

Pero, ¿por qué entonces hay una necesidad de Gnome / KDE y cómo se relacionan con X? Pensé que estaban usando X como una especie de interfaz entre la aplicación y la GUI, por lo que la GUI se puede personalizar mientras la interfaz se mantiene igual en todas las aplicaciones.

¿Es eso cierto o es Gnome / KDE independiente de X?

Liess Jemai
fuente

Respuestas:

28

(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.

ingrese la descripción de la imagen aquí

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

ingrese la descripción de la imagen aquí

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).

ingrese la descripción de la imagen aquí

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 ...)

smwikipedia
fuente
"El hecho de que el término" servidor "se aplique al software frente al usuario a menudo sorprende a los usuarios acostumbrados a que sus programas sean clientes de servicios en computadoras remotas. Aquí, en lugar de que una base de datos remota sea el recurso para una aplicación local , la pantalla gráfica del usuario y los dispositivos de entrada se convierten en recursos puestos a disposición por el servidor X local para los programas de cliente X locales y alojados de forma remota que necesitan compartir los gráficos y dispositivos de entrada del usuario para comunicarse con el usuario ". (ver wiki )
yaobin
1
En caso de que alguien se confunda con la frase "un servidor X normalmente se ejecuta en la máquina en la que se encuentra", consulte mi comentario más arriba. ¡Gracias @smwikipedia por dar una respuesta increíblemente increíble!
yaobin
5

Xorg (y el Xfree anterior, y el X10 anterior ) es un servidor para un protocolo más completamente llamado Sistema X Window ; permite que las aplicaciones dibujen en "la pantalla". Las cuales pueden ser remotas con X. Gnome / KDE / Xfce y otros entornos de escritorio / gestores de ventanas son aplicaciones especiales que se ejecutan en X que dibujan elementos como bordes e íconos y minimizan y maximizan que las aplicaciones mismas no lo hagan.

Y, dado que Gnome y KDE pueden ejecutarse (o funcionaron) en MS Windows (y Wayland en diversos grados), sí, son (o pueden ser) independientes de X.

Elliott Frisch
fuente