Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop

Este artigo é sobre como os gráficos funcionam no Linux e em quais componentes eles consistem. Ele contém muitas capturas de tela de várias implementações de ambientes de desktop. 

Se você realmente não diferencia entre KDE e GNOME, ou sim, mas gostaria de saber quais outras alternativas existem, então este artigo é para você. É uma visão geral e, embora contenha muitos nomes e poucos termos, o material também será útil para iniciantes e para quem está apenas olhando para o Linux.

O tópico também pode ser do interesse de usuários avançados ao configurar o acesso remoto e implementar um thin client. Muitas vezes encontro usuários experientes do Linux com afirmações “há apenas uma linha de comando no servidor e não pretendo estudar gráficos com mais detalhes, pois tudo isso é necessário para usuários comuns”. Mas mesmo os especialistas em Linux ficam muito surpresos e felizes ao descobrir a opção “-X” para o comando ssh (e para isso é útil entender o funcionamento e as funções do servidor X).

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktopFonte

Dou cursos de Linux há quase 15 anos em "Academia de Rede LANIT“e tenho certeza de que muitas das mais de cinco mil pessoas que treinei lêem e provavelmente escrevem artigos sobre Habr. Os cursos são sempre muito intensos (a duração média do curso é de cinco dias); é preciso abordar temas que exigem pelo menos dez dias para serem totalmente compreendidos. E sempre durante o curso, dependendo do público (novatos reunidos ou administradores experientes), bem como das “dúvidas do público”, escolho o que transmitir com mais detalhes e o que de forma mais superficial, para me dedicar mais hora de usar utilitários de linha de comando e sua aplicação prática. Existem tópicos suficientes como este que exigem um pouco de sacrifício. São eles “História do Linux”, “Diferenças nas distribuições Linux”, “Sobre licenças: GPL, BSD, ...”, “Sobre gráficos e ambientes de desktop” (o tema deste artigo), etc. importante, mas geralmente há muitas questões mais urgentes do tipo “aqui e agora” e apenas cerca de cinco dias... No entanto, para uma compreensão geral dos fundamentos do sistema operacional Linux, uma compreensão da diversidade disponível (de modo que mesmo usando um específico Distribuição Linux, você ainda tem uma visão mais ampla de todo esse imenso e vasto mundo que se chama “Linux”), estudar esses temas é útil e necessário. 

À medida que o artigo avança, forneço links para cada componente para aqueles que desejam se aprofundar no tópico, por exemplo, para artigos da Wikipedia (enquanto aponto para uma versão mais completa/útil se houver artigos em inglês e russo).

Para exemplos básicos e capturas de tela usei a distribuição openSUSE. Qualquer outra distribuição desenvolvida pela comunidade poderia ser usada, desde que houvesse um grande número de pacotes no repositório. É difícil, mas não impossível, demonstrar a variedade de designs de desktop em uma distribuição comercial, já que muitas vezes eles usam apenas um ou dois dos ambientes de desktop mais conhecidos. Dessa forma, os desenvolvedores restringem a tarefa de lançar um sistema operacional estável e depurado. Neste mesmo sistema instalei todos os DM/DE/WM (explicação destes termos abaixo) que encontrei no repositório. 

Capturas de tela com “molduras azuis” foram tiradas no openSUSE. 

Tirei screenshots com “molduras brancas” em outras distribuições, elas estão indicadas na screenshot. 

Capturas de tela com “molduras cinza” foram retiradas da Internet, como exemplos de designs de desktops de anos anteriores.

Então, vamos começar.

Os principais componentes que compõem os gráficos

Vou destacar três componentes principais e listá-los na ordem em que são iniciados na inicialização do sistema: 

  1. DM (gerenciador de exibição);
  2. Servidor de exibição;
  3. DE (ambiente de trabalho).

Além disso, como subcláusulas importantes do Ambiente de Trabalho: 

  • Gerenciador/Iniciador/Switcher de aplicativos (botão Iniciar); 
  • WM (Gerenciador de Janelas);
  • vários softwares que acompanham o ambiente de desktop.

Mais detalhes sobre cada ponto.

DM (gerenciador de exibição)

O primeiro aplicativo que inicia quando você inicia “gráficos” é o DM (Display Manager), um gerenciador de exibição. Suas principais tarefas:

  • perguntar quais usuários permitir a entrada no sistema, solicitar dados de autenticação (senha, impressão digital);
  • escolha qual ambiente de área de trabalho executar.

Atualmente amplamente utilizado em diversas distribuições: 

  • SDDM (substituído KDM),
  • GDM,
  • LightDM,
  • XDM.
  • Você também pode mencionar o Fly-DM (usado no AstraLinux).

A lista de DMs existentes é mantida atualizada em Artigo Wiki. 

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
É importante notar que as capturas de tela a seguir usam o mesmo gerenciador de exibição LightDM, mas em distribuições diferentes (os nomes das distribuições são indicados entre parênteses). Veja como esse DM pode ficar diferente graças ao trabalho de designers de diferentes distribuições.

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
O principal nesta diversidade é deixar claro que existe uma aplicação que se encarrega de lançar os gráficos e permitir ao usuário o acesso a esses gráficos, e existem diferentes implementações desta aplicação que diferem na aparência e um pouco na funcionalidade (seleção de ambientes de design, seleção de usuários, versão para usuários mal visualizados, disponibilidade de acesso remoto via protocolo XDMCP).

Servidor de exibição

Display Server é uma espécie de base gráfica, cuja principal tarefa é trabalhar com placa de vídeo, monitor e diversos dispositivos de entrada (teclado, mouse, touchpads). Ou seja, uma aplicação (por exemplo, um navegador ou editor de texto) que é renderizada em “gráficos” não precisa saber trabalhar diretamente com dispositivos, nem precisa saber sobre drivers. O X Window cuida de tudo isso.

Quando se fala em Display Server, há muitos anos no Linux, e até no Unix, a aplicação significava X Window System ou na linguagem comum X (X). 

Agora muitas distribuições estão substituindo o X Wayland. 

Você também pode ler:

Primeiro, vamos lançar X's e vários aplicativos gráficos neles.

Workshop “executando X e aplicações nele”

Farei tudo desde o usuário webinaruser recém-criado (seria mais fácil, mas não mais seguro, fazer tudo como root).

  • Como os X precisam de acesso aos dispositivos, dou acesso: A lista de dispositivos foi determinada observando os erros ao iniciar o X no log (/home/webinaruser/.local/share/xorg/Xorg.77.log) 

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

  • Depois disso eu lanço o X's:

% X -retro :77 vt8 & 

Opções: * -retro - inicia com fundo clássico “cinza”, e não com preto como padrão; * :77 - Eu defini (qualquer um dentro de um intervalo razoável é possível, apenas :0 provavelmente já está ocupado pelos gráficos já em execução) número da tela, na verdade algum tipo de identificador exclusivo pelo qual será possível distinguir vários Xs em execução; * vt8 - indica o terminal, aqui /dev/tty8, no qual os X serão exibidos). 

  • Inicie o aplicativo gráfico:

Para isso, primeiro definimos uma variável pela qual a aplicação entenderá qual dos Xs que tenho rodando para enviar o que precisa ser desenhado: 

% export DISPLAY=":77" 

Você pode ver a lista de Xs em execução assim: 

ps -fwwC X

Depois de definirmos a variável, podemos iniciar aplicativos em nossos Xs - por exemplo, eu inicio um relógio:

% xclock -update 1 & 

% xcalc & 

% xeyes -g 200x150-300+50 &

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Principais ideias e conclusões deste fragmento:

  • Os X precisam de acesso a dispositivos: terminal, placa de vídeo, dispositivos de entrada,
  • Os próprios Xs não exibem nenhum elemento de interface - é uma tela cinza (se estiver com a opção “--retro”) ou preta de determinados tamanhos (por exemplo, 1920x1080 ou 1024x768) para executar aplicativos gráficos nele.
  • O movimento da “cruz” mostra que os Xs rastreiam a posição do mouse e transmitem essa informação para os aplicativos nele executados.
  • Os X também capturam as teclas digitadas no teclado e transmitem essas informações aos aplicativos.
  • A variável DISPLAY informa aos aplicativos gráficos em qual tela (cada X é iniciado com um número de tela exclusivo na inicialização) e, portanto, em qual daqueles em execução na minha máquina, os X precisarão ser desenhados. (Também é possível especificar uma máquina remota nesta variável e enviar a saída para Xs em execução em outra máquina na rede.) Como os Xs foram iniciados sem a opção -auth, não há necessidade de lidar com a variável XAUTHORITY ou com o xhost comando.
  • Aplicativos gráficos (ou como os clientes X os chamam) são renderizados em X's - sem a capacidade de movê-los/fechá-los/alterá-los "-g (Largura)x(Altura)+(OffsetFromLeftEdge)+(OffsetFromTopEdge)". Com um sinal de menos, respectivamente, da direita e da borda inferior.
  • Dois termos que valem a pena mencionar: X-server (é assim que são chamados os X's) e X-clients (é assim que se chama qualquer aplicação gráfica que rode em X's). Há um pouco de confusão na compreensão desta terminologia; muitos entendem exatamente o oposto. No caso em que eu me conecto de uma “máquina cliente” (na terminologia de acesso remoto) a um “servidor” (na terminologia de acesso remoto) para exibir uma aplicação gráfica do servidor em meu monitor, então o servidor X inicia no máquina onde o monitor (ou seja, na “máquina cliente”, não no “servidor”), e os clientes X iniciam e rodam no “servidor”, embora sejam exibidos no monitor da “máquina cliente”. 

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop

Componentes DE

A seguir, vamos dar uma olhada nos componentes que normalmente constituem um desktop.

Componentes DE: botão Iniciar e barra de tarefas

Vamos começar com o chamado botão “Iniciar”. Freqüentemente, este é um miniaplicativo separado usado na "Barra de Tarefas". Geralmente também existe um miniaplicativo para alternar entre os aplicativos em execução.

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Tendo examinado diferentes ambientes de desktop, eu resumiria esses aplicativos sob o nome geral de “Apps Manager (Launcher/Switcher)”, ou seja, uma ferramenta para gerenciar aplicativos (iniciar e alternar entre os em execução), e também indicar utilitários que são um exemplo deste tipo de aplicação.

  • Ele vem na forma de um botão “Iniciar” na clássica (toda a extensão de uma das bordas da tela) “Barra de Tarefas”:

    ○ painel xfce4,
    ○ painel mate/painel gnome,
    ○ painel vala,
    ○ matiz2.

  • Você também pode ter uma “barra de tarefas em formato de MacOS” separada (não em toda a extensão da borda da tela), embora muitas barras de tarefas possam aparecer em ambos os estilos. Aqui, em vez disso, a principal diferença é puramente visual - a presença de um “efeito de ampliação de pictograma ao pairar”.

    ○ doca,
    ○ café com leite,
    ○ cairo-doca,
    ○ prancha.

  • E/ou um serviço que inicia aplicativos quando você pressiona teclas de atalho (em muitos ambientes de desktop, um componente semelhante é necessário e permite configurar suas próprias teclas de atalho):

    ○ sxhkd.

  • Existem também vários “lançadores” semelhantes a menus (do inglês Launch (lançamento)):

    ○ dmenu-executar,
    ○ rofi -show drun,
    ○ Alberto,
    ○ grunhido.

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop

Componentes DE: WM (Gerenciador de Janelas)

Mais detalhes em russo

Mais detalhes em inglês

WM (Window Manager) - um aplicativo responsável pelo gerenciamento de janelas, adiciona a capacidade de:

  • mover janelas pela área de trabalho (incluindo a padrão mantendo pressionada a tecla Alt em qualquer parte da janela, não apenas na barra de título);
  • redimensionar janelas, por exemplo, arrastando a “moldura da janela”;
  • adiciona um “título” e botões para minimizar/maximizar/fechar a aplicação na interface da janela;
  • o conceito de qual aplicativo está em “foco”.

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Vou listar os mais conhecidos (entre parênteses indico qual DE é usado por padrão):

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Também listarei “WM antigo com elementos DE”. Aqueles. além do gerenciador de janelas, possuem elementos como o botão “Iniciar” e a “Barra de Tarefas”, mais típicos do DE completo. Porém, quão “antigos” eles são se tanto o IceWM quanto o WindowMaker já lançaram suas versões atualizadas em 2020. Acontece que é mais correto não “velhos”, mas “veteranos”:

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Além do “clássico” (“stack window manager”), vale a pena mencionar especialmente lado a lado WM, que permite colocar janelas “ladrilhadas” em toda a tela, bem como para alguns aplicativos uma área de trabalho separada para cada aplicativo iniciado em tela inteira. Isso é um pouco incomum para pessoas que nunca os usaram antes, mas como eu mesmo uso essa interface há muito tempo, posso dizer que é bastante conveniente e você se acostuma rapidamente com essa interface, após o que Os gerenciadores de janelas “clássicos” não parecem mais convenientes.

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
O projeto também merece ser mencionado separadamente Compiz e um conceito como “Composite Window Manager”, que usa recursos de aceleração de hardware para exibir transparência, sombras e vários efeitos tridimensionais. Cerca de 10 anos atrás, houve um boom nos efeitos 3D em desktops Linux. Hoje em dia, muitos dos gerenciadores de janelas integrados ao DE fazem uso parcial de recursos compostos. Apareceu recentemente Wayfire - um produto com funcionalidade semelhante ao Compiz for Wayland.

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Uma lista detalhada de vários gerenciadores de janela também pode ser encontrada em  artigo de comparação.

Componentes DE: descanso

Também vale a pena observar os seguintes componentes da área de trabalho (aqui eu uso termos em inglês estabelecidos para descrever um tipo de aplicativo - esses não são os nomes dos aplicativos em si):

  • Miniaplicativos:
  • Software (kit de ferramentas Widget) - geralmente um certo “conjunto mínimo” de software é fornecido com o ambiente:

DE (ambiente de área de trabalho)

Mais detalhes em inglês

Dos componentes acima, obtém-se o chamado “Ambiente de Design de Desktop”. Freqüentemente, todos os seus componentes são desenvolvidos usando as mesmas bibliotecas gráficas e os mesmos princípios de design. Assim, no mínimo, o estilo geral de aparência dos aplicativos é mantido.

Aqui podemos destacar os seguintes ambientes de desktop existentes atualmente:

GNOME e KDE são considerados os mais comuns, e o XFCE está logo atrás.

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Uma comparação de vários parâmetros na forma de uma tabela pode ser encontrada no correspondente Artigo da Wikipédia.  

Variedade DE

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Projeto_Looking_Glass

Existem até exemplos interessantes da história: em 2003-2007, um “design de desktop 3D” foi feito para Linux com o nome “Projeto Looking Glass” da Sun. Eu mesmo usei esse desktop, ou melhor, “brinquei” com ele, pois era difícil de usar. Este “design 3D” foi escrito em Java numa época em que não existiam placas de vídeo com suporte 3D. Portanto, todos os efeitos foram recalculados pelo processador, e o computador tinha que ser muito potente, caso contrário tudo funcionava devagar. Mas acabou lindamente. Blocos de aplicativos tridimensionais podem ser girados/expandidos. Foi possível girar o cilindro da área de trabalho com papel de parede a partir de um panorama de 360 ​​​​graus. Foram várias aplicações lindas: por exemplo, ouvir música em forma de “trocar CDs”, etc. vídeo sobre este projeto, apenas a qualidade desses vídeos provavelmente será ruim, já que naquela época não era possível enviar vídeos de alta qualidade.

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Xfce

Área de trabalho leve. O projeto existe há bastante tempo, desde 1996. Nos últimos anos, tem sido bastante popular, ao contrário dos mais pesados ​​KDE e GNOME, em muitas distribuições que requerem uma interface de desktop leve e “clássica”. Possui muitas configurações e um grande número de programas próprios: terminal (xfce4-terminal), gerenciador de arquivos (thunar), visualizador de imagens (ristretto), editor de texto (mousepad).

 
Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Panteão 

Usado na distribuição Elementary OS. Aqui podemos dizer que existem “desktops” que são desenvolvidos e usados ​​dentro de uma distribuição separada e não são muito usados ​​(se não “não são usados”) em outras distribuições. Pelo menos ainda não ganharam popularidade e convenceram a maior parte do público das vantagens da sua abordagem. A Pantheon pretende construir uma interface semelhante ao macOS. 

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Opção com painel dock:

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Iluminação

Forte foco em efeitos gráficos e widgets (desde os dias em que outros ambientes de desktop não tinham widgets de desktop como calendário/relógio). Usa suas próprias bibliotecas. Há um grande conjunto de aplicativos “bonitos” próprios: terminal (Terminologia), reprodutor de vídeo (Rage), visualizador de imagens (Ephoto).

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Moksha

Este é um fork do Enlightenment17, que é usado na distribuição BodhiLinux. 

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
GNOME

Inicialmente, uma interface de desktop “clássica”, criada em oposição ao KDE, que era escrita na biblioteca QT, então distribuída sob uma licença que não era muito conveniente para distribuições comerciais. 

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
GNOME_Shell

A partir da terceira versão, o GNOME passou a vir com o GNOME Shell, que possui um “visual não clássico”, que nem todos os usuários gostaram (quaisquer mudanças bruscas nas interfaces são difíceis de serem aceitas pelos usuários). Como consequência, o surgimento de projetos fork que dão continuidade ao desenvolvimento deste desktop no estilo “clássico”: MATE e Cinnamon. Usado por padrão em muitas distribuições comerciais. Possui um grande número de configurações e aplicativos próprios. 

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
COMPANHEIRO 

Ele surgiu do GNOME2 e continua a desenvolver este ambiente de design. Possui um grande número de configurações e bifurcações de aplicativos que foram usadas no GNOME2 (novos nomes são usados) para não confundir as bifurcações com sua nova versão para GNOME3).

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Canela

Um fork do GNOME Shell que fornece aos usuários uma interface de estilo “clássico” (como era o caso do GNOME2). 

Possui um grande número de configurações e os mesmos aplicativos do GNOME Shell.

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Budgie

Um fork de estilo “clássico” do GNOME que foi desenvolvido como parte da distribuição Solus, mas agora também vem como um desktop independente em várias outras distribuições.

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
KDE_Plasma (ou como é frequentemente chamado, simplesmente KDE) 

Um ambiente de desktop desenvolvido pelo projeto KDE. 

Possui um grande número de configurações disponíveis para o usuário simples a partir da interface gráfica e muitos aplicativos gráficos desenvolvidos no âmbito deste desktop.

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Trindade

Em 2008, o KDE lançou sua nova implementação do KDE Plasma (o mecanismo de desktop foi fortemente reescrito). Além disso, como acontece com o GNOME/MATE, nem todos os fãs do KDE gostaram. Como resultado, surgiu um fork do projeto, dando continuidade ao desenvolvimento da versão anterior, denominada TDE (Trinity Desktop Environment).

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Deepin_DE

Um dos novos ambientes de desktop escritos em Qt (no qual o KDE foi escrito). Possui muitas configurações e é bastante bonito (embora seja um conceito subjetivo) e uma interface bem desenvolvida. Desenvolvido como parte da distribuição Deepin Linux. Existem também pacotes para outras distribuições

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
Voar 

Um exemplo de ambiente de desktop escrito em Qt. Desenvolvido como parte da distribuição Astra Linux. 

Como os gráficos funcionam no Linux: uma visão geral de vários ambientes de desktop
LXQt

Ambiente de área de trabalho leve. Como vários exemplos anteriores, escritos em Qt. Na verdade, é uma continuação do projeto LXDE e resultado de uma fusão com o projeto Razor-qt.

Como você pode ver, o desktop no Linux pode ter uma aparência muito diferente e existe uma interface adequada para todos os gostos: do muito bonito e com efeitos 3D ao minimalista, do “clássico” ao incomum, do uso ativo dos recursos do sistema ao leve, do grande telas para tablets/smartphones.

Bem, gostaria de ter conseguido dar uma ideia de quais são os principais componentes gráficos e de desktop do sistema operacional Linux.

O material deste artigo foi testado em julho de 2020 em um webinar. Você pode assistir aqui.

Isso é tudo. Eu espero que isso tenha sido útil. Se você tiver alguma dúvida ou comentário, por favor escreva. Ficarei feliz em responder. Bem, venha estudar em "Academia de Rede LANIT"!

Fonte: habr.com

Adicionar um comentário