X-Window-System

De Fórum Debian Wiki

Esse é um artigo traduzido de wiki.debian.org. O artigo original pode ser lido aqui.

O X Window System é o programa que permite que vários Unixes diferentes (incluindo o Linux) tenham sua Interface Gráfica ("GUI"). O X inclui tudo que conversa diretamente com a placa de vídeo. Em termos simples, o X provê ao Unix uma interface gráfica que permite a utilização de um ambiente desktop. Veja:

Detalhes técnicos

Diferentemente da interface gráfica de outros sistemas operacionais, o X se comporta como um servidor. Isso significa que todo programa gráfico rodando é um clientes e existe uma instância do servidor X rodando localmente no seu PC.

Pode-se usar como analogia ao X a navegação na Internet. Nesse caso, o servidor X rodando no seu computador está para o servidor web assim como o seu programa (ex. xmms) está para o navegador. O cliente faz uma requisição de recurso (propriedades da tela) do servidor X e o mesmo libera para o cliente o acesso ao tal recurso(junto de permissões com o comando xhost).

Agora isso pode parecer difícil, mas imagine o que se torna possível através de tal sistema. É possível rodar um programa com intenso uso de processamento em um servidor com um processador poderoso e simplesmente instruí-lo a mandar toda saída gráfica (janelas, diálogos...) para o servidor X da sua máquina para ser vista na sua tela. Isso é geralmente feito ao se alterar a variável DISPLAY para "nome__do_host:0.0", que manda toda informação para o nome_do_host na tela zero (pode haver mais de um servidor X rodando em um computador) e teclado zero.

Com esse poder vem a possibilidade de brechas de segurança. Existem casos conhecidos em que um hacker remotamente pôde capturar as teclas do teclado e até mesmo enviá-las junto com cliques de mouse através de uma rede local.

No passado, X era primariamente responsável por qualquer desenhos 2D requiridos. Agora ele também é capaz de alguns trabalhos 3D como do XFreeFour. Isso é feito através de uma interface chamada GLX que é uma camada no topo do OpenGL, com a qual muitas pessoas estão familiarizadas. Para fazer com que essar chamadas de aceleração 3D sejam mais rápidas possíveis, XFree86 agora usa DRI ("DirectRendering Infrastructure" - Infraestrutura de Renderização Direta em tradução livre) para comunicar o mais diretamente possível com a placa de vídeo.

Então, o servidor X precisa ser capaz de conversar com a placa de vídeo, mouse e teclado. Ele o faz graças ao uso de módulos criados para cada dispositivo e fabricante. Os módulos usados estão configurados no arquivo de configuração em /etc/X11/XF86Config (ou /etc/X11/XF86Config-4 para XFreeFour; veja XFreeConfig).

Ferramentas pessoais