Diferença entre Xorg e Gnome / KDE / Xfce

19

Quero aprender mais sobre os sistemas UNIX e acho que tenho uma pergunta bastante direta. Acho que sei para que o X é usado: ele fornece um padrão para os aplicativos apresentarem suas interfaces de usuário (entre outras coisas).

Mas por que, então, é necessário o Gnome / KDE e como eles se relacionam com o X? Eu pensei que eles estavam usando o X como algum tipo de interface entre o aplicativo e a GUI; portanto, a GUI pode ser personalizada enquanto a interface permanece a mesma entre os aplicativos.

Isso é verdade ou o Gnome / KDE é independente do X?

Liess Jemai
fonte

Respostas:

26

(Estou analisando a relação do GNOME e do X. Gostaria de compartilhar alguns dos meus entendimentos. Vou apresentá-lo da maneira mais lógica possível.)

1. De que é composta a GUI?

Abaixo está uma ilustração dos componentes básicos de uma GUI.

insira a descrição da imagem aqui

O componente principal é o servidor de exibição . Existem vários servidores de exibição disponíveis. Tal como:

  • X11 (principalmente para * nix)
  • Wayland (principalmente para * nix)
  • Mir (principalmente para * nix)
  • SurfaceFlinger (Isto é para o Google Android.)
  • Compositor de quartzo (é o que o Apple MacOS usa.)
  • Desktop Window Manager (É o que o Microsoft Windows usa.)

2. O que é X?

X, X11 e X Window System são sinônimos. Todos eles representam um sistema de janelas . O Windowing System é um tipo de interface gráfica do usuário (GUI, como mencionado acima) que implementa o paradigma WIMP (janelas, ícones, menus, ponteiro) para uma interface do usuário.

Aqui está uma lista dos principais sistemas de janelas para os sistemas Linux e Windows.

O principal componente de qualquer sistema de janelas é geralmente chamado de servidor de exibição (sem surpresa, porque o sistema de janelas é um tipo de GUI e o servidor de exibição é a parte principal de qualquer GUI), embora outros nomes como servidor de janelas ou compositor também sejam usados.

Qualquer aplicativo que execute e apresente sua GUI é um cliente do servidor de exibição . O servidor de exibição e seus clientes se comunicam através de um protocolo de comunicação, geralmente chamado de protocolo do servidor de exibição, sendo o servidor de mediador o mediador entre os clientes e o usuário. O servidor de exibição recebe toda a entrada do kernel, que recebe de todos os dispositivos de entrada conectados, como teclado, dispositivos apontadores ou tela sensível ao toque, e a transmite ao cliente correto. O servidor de exibição também é responsável pela saída dos clientes para o monitor do computador. Um protocolo de servidor de exibiçãopode ter capacidade de rede ou até rede transparente. (para que você possa ver, trata-se essencialmente de fluxo e roteamento de dados, dados visuais ainda são dados.)

E de acordo com aqui :

Um X Server é um programa que fornece serviços de exibição e entrada de usuário para outros programas. Em comparação, um servidor de arquivos fornece outros programas com acesso a dispositivos de armazenamento de arquivos. Os servidores de arquivos geralmente estão localizados em um local remoto e você usa os serviços de um servidor de arquivos da máquina em que está localizado. Por outro lado, um X Server normalmente está sendo executado na máquina em que você está localizado ; os serviços de exibição e entrada do usuário podem ser solicitados por programas em execução em sua máquina, bem como por programas em máquinas remotas .

Então X é composto de:

  • servidor de exibição
  • protocolo do servidor de exibição
  • algumas bibliotecas para desenvolvimento
  • e outras coisas

insira a descrição da imagem aqui

De acordo com aqui :

X fornece a estrutura básica para um ambiente de GUI: desenhando e movendo janelas no dispositivo de exibição e interagindo com um mouse e teclado. X não exige a interface do usuário - isso é tratado por programas individuais. Como tal, o estilo visual de ambientes baseados em X varia muito; programas diferentes podem apresentar interfaces radicalmente diferentes.

Em outras palavras, o X apenas dá ao programa a capacidade de fazer coisas básicas como desenhar / mover janelas e interagir com entradas . X não aplica estilos visuais. Então, o que você disse " ... Fornece um padrão para os aplicativos apresentarem suas interfaces de usuário ... " está incorreto.

3. O que é o GNOME / KDE

GNOME e KDE são ambos Linux Desktop Environment . Um ambiente de área de trabalho é um pacote de programas em execução em um sistema operacional, que compartilham uma GUI comum .

Mas, como mencionei acima, o X11, como servidor de exibição, fornece apenas a capacidade básica de desenho através de algumas bibliotecas como Xlib ou XCB. Os aplicativos que fazem interface direta com o X11 por meio dessas bibliotecas podem ter estilos visuais radicalmente diferentes .

Então, como criar uma GUI comum? Aí vem os kits de ferramentas do widget . Como GTK + e Qt . Eles são populares nos sistemas de janelas Wayland e X11 .

O GNOME usa o GTK +.

O KDE usa o Qt.

E aqui está uma comparação dos ambientes de desktop do sistema X Window.

Para resumir ...

Eu desenho uma ilustração conceitual aproximada. As três partes acima do sistema operacional são muito personalizáveis. É por isso que tanta flexibilidade (confusão) surge.

insira a descrição da imagem aqui

ADICIONAR 1 - 13:26 21/09/2018

E aqui estão algumas discussões sobre o QT e o GTK (talvez até oftopic para esse tópico ...)

smwikipedia
fonte
"O fato de o termo" servidor "ser aplicado ao software na frente do usuário costuma surpreender os usuários acostumados a seus programas serem clientes de serviços em computadores remotos. Aqui, em vez de um banco de dados remoto ser o recurso para um aplicativo local , a exibição gráfica e os dispositivos de entrada do usuário tornam-se recursos disponibilizados pelo servidor X local para programas clientes X locais e remotamente hospedados que precisam compartilhar os dispositivos gráficos e de entrada do usuário para se comunicar com o usuário ". (veja wiki )
yaobin 28/11
1
Caso alguém se confunda com a frase "um servidor X normalmente está sendo executado na máquina em que você está localizado", consulte meu comentário acima. Obrigado @smwikipedia por dar uma resposta incrivelmente incrível!
yaobin
5

O Xorg (e o Xfree anterior e o X10 anterior ) é um servidor para um protocolo mais completamente chamado de Sistema X Window ; Ele permite que os aplicativos desenhem "na tela". O que pode ser remoto com o X. O Gnome / KDE / Xfce e outros gerenciadores de janelas / ambientes de desktop são aplicativos especiais executados no X que desenham coisas como bordas e ícones e minimizam e maximizam o que os próprios aplicativos não.

E, como o Gnome e o KDE podem (ou executaram) rodar no MS Windows (e Wayland em vários graus), sim, eles são (ou podem ser) independentes do X.

Elliott Frisch
fonte