Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio

Este artigo trata sobre como funcionan os gráficos en Linux e de que compoñentes consisten. Contén moitas capturas de pantalla de varias implementacións de ambientes de escritorio. 

Se realmente non diferencias entre KDE e GNOME, ou o fas pero queres saber que outras alternativas hai, este artigo é para ti. É unha visión xeral, e aínda que contén moitos nomes e poucos termos, o material tamén será útil para os principiantes e aqueles que só miran a Linux.

O tema tamén pode ser de interese para usuarios avanzados ao configurar o acceso remoto e implementar un cliente lixeiro. Moitas veces atópome con usuarios experimentados de Linux coas declaracións "só hai unha liña de comandos no servidor e non penso estudar os gráficos con máis detalle, xa que todo isto é necesario para os usuarios comúns". Pero incluso os expertos en Linux están moi sorprendidos e felices de descubrir a opción "-X" para o comando ssh (e para iso é útil comprender o funcionamento e as funcións do servidor X).

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorioOrixe

Levo case 15 anos impartindo cursos de Linux en "Academia de redes LANIT“e estou seguro de que moitas das máis de cinco mil persoas que formei len e probablemente escriben artigos sobre Habr. Os cursos son sempre moi intensos (a duración media do curso é de cinco días); hai que tratar temas que requiren polo menos dez días para comprender completamente. E sempre durante o curso, dependendo da audiencia (novatos reunidos ou administradores experimentados), así como das "preguntas do público", escollo que transmitir con máis detalle e que máis superficialmente, para dedicarlle máis tempo para as utilidades de liña de comandos e a súa aplicación práctica. Hai bastantes temas coma este que requiren un pouco de sacrificio. Estes son "Historia de Linux", "Diferenzas nas distribucións de Linux", "Sobre as licenzas: GPL, BSD, ...", "Sobre os contornos gráficos e de escritorio" (o tema deste artigo), etc. Non é que non o sexan. importante, pero normalmente hai moitas máis preguntas urxentes "aquí e agora" e só uns cinco días... Non obstante, para unha comprensión xeral dos conceptos básicos do sistema operativo Linux, unha comprensión da diversidade dispoñible (de xeito que mesmo usando un específico Distribución Linux, aínda tes unha visión máis ampla de todo este enorme e vasto mundo que se chama "Linux"), estudar estes temas é útil e necesario. 

A medida que avanza o artigo, ofrezo ligazóns para cada compoñente para aqueles que queiran afondar no tema, por exemplo, aos artigos da Wikipedia (mentres apunto a unha versión máis completa/útil se hai artigos en inglés e ruso).

Para exemplos básicos e capturas de pantalla usei a distribución openSUSE. Podería usarse calquera outra distribución desenvolvida pola comunidade, sempre que houbese un gran número de paquetes no repositorio. É difícil, pero non imposible, demostrar a variedade de deseños de escritorio nunha distribución comercial, xa que moitas veces só usan un ou dous dos entornos de escritorio máis coñecidos. Deste xeito, os desenvolvedores limitan a tarefa de lanzar un sistema operativo estable e depurado. Neste mesmo sistema instalei todo o DM/DE/WM (explicación destes termos a continuación) que atopei no repositorio. 

Capturas de pantalla con "marcos azuis" realizáronse en openSUSE. 

Tirei capturas de pantalla con "marcos brancos" noutras distribucións, indícanse na captura de pantalla. 

Capturas de pantalla con "cadros grises" foron tomadas de Internet, como exemplos de deseños de escritorio dos anos pasados.

Entón, imos comezar.

Principais compoñentes que compoñen os gráficos

Destacarei tres compoñentes principais e enumerarei-los na orde en que se inician ao iniciar o sistema: 

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

Ademais, como subcláusulas importantes do entorno de escritorio: 

  • Xestor de aplicacións/lanzador/conmutador (botón Inicio); 
  • WM (Xestor de fiestras);
  • varios programas que se inclúen co entorno de escritorio.

Máis detalles sobre cada punto.

DM (Xestor de pantalla)

A primeira aplicación que se inicia ao iniciar "graphics" é DM (Display Manager), un xestor de pantallas. As súas principais tarefas:

  • preguntar que usuarios permitir o sistema, solicitar datos de autenticación (contrasinal, impresión dixital);
  • escolla que ambiente de escritorio executar.

Actualmente moi utilizado en varias distribucións: 

A lista de DM existentes mantense actualizada en Artigo da wiki. 

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Cómpre sinalar que as seguintes capturas de pantalla usan o mesmo xestor de pantalla LightDM, pero en distribucións diferentes (os nomes das distribucións indícanse entre parénteses). Mira o diferente que pode verse este DM grazas ao traballo de deseñadores de diferentes distribucións.

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
O principal nesta diversidade é deixar claro que existe unha aplicación que se encarga de lanzar os gráficos e permitir que o usuario acceda a estes gráficos, e hai diferentes implementacións desta aplicación que difieren en aparencia e lixeiramente na funcionalidade (selección de contornas de deseño, selección de usuarios, versión para usuarios mal vistos, dispoñibilidade de acceso remoto vía protocolo XDMCP).

Servidor de visualización

Display Server é unha especie de base gráfica, cuxa tarefa principal é traballar cunha tarxeta de vídeo, monitor e varios dispositivos de entrada (teclado, rato, touchpad). É dicir, unha aplicación (por exemplo, un navegador ou un editor de texto) que se renderiza en "gráficos" non precisa saber traballar directamente con dispositivos, nin necesita saber sobre controladores. X Window encárgase de todo isto.

Cando se falaba de Display Server, durante moitos anos en Linux, e mesmo en Unix, quería dicir a aplicación Sistema X Window ou na linguaxe común X (X). 

Agora moitas distribucións están a substituír a X Wayland. 

Tamén podes ler:

En primeiro lugar, imos lanzar X e varias aplicacións gráficas neles.

Obradoiro "Execución de X e aplicacións nel"

Farei todo desde o usuario webinaruser recentemente creado (sería máis fácil, pero non máis seguro, facelo todo como root).

  • Dado que X necesita acceso aos dispositivos, dou acceso: A lista de dispositivos determinouse mirando os erros ao iniciar X no rexistro (/home/webinaruser/.local/share/xorg/Xorg.77.log) 

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

  • Despois diso lanzo X's:

% X -retro :77 vt8 & 

Opcións: * -retro - inicia cun fondo clásico "gris", e non co negro como predeterminado; * :77 - Definei (calquera dentro dun intervalo razoable é posible, só :0 probablemente xa estea ocupado polos gráficos xa en execución) número de pantalla, en realidade algún tipo de identificador único polo que será posible distinguir varias X en execución; * vt8 - indica o terminal, aquí /dev/tty8, no que se mostrarán X). 

  • Inicie a aplicación gráfica:

Para iso, primeiro establecemos unha variable pola cal a aplicación entenderá cal das X que teño en execución para enviar o que hai que debuxar: 

% export DISPLAY=":77" 

Podes ver a lista de X en execución deste xeito: 

ps -fwwC X

Despois de establecer a variable, podemos lanzar aplicacións nos nosos Xs; por exemplo, lanzo un reloxo:

% xclock -update 1 & 

% xcalc & 

% xeyes -g 200x150-300+50 &

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Ideas principais e conclusións deste fragmento:

  • Os X necesitan acceso a dispositivos: terminal, tarxeta de vídeo, dispositivos de entrada,
  • Os propios X non mostran ningún elemento da interface: é un lenzo gris (se está coa opción "--retro") ou negro de determinados tamaños (por exemplo, 1920x1080 ou 1024x768) para executar aplicacións gráficas nel.
  • O movemento da "cruz" mostra que as X rastrexan a posición do rato e transmiten esta información ás aplicacións que se executan nel.
  • Os X tamén captan as pulsacións do teclado e transmiten esta información ás aplicacións.
  • A variable DISPLAY indica ás aplicacións gráficas en que pantalla (cadas X se inician cun número de pantalla único ao iniciarse) e, polo tanto, en cal das que se executan na miña máquina, haberá que debuxar as X. (Tamén é posible especificar unha máquina remota nesta variable e enviar saída a Xs que se executan noutra máquina da rede.) Dado que os X se lanzaron sen a opción -auth, non hai necesidade de xestionar a variable XAUTHORITY nin o xhost. mando.
  • As aplicacións gráficas (ou como as chaman os clientes X) represéntanse en X, sen a posibilidade de movelas/pechalas/cambialas "-g (Ancho) x (Alto)+(DesfaseFromEsquerda)+(DesfaseFromTopEdge)". Cun signo menos, respectivamente, dende a dereita e dende o bordo inferior.
  • Dous termos que paga a pena mencionar: servidor X (así se chaman os X) e clientes X (así se chama calquera aplicación gráfica que se execute en X). Hai un pouco de confusión ao entender esta terminoloxía; moitos entenden exactamente o contrario. No caso de que me conecto desde unha "máquina cliente" (en terminoloxía de acceso remoto) a un "servidor" (en terminoloxía de acceso remoto) para mostrar unha aplicación gráfica do servidor no meu monitor, entón o servidor X iníciase no máquina onde o monitor (é dicir, na "máquina cliente", non no "servidor"), e os clientes X se inician e executan no "servidor", aínda que se mostran no monitor da "máquina cliente". 

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio

compoñentes DE

A continuación, vexamos os compoñentes que normalmente compoñen un escritorio.

Compoñentes DE: botón Inicio e barra de tarefas

Comecemos co chamado botón "Inicio". A miúdo esta é unha miniaplicación separada que se usa na "Barra de tarefas". Tamén adoita haber un miniaplicativo para cambiar entre aplicacións en execución.

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Unha vez observado os diferentes entornos de escritorio, resumiría este tipo de aplicacións baixo o nome xeral "Xestor de aplicacións (lanzador/conmutador)", é dicir, unha ferramenta para xestionar aplicacións (lanzamento e cambio entre as en execución), e tamén indicaría utilidades que son exemplo deste tipo de aplicacións.

  • Vén na forma do botón "Inicio" no clásico (toda a lonxitude dun dos bordos da pantalla) "Barra de tarefas":

    ○ xfce4-panel,
    ○ mate-panel/gnome-panel,
    ○ vala-panel,
    ○ matiz 2.

  • Tamén podes ter unha "barra de tarefas en forma de MacOS" separada (non a lonxitude total do bordo da pantalla), aínda que moitas barras de tarefas poden aparecer en ambos os estilos. Aquí, máis ben, a principal diferenza é puramente visual: a presenza dun "efecto de ampliación do pictograma ao pasar".

    ○ dock,
    ○ latte dock,
    ○ cairo-dock,
    ○ táboa.

  • E/ou un servizo que lanza aplicacións cando preme as teclas de acceso rápido (en moitos ambientes de escritorio, é necesario un compoñente similar e permítelle configurar as súas propias teclas de acceso rápido):

    ○ sxhkd.

  • Tamén hai varios "lanzadores" en forma de menú (do inglés Launch (launch)):

    ○ dmenu-run,
    ○ rofi -mostra borracho,
    ○ Albert,
    ○ gruñón.

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio

Compoñentes DE: WM (Xestor de fiestras)

Máis detalles en ruso

Máis detalles en inglés

WM (Xestor de fiestras) - unha aplicación que se encarga de xestionar as fiestras, engade a capacidade de:

  • mover fiestras polo escritorio (incluída a estándar mantendo premida a tecla Alt en calquera parte da xanela, non só na barra de título);
  • cambiar o tamaño das fiestras, por exemplo, arrastrando o "marco da xanela";
  • engade un "título" e botóns para minimizar/maximizar/pechar a aplicación á interface da xanela;
  • o concepto de que aplicación está en "foco".

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Vou enumerar os máis coñecidos (entre parénteses indico que DE se usa por defecto):

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Tamén enumerarei "WM antigo con elementos DE". Eses. ademais do xestor de fiestras, contan con elementos como o botón “Inicio” e a “Barra de tarefas”, que son máis propios do DE completo. Aínda que, cantos "antigos" teñen se tanto IceWM como WindowMaker xa lanzaron as súas versións actualizadas en 2020. Resulta que é máis correcto non "vellos", senón "vellos":

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Ademais do "clásico" ("xestores de fiestras de pila"), merece unha mención especial mosaico WM, que permite colocar fiestras "en mosaico" en toda a pantalla, así como para algunhas aplicacións un escritorio separado para cada aplicación lanzada en toda a pantalla. Isto é un pouco inusual para as persoas que non os usaron antes, pero como eu mesmo estiven usando esa interface durante bastante tempo, podo dicir que é bastante cómodo e que se acostuma rapidamente a esa interface, despois de que Os xestores de fiestras "clásicos" xa non parecen convenientes.

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
O proxecto tamén merece a pena mencionar por separado Compiz e un concepto como o "Xestor de fiestras compostos", que utiliza as capacidades de aceleración de hardware para mostrar transparencia, sombras e varios efectos tridimensionais. Hai uns 10 anos houbo un boom dos efectos 3D nos escritorios Linux. Hoxe en día, moitos dos xestores de fiestras integrados en DE fan un uso parcial das capacidades compostas. Apareceu recentemente Firefire - un produto cunha funcionalidade similar a Compiz para Wayland.

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Tamén se pode atopar unha lista detallada de varios xestores de fiestras en  artigo comparativo.

DE compoñentes: descanso

Tamén vale a pena sinalar os seguintes compoñentes do escritorio (aquí uso termos establecidos en inglés para describir un tipo de aplicación; estes non son os nomes das aplicacións en si):

  • Applets:
  • Software (conxunto de ferramentas de widgets): moitas veces se proporciona un determinado "conxunto mínimo" de software co entorno:

DE (entorno de escritorio)

Máis detalles en inglés

A partir dos compoñentes anteriores, obtense o chamado "Entorno de deseño de escritorio". Moitas veces, todos os seus compoñentes desenvólvense utilizando as mesmas bibliotecas gráficas e utilizando os mesmos principios de deseño. Así, como mínimo, mantense o estilo xeral para a aparición das aplicacións.

Aquí podemos destacar os seguintes contornos de escritorio actualmente existentes:

GNOME e KDE considéranse os máis comúns, e XFCE está preto dos seus talóns.

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Unha comparación de varios parámetros en forma de táboa pódese atopar no correspondente Artigo da Wikipedia.  

Variedade DE

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Proxecto_Espello

Incluso hai exemplos tan interesantes da historia: en 2003-2007, fíxose un "deseño de escritorio 3D" para Linux co nome de "Project Looking Glass" de Sun. Eu mesmo usei este escritorio, ou máis ben "xoguei" con el, xa que era difícil de usar. Este "deseño 3D" foi escrito en Java nun momento no que non había tarxetas de vídeo con soporte 3D. Polo tanto, todos os efectos foron recalculados polo procesador, e o ordenador tiña que ser moi potente, senón todo funcionaba lentamente. Pero resultou fermoso. As tellas de aplicacións tridimensionais pódense rotar/expandir. Era posible xirar no cilindro do escritorio cun fondo de pantalla desde unha panorámica de 360 ​​graos. Había varias aplicacións fermosas: por exemplo, escoitar música en forma de "cambio de CD", etc. Podes vela en YouTube video sobre este proxecto, é moi probable que só a calidade destes vídeos sexa deficiente, xa que naqueles anos non era posible cargar vídeos de alta calidade.

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Xfce

Escritorio lixeiro. O proxecto leva bastante tempo, dende 1996. Nos últimos anos, foi bastante popular, a diferenza dos máis pesados ​​KDE e GNOME, en moitas distribucións que requiren unha interface de escritorio lixeira e "clásica". Ten moitas opcións e un gran número de programas propios: terminal (xfce4-terminal), xestor de ficheiros (thunar), visor de imaxes (ristretto), editor de texto (mousepad).

 
Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Panteón 

Usado na distribución Elementary OS. Aquí podemos dicir que hai "escritorios" que se desenvolven e usan nunha distribución separada e que non se usan moito (se non "non se usan en absoluto") noutras distribucións. Polo menos aínda non gañaron popularidade e convenceron á maioría do público das vantaxes do seu enfoque. Pantheon pretende construír unha interface similar a macOS. 

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Opción con panel dock:

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Iluminación

Forte foco nos efectos gráficos e widgets (desde os días nos que outros ambientes de escritorio non tiñan widgets de escritorio como calendario/reloxo). Utiliza as súas propias bibliotecas. Hai un gran conxunto de aplicacións "fermosas" propias: terminal (Terminoloxía), reprodutor de vídeo (Rage), visor de imaxes (Ephoto).

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Moksha

Este é un fork de Enlightenment17, que se usa na distribución BodhiLinux. 

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
GNOME

Inicialmente, unha interface de escritorio “clásica”, creada en oposición a KDE, que estaba escrita na biblioteca QT, distribuíuse nese momento baixo unha licenza que non era moi conveniente para as distribucións comerciais. 

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
GNOME_Shell

A partir da terceira versión, GNOME comezou a vir co GNOME Shell, que ten un "aspecto non clásico", que non gustou a todos os usuarios (calquera cambio repentino nas interfaces é difícil de aceptar para os usuarios). Como consecuencia, a aparición de proxectos fork que continúan o desenvolvemento deste escritorio ao estilo "clásico": MATE e Cinnamon. Usado por defecto en moitas distribucións comerciais. Ten unha gran cantidade de opcións e aplicacións propias. 

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
MATE 

Xurdiu de GNOME2 e segue desenvolvendo este ambiente de deseño. Ten un gran número de configuracións e forks de aplicacións que se usaban en GNOME2 (utilízanse novos nomes) para non confundir os forks coa súa nova versión para GNOME3).

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Canela

Un fork de GNOME Shell que ofrece aos usuarios unha interface de estilo "clásico" (como foi o caso de GNOME2). 

Ten unha gran cantidade de configuracións e as mesmas aplicacións que para GNOME Shell.

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Budgie

Un fork de estilo "clásico" de GNOME que foi desenvolvido como parte da distribución Solus, pero que agora tamén se presenta como un escritorio autónomo noutras distribucións.

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
KDE_Plasma (ou como se adoita chamar, simplemente KDE) 

Un contorno de escritorio desenvolvido polo proxecto KDE. 

Ten unha gran cantidade de opcións dispoñibles para o usuario sinxelo desde a interface gráfica e moitas aplicacións gráficas desenvolvidas no marco deste escritorio.

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Trindade

En 2008, KDE lanzou a súa nova implementación de KDE Plasma (o motor de escritorio foi moi reescrito). Ademais, do mesmo xeito que con GNOME/MATE, non lles gustou a todos os fans de KDE. Como resultado, apareceu unha bifurcación do proxecto, continuando co desenvolvemento da versión anterior, chamada TDE (Trinity Desktop Environment).

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
Deepin_DE

Un dos novos contornos de escritorio escritos con Qt (no que está escrito KDE). Ten moitas opcións e é bastante bonita (aínda que este é un concepto subxectivo) e unha interface ben desenvolvida. Desenvolvido como parte da distribución Deepin Linux. Tamén hai paquetes para outras distribucións

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
voar 

Un exemplo de entorno de escritorio escrito usando Qt. Desenvolvido como parte da distribución Astra Linux. 

Como funcionan os gráficos en Linux: unha visión xeral de varios ambientes de escritorio
LXQt

Ambiente de escritorio lixeiro. Como varios exemplos anteriores, escritos usando Qt. De feito, é unha continuación do proxecto LXDE e froito dunha fusión co proxecto Razor-qt.

Como podes ver, o escritorio en Linux pode parecer moi diferente e hai unha interface axeitada para todos os gustos: desde moi bonito e con efectos 3D ata minimalista, desde "clásico" ata inusual, desde usar activamente os recursos do sistema ata lixeiros, desde grandes. pantallas para tabletas/smartphones.

Ben, gustaríame esperar que puiden dar unha idea de cales son os principais compoñentes dos gráficos e do escritorio no sistema operativo Linux.

O material deste artigo probouse en xullo de 2020 nun seminario web. Podes velo aquí.

Iso é todo. Espero que isto fose útil. Se tes algunha dúbida ou comentario, escribe. Estarei encantado de responder. Ben, veña estudar a "Academia de rede LANIT"!

Fonte: www.habr.com

Engadir un comentario