Tenho percebido uma certa confusão com relação ao Xorg. O que é normal, considerando a diferença de paradigma entre a exibição gráfica usada no Linux e o Windows. Venho neste artigo tentar explicar o funcionamento do X e sua relação com os Controladores de Janelas e ambientes Desktop, como o GNOME e o KDE.
Antes de continuarmos vamos analisar a estrutura típica do Linux.
Cada camada recebe solicitações da camada superior e faz suas solicitações as camadas inferiores. Contudo as camadas não são obrigadas a fazer solicitações as camadas imediatamente inferiores, as solicitações podem pular camadas e fazer solicitações a camadas ainda mais abaixas. As camadas inferiores, assim, não tem consciência de quem está acima. Acima de tudo está o usuário que ao interagir com as aplicações não precisam saber se estão manipulando o Kernel, ferramentas, ambiente gráfico ou seja lá o que venham a inventar.
Esse tipo de estrutura é bem flexível, pois, podemos trocar qualquer componente de uma camada por outro compatível que continua tudo a funcionar normalmente. Lembrando que o padrão seguido pelos Linux POSIX, que estabelece compatibilidade em nível de código fonte, e recompilações seriam necessárias, possivelmente em outras camadas além da que estivesse sendo substituída. Isso é exatamente o que chamamos de arquitetura modular.
A vantagem desse tipo de arquitetura é exemplificado com o caso do servidor XFree86, que devido à uma mudança no licenciamento e outros problemas, já citados, fizeram com que a maioria dos desenvolvedores saíssem do projeto com o código anterior a mudança da licença e criassem o X.Org, gerido pela X.Org. Hoje em dia X.Org avança muito mais rápido que o XFree86 e é o padrão da maioria das distribuições, enquanto isso o XFree86 agoniza lentamente. A substituição não foi tecnicamente problemática pois os clientes continuavam fazendo suas solicitações via o protocolo X11.
O funcionamento do X
Como já mencionado, no X o servidor e cliente se comunicam via protocolo X11. O servidor desenha as informações no exibidor e repassam as informações recolhidas, como clique do mouse, ao cliente. Este por sua vez processa as informações recebidas e requisita ao servidor para que o resultado seja mostrado no exibidor. Veja a estrutura:
Com isso podemos:
Executar o X11 via SSH:
$ ssh login@servidor -X
Usando o parâmetro X no ssh habilitamos o modo X11 porém por uma solicitação criptografada.
Multihead:
O Incrível Computador de Duas Cabeças.
Com dois ou mais monitores e placas de vídeo, na quantidade certa, podemos ter o resultado de uma aplicação executada em um cliente X mostrada de forma "configurável" em todos os monitores. Esse recurso é conhecido como Xinerama.
Múltiplos Servidores X:
Podemos rodar mais de um servidor X na mesma máquina. Essa forma é facilmente observada nas distribuições mais novas quando fazemos uso da opção "Logar como outro usuário". Neste caso, um novo servidor X é executado e sem deslogar o anterior ficando possível alternar entre os servidores.
Podemos ainda ter servidores X dentro de outro servidor X, é o que se chama servidor aninhado.
[4] Comentário enviado por gjr_rj em 28/05/2008 - 23:17h
Respondendo ao comentário. Pensei em trabalhar a parte 3D, porém, falei sobre usuários Hardcore no artigo. Eu sou +-. Minha máquina é modesta. É engraçado, pois, o da minha mulher é moderníssima. A minha não tem aceleração 3D, e como tudo que escrevo é testado, não poderia escrever sobre isso.
[7] Comentário enviado por anoob em 29/05/2008 - 09:13h
Cara, parabéns! Pela primeira vez entendi o que cada um deles faz. Obrigado pelo artigo. Abraços.
Uso Debian Lenny e quando mato o Metacity ele automáticamente inicia novamente, acredito que é alguma configuração do Gnome. Ou seja. Não consigo rodar apenas o Gnome, sem o Metacity.
[11] Comentário enviado por hebaja em 29/05/2008 - 13:23h
Já adicionei aos meus favoritos para futuras consultas.
Meus parabéns, este artigo foi bastante esclarecedor. Eu já tinha uma vaga idéia de como essas coisas funcionavam mas nunca tinha procurado saber mais.... muito bom mesmo!
[13] Comentário enviado por GilsonDeElt em 30/05/2008 - 16:26h
Cara, d+ seu artigo!
Aprendi nele o que são os conceitos de ambiente desktop, gerenciador de janela e servidor X (destes últimos eu já tinha uma idéia melhor, que o artigo complementou), e de quebra finalmente entendi a diferença entre o XOrg e o XFree86.
[15] Comentário enviado por gjr_rj em 31/05/2008 - 00:13h
copiar e colar !?
rsrsrsrs
Meu micro levou mais de uma semana fazendo essa simples operação.
Levei muito mais tempo procurando material para entender o funcionamento dessa combinação X, GJ, AD, pois se encontra muito como configurá-los (por isso nem toquei no assunto, não falta material sobre isso na net). Quando achei o material (sites e livro), testei e aprendi. A primeira coisa que fiz foi por em meus links. Como sei que é muito difícil alguém visitar os links, resolvi escrever o artigo. aproveitando a parte boa, melhorando o que achei não estar bom e incluindo informações que achei faltar.
[16] Comentário enviado por M4iir1c10 em 31/05/2008 - 10:08h
Muito legal... agora uma duvida...
e possivel eu me conectar com uma maquina remotamente e executar o X com as aplicacoes da maquina remota no meu computador?