Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio

Este artículo trata sobre cómo funcionan los gráficos de Linux y en qué componentes consiste. Tiene muchas capturas de pantalla de varias implementaciones de entornos de escritorio. 

Si no tiene mucha diferencia entre KDE y GNOME, o si la tiene, pero le gustaría saber qué otras alternativas hay, entonces este artículo es para usted. Es una descripción general, y aunque tiene muchos nombres y pocos términos, el material también será útil para los principiantes que solo están mirando hacia Linux.

El tema también puede ser de interés para usuarios avanzados al configurar el acceso remoto y al implementar un cliente ligero. A menudo me encuentro con Linuxoides bastante experimentados con las declaraciones "en el servidor solo hay una línea de comando, y no planeo estudiar los gráficos con más detalle, ya que todo esto es necesario para los usuarios comunes". Pero incluso los conocedores de Linux se sorprenden y se alegran al descubrir la opción "-X" para el comando ssh (y para esto es útil comprender el funcionamiento y las funciones del servidor X).

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritoriofuente

Llevo casi 15 años impartiendo cursos de Linux en "Academia de redes LANIT“Y estoy seguro de que muchas de esas más de cinco mil personas a las que entrené leen y probablemente escriben artículos sobre Habr. Los cursos siempre están muy ocupados (la duración promedio del curso es de cinco días), debe hablar sobre temas que requieren al menos diez días para un conocimiento completo. Y siempre durante el curso, dependiendo de la audiencia (novatos reunidos o administradores experimentados), así como de las "preguntas de la audiencia", elijo qué transmitir con más detalle y qué es más superficial para dedicar más tiempo a las utilidades de línea de comando y su aplicación práctica. Hay suficientes temas de este tipo que deben sacrificarse un poco. Estos son "Historia de Linux", "Diferencias en las distribuciones de Linux", "Acerca de las licencias: GPL, BSD, ...", "Acerca de los entornos gráficos y de escritorio" (el tema de este artículo), etc. No es que no sean importantes, pero por lo general hay muchas más preguntas relevantes "aquí y ahora" y solo unos cinco días... que se llama "Linux") es útil y necesario estudiar estos temas. 

A lo largo del artículo, para cada componente, indico enlaces para aquellos que quieran profundizar en el tema, por ejemplo, a artículos de Wikipedia (mientras señalo una versión más completa/útil si hay artículos en inglés y ruso).

Para ejemplos básicos y capturas de pantalla, utilicé la distribución openSUSE. Era posible usar cualquier otra distribución desarrollada por la comunidad con una gran cantidad de paquetes en el repositorio. Es difícil, pero posible, demostrar la variedad de diseños de escritorio en una distribución comercial, ya que a menudo usan solo uno o dos de los entornos de escritorio más conocidos. Por lo tanto, los desarrolladores reducen la tarea de lanzar un sistema operativo estable y depurado. En el mismo sistema, instalé todos los DM / DE / WM (una explicación de estos términos a continuación), que encontré en el repositorio. 

Las capturas de pantalla con "marcos azules" solo se toman en openSUSE. 

Se realizaron capturas de pantalla con "marcos blancos" en otras distribuciones, se indican en la captura de pantalla. 

Las capturas de pantalla con "bordes grises" se tomaron de Internet, como ejemplos de diseños de escritorio de antaño.

Vamos a empezar.

Los componentes principales que componen los gráficos.

Destacaré tres componentes principales y los enumeraré en el orden en que se inician al iniciar el sistema: 

  1. DM (Administrador de pantalla);
  2. servidor de visualización;
  3. DE (Entorno de escritorio).

Además, como subelementos importantes del entorno de escritorio: 

  • Administrador de aplicaciones/Launcher/Switcher (botón de inicio); 
  • WM (Administrador de ventanas);
  • software que viene con el entorno de escritorio.

Más detalles en cada artículo.

DM (Administrador de pantalla)

La primera aplicación que se inicia cuando se inicia "gráficos" es DM (Display Manager), un administrador de pantalla. Sus tareas principales:

  • preguntar qué usuarios dejar entrar al sistema, solicitar datos de autenticación (contraseña, huella digital);
  • elegir qué entorno de escritorio ejecutar.

Actualmente, varias distribuciones son ampliamente utilizadas: 

La lista de DM existentes se mantiene actualizada en Artículo Wiki. 

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Vale la pena señalar que las siguientes capturas de pantalla usan el mismo administrador de pantalla LightDM, pero en diferentes distribuciones (los nombres de las distribuciones están entre paréntesis). Comprueba lo diferente que puede verse este DM gracias al trabajo de los diseñadores de diferentes distribuciones.

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Lo principal en esta diversidad es dejar claro que existe una aplicación que se encarga de lanzar gráficos y permitir que el usuario acceda a estos gráficos, y existen diferentes implementaciones de esta aplicación que difieren en apariencia y algunas funcionalidades (elección de entornos de diseño, elección de usuarios, versión para usuarios con discapacidad visual, posibilidad de acceso remoto a través de protocolo XDMCP).

Servidor de visualización

Display Server es una especie de base de gráficos, cuya tarea principal es trabajar con una tarjeta de video, un monitor y con varios dispositivos de entrada (teclado, mouse, paneles táctiles). Es decir, una aplicación (por ejemplo, un navegador o un editor de texto) que se representa en un "gráfico" no necesita saber cómo trabajar directamente con los dispositivos, no necesita saber sobre los controladores. Todo está a cargo de X Window.

Cuando se habla de Display Server, durante muchos años en Linux y en Unix, significaba una aplicación Sistema X Window o en la gente común X (X). 

Ahora muchas distribuciones están reemplazando X con Wayland. 

También puedes leer:

Primero, ejecutemos las X y algunas aplicaciones gráficas en ellas.

Practicum "ejecutar X y aplicaciones en él"

Haré todo desde el usuario webinaruser recién creado (sería más fácil, pero no más seguro, hacerlo todo desde la raíz).

  • Como H'am necesita acceso a los dispositivos, doy acceso: Determiné la lista de dispositivos mirando los errores al iniciar X en el registro (/home/webinaruser/.local/share/xorg/Xorg.77.log) 

% sudo setfacl -m u:webinaruser:rw /dev/tty8 /dev/dri/card0 /dev/fb0 /dev/input/*

  • Después de eso empiezo X's:

% X -retro :77 vt8 & 

Opciones: * -retro: comience con un fondo clásico "gris", no negro como predeterminado; * :77 - Configuro (cualquiera dentro de un rango razonable es posible, solo :0 probablemente ya esté ocupado por los gráficos que ya se están ejecutando) número de pantalla, algún identificador único real mediante el cual será posible distinguir entre varias X en ejecución; * vt8: especifica el terminal, aquí /dev/tty8, en el que se mostrarán las X). 

  • Lanzamiento de la aplicación gráfica:

Para ello, primero establecemos una variable por la cual la aplicación entenderá cuál de las X tengo corriendo para enviar lo que hay que dibujar: 

% export DISPLAY=":77" 

Puede ver la lista de X en ejecución de esta manera: 

ps -fwwC X

Después de configurar la variable, podemos iniciar aplicaciones en nuestras X; por ejemplo, inicio el reloj:

% xclock -update 1 & 

% xcalc & 

% xeyes -g 200x150-300+50 &

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Las principales ideas y conclusiones de este fragmento:

  • X necesita acceso a los dispositivos: terminal, tarjeta de video, dispositivos de entrada,
  • Los X en sí mismos no muestran ningún elemento de interfaz: es un lienzo gris (si tiene la opción "--retro") o negro de ciertos tamaños (por ejemplo, 1920 × 1080 o 1024 × 768) para ejecutar aplicaciones gráficas en él.
  • El movimiento de la "cruz" muestra que las X rastrean la posición del mouse y transmiten esta información a las aplicaciones que se ejecutan en él.
  • Además, las X capturan las pulsaciones de teclas del teclado y pasan esta información a las aplicaciones.
  • La variable DISPLAY le dice a las aplicaciones gráficas en qué pantalla (cada X se inicia con un número de pantalla único al inicio) y, por lo tanto, cuáles de las que se ejecutan en mi máquina dibujarán X. (También es posible establecer esta variable en una máquina remota y enviar la salida a Xs que se ejecutan en otra máquina de la red). Dado que Xs se inició sin la opción -auth, no es necesario tratar con la variable XAUTHORITY o el comando xhost.
  • Las aplicaciones gráficas (o como las llaman los clientes X) se dibujan en X, sin la capacidad de moverlas/cerrarlas/cambiarlas "-g (Ancho) x (Altura) + (ShiftFromLeftEdge) + (ShiftFromTopEdge)". Con un signo menos, respectivamente, desde la derecha y desde el borde inferior.
  • Dos términos que vale la pena mencionar son X-server (así es como se llaman las X) y X-clients (así es como se llama cualquier aplicación gráfica que se ejecuta en X). Hay un poco de confusión en la comprensión de esta terminología, muchos la entienden exactamente al revés. En el caso de que me conecte desde la "máquina cliente" (en terminología de acceso remoto) al "servidor" (en terminología de acceso remoto) para mostrar una aplicación gráfica del servidor en mi monitor, entonces el servidor X se inicia en la máquina donde está el monitor (es decir, en la "máquina cliente", y no en el "servidor"), y los clientes X se inician y funcionan en el "servidor", aunque se muestran en el monitor de la "máquina cliente". 

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio

componentes DE

A continuación, analizaremos los componentes que suelen formar el escritorio.

Componentes DE: botón de inicio y barra de tareas

Comencemos con el llamado botón "Inicio". A menudo, este es un subprograma separado que se usa en la "Barra de tareas". También suele haber un subprograma para cambiar entre aplicaciones en ejecución.

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Después de mirar diferentes entornos de escritorio, resumiría dichas aplicaciones bajo el nombre general de "Administrador de aplicaciones (Launcher / Switcher)", es decir, una herramienta para administrar aplicaciones (iniciar y cambiar entre las que están en ejecución), y también indicar las utilidades que son un ejemplo de una aplicación de este tipo.

  • Ocurre en forma de un botón "Inicio" en la clásica "Barra de tareas" (longitud completa de uno de los bordes de la pantalla):

    ○ panel xfce4,
    ○ panel compañero/panel gnomo,
    ○ panel de valor,
    ○ tinte2.

  • También puede resaltar las "barras de tareas con forma de MacOS" por separado (no en toda la longitud del borde de la pantalla), aunque pueden aparecer muchas barras de tareas en ambos. Aquí, más bien, la principal diferencia es puramente visual: la presencia del "efecto de aumentar los íconos al pasar el mouse".

    ○ muelle,
    ○ muelle de café con leche,
    ○ muelle de el cairo,
    ○ tablón.

  • Y / O un servicio que inicia aplicaciones cuando se presionan teclas de acceso rápido (en muchos entornos de escritorio, un componente similar está necesariamente presente y le permite configurar sus propias teclas de acceso rápido):

    ○ sxhkd.

  • También hay varios "lanzadores" en forma de menú (del inglés. Launch (run)):

    ○ dmenu-ejecutar,
    ○ rofi -mostrar borracho,
    ○ Alberto,
    ○ grunge.

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio

Componentes DE: WM (Administrador de ventanas)

Leer más en ruso

Leer más en inglés

WM (Administrador de ventanas): un tipo de aplicación que se encarga de administrar las ventanas, agrega la capacidad de:

  • mover ventanas por el escritorio (incluida la estándar manteniendo presionada la tecla Alt para cualquier parte de la ventana, y no solo para el título);
  • cambiar el tamaño de las ventanas, por ejemplo, arrastrando el "marco de la ventana";
  • agrega un "título (título)" y botones para minimizar / maximizar / cerrar la aplicación en la interfaz de la ventana;
  • el concepto de qué aplicación está en "foco".

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Voy a enumerar los más famosos (indico entre paréntesis qué DE se usa por defecto):

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
También enumeraré "antiguo WM con elementos DE". Aquellos. Además del administrador de ventanas, tienen elementos como el botón Inicio y la barra de tareas, que son más inherentes a DE completo. Aunque que “viejos” son, si tanto IceWM como WindowMaker ya lanzaron sus versiones actualizadas en 2020. Resulta que es más correcto no "viejo", sino "veteranos":

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Además del "clásico" ("administradores de ventanas de pila"), vale la pena señalar por separado WM en mosaico, que permite colocar las ventanas en mosaico en toda la pantalla y, para algunas aplicaciones, un escritorio independiente para cada aplicación en ejecución en pantalla completa. Esto es un poco inusual para las personas que no los han usado antes, pero como yo mismo he estado usando una interfaz de este tipo durante bastante tiempo, puedo decir que es bastante conveniente y te acostumbras rápidamente a tal interfaz, después de lo cual los administradores de ventanas "clásicos" no parecen convenientes.

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
También vale la pena mencionar por separado el proyecto Compiz y un concepto como el "Administrador de ventanas compuestas", que utiliza las capacidades de aceleración de hardware para mostrar transparencias, sombras y varios efectos tridimensionales. Hace unos 10 años hubo un boom de los efectos 3D en los escritorios Linux. Ahora, muchos de los administradores de ventanas integrados en DE utilizan algunas de las funciones de composición. aparecido recientemente Camino de fuego - un producto con funcionalidad Compiz similar para Wayland.

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
También se puede encontrar una lista detallada de varios administradores de ventanas en  artículo de comparación.

Componentes DE: el resto

También vale la pena señalar los siguientes componentes de escritorio (aquí uso términos establecidos en inglés para describir el tipo de aplicación; estos no son los nombres de las aplicaciones en sí):

  • applets:
  • Software (kit de herramientas de widgets): a menudo, un cierto "conjunto mínimo" de software viene con el entorno:

DE (Entorno de escritorio)

Leer más en inglés

A partir de los componentes enumerados anteriormente, se obtiene el llamado "Entorno de escritorio". A menudo, todos sus componentes se desarrollan utilizando las mismas bibliotecas de gráficos y utilizando los mismos principios de diseño. Así, al menos, se mantiene un estilo común para la apariencia de las aplicaciones.

Aquí podemos destacar los siguientes entornos de escritorio existentes actualmente:

GNOME y KDE se consideran los más comunes, y XFCE les pisa los talones.

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
La comparación por varios parámetros en forma de tabla se puede ver en el correspondiente artículo de wikipedia.  

Variedad DE

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
proyecto_espejo_de_vidrio

Incluso hay ejemplos tan interesantes de la historia: en 2003-2007, se hizo un "diseño de escritorio 3D" para Linux con el nombre "Proyecto Looking Glass" de Sun. Yo mismo usé este escritorio, o más bien "jugué", ya que era difícil de usar. Esta "máscara 3D" se escribió en Java en una época en la que no había tarjetas gráficas 3D. Por lo tanto, todos los efectos fueron recalculados por el procesador y la computadora tenía que ser muy poderosa, de lo contrario todo funcionaba lentamente. Pero resultó hermoso. Los mosaicos de aplicaciones 360D se pueden rotar/expandir. Era posible rotar en el cilindro del escritorio con papel tapiz desde un panorama de XNUMX ​​grados. Hubo varias aplicaciones hermosas propias: por ejemplo, escuchar música en forma de "cambiador de CD", etc. Puedes mirar youtube видео sobre este proyecto, solo que la calidad de estos videos muy probablemente sea mala, ya que en esos años no era posible subir videos de alta calidad.

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Xfce

Escritorio ligero. Hay un proyecto desde hace mucho tiempo, desde 1996. En los últimos años, bastante popular, a diferencia de KDE y GNOME, más pesados, en muchas distribuciones que requieren una interfaz de escritorio ligera y "clásica". Tiene muchas configuraciones y una gran cantidad de sus programas: terminal (xfce4-terminal), administrador de archivos (thunar), visor de imágenes (ristretto), editor de texto (mousepad).

 
Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Panteón 

Se utiliza en la distribución del sistema operativo elemental. Aquí podemos decir que hay "escritorios" que se desarrollan y usan dentro de una distribución separada y no se usan mucho (si no "no se usan en absoluto") en otras distribuciones. Al menos aún no han ganado popularidad y no han convencido a gran parte de la audiencia de las ventajas de su enfoque. Pantheon tiene como objetivo construir una interfaz similar a macOS. 

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Opción de panel de base:

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Ilustración

Fuerte enfoque en efectos gráficos y widgets (desde los días en que otros entornos de escritorio no tenían widgets en el escritorio, como el calendario/reloj). Utiliza sus propias bibliotecas. Hay un gran conjunto de sus aplicaciones "hermosas": terminal (Terminología), reproductor de video (Rage), visor de imágenes (Ephoto).

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Moksha

Esta es una bifurcación de Enlightenment17 que se usa en la distribución BodhiLinux. 

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
GNOME

Inicialmente una interfaz de escritorio "clásica", creada en oposición a KDE, que estaba escrita en la biblioteca QT, en ese momento distribuida bajo una licencia que no era muy conveniente para distribuciones comerciales. 

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
GNOME_Shell

A partir de la tercera versión de GNOME, GNOME comenzó a enviarse con GNOME Shell, que tiene un "aspecto no clásico", que no gustó a todos los usuarios (cualquier cambio repentino en las interfaces es difícil de aceptar para los usuarios). Como resultado, la aparición de proyectos de bifurcación que continúan el desarrollo de este escritorio en el estilo "clásico": MATE y Cinnamon. Se utiliza por defecto en muchas distribuciones comerciales. Tiene una gran cantidad de configuraciones y sus aplicaciones. 

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
MATE 

Apareció sobre la base de GNOME2 y continúa desarrollando este entorno. Tiene una gran cantidad de tweaks y bifurcaciones de aplicaciones que se usaban en GNOME2 (se usan nuevos nombres para no confundir las bifurcaciones con su nueva versión para GNOME3).

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Canela

Una bifurcación de GNOME Shell que brinda a los usuarios una interfaz de estilo "clásico" (como lo fue en GNOME2). 

Tiene una gran cantidad de configuraciones y las mismas aplicaciones que para GNOME Shell.

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Periquito

Una bifurcación de estilo "clásico" de GNOME que se desarrolló como parte de la distribución Solus, pero ahora también viene como un escritorio independiente en varias otras distribuciones.

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
KDE_Plasma (o, como suele llamarse, simplemente KDE) 

Entorno de escritorio desarrollado por el proyecto KDE. 

Tiene una gran cantidad de configuraciones disponibles para un usuario simple desde la interfaz gráfica y muchas aplicaciones gráficas desarrolladas dentro de este escritorio.

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Trinity

En 2008, KDE lanzó su nueva implementación de KDE Plasma (el motor de escritorio se reescribió en gran medida). Además, al igual que con GNOME/MATE, no a todos los fanáticos de KDE les gustó. Como resultado, apareció una bifurcación del proyecto, continuando el desarrollo de la versión anterior, llamada TDE (Trinity Desktop Environment).

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Deepin_ES

Uno de los entornos de escritorio más nuevos escritos con Qt (que es en lo que está escrito KDE). Tiene muchas configuraciones y una interfaz bastante hermosa (aunque este es un concepto subjetivo) y bien desarrollada. Desarrollado como parte de la distribución Deepin Linux. También hay paquetes para otras distribuciones.

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
Fly 

Un ejemplo de un entorno de escritorio escrito usando Qt. Desarrollado como parte de la distribución Astra Linux. 

Cómo funcionan los gráficos en Linux: una descripción general de los diversos entornos de escritorio
LXQt

Entorno de escritorio ligero. Como varios ejemplos anteriores, escrito usando Qt. De hecho, es una continuación del proyecto LXDE y el resultado de una fusión con el proyecto Razor-qt.

Como puede ver, el escritorio de Linux puede verse muy diferente y hay una interfaz adecuada para todos los gustos: desde muy hermosa y con efectos 3D hasta minimalista, desde "clásica" hasta inusual, desde pesada hasta liviana, desde pantallas grandes hasta tabletas / teléfonos inteligentes.

Bueno, me gustaría esperar haber logrado dar una idea de cuáles son los componentes principales de los gráficos y el escritorio en el sistema operativo Linux.

El material de este artículo se probó en julio de 2020 en un seminario web. se puede ver aquí.

Eso es todo. Espero que haya sido de ayuda. Si tienes alguna duda y comentario, escribe. Estaré encantado de responder. Así que ven y estudia Academia de redes LANIT!

Fuente: habr.com

Añadir un comentario