quinta-feira, 27 de agosto de 2009

Servidor X

Objetivos
  • configurar a interface gráfica para os usuários comuns:
  • Conhecer os display managers e window managers.
Introdução

O X Window System, conhecido também como servidor X, apenas X ou X11, é um protocolo de rede e video que provê a capacidade de se trabalhar com o sitema de janelas e que permite as interações através de teclado e mouse. Esse sistema fornece os meios para o desenvolvimento de interfaces gráficas para usuário ou GUI - “Graphical User Interfaces” em sistemas Unix e Unix-like.
O sistema X fornece apenas as ferramentas que possibilitam o desenvolvimento de ambientes GUI como desenhar na tela, mover janelas e interagir com o mouse e teclado; ele não dita quais serão as decorações das janelas, quem faz isso são os chamados Windows Managers (WM) ou gerenciadores de janelas. Dessa forma, a “cara” da parte gráfica varia drasticamente de um WM para outro.
Um conceito básico do servidor X é que ele é realmente um servidor como o próprio nome já indica. Sendo assim, é possivel abrir várias instâncias de interface gráfica em uma mesma máquina ou até mesmo em uma máquina remota, graças ao seu protocolo de rede.

Configurando o suporte à interface gráfica
A interface gráfica mais utilizada em ambientes UNIX é conhecida como X Window System, ou simplesmente X. Essa interface é provida pelos pacotes Xorg e Xfree86, que podem ser baixados diretamente nos sites oficiais http://www.xorg.org. Http://www.xfree86.org ou utilizando o “apitutde” dos pacotes necessários.

O arquivo de configuração do servidor X é dividido em seções e cada uma diz respeito à configuração de um determinado pedaço do sistema como um todo. Ou seja, o arquivo é composto de várias seções que definem qual será o comportamento dos dispostivos como teclado, mouse,monitor e placa de vídeo e algumas outras definem recursos que o servidor X irá utilizar, como os móduos que serão carregados e arquivos de fontes, por exemplo.
Além das seções separadas que definem o comportamento de algum componente em separado, há outras como “serveLayout” e “Screen” que definem como o conjunto de recursos irá operar.

Variável de ambiente Display

a váriavel de ambiente DISPLAY é a que define em que lugar a saída gráfica deve ser mostrada. Com essa variável é possível até informar ao sistema que a saída gráfica se dará em outro computador na rede.

sendo o o endereço IP de uma máquina na rede, podendo ser deixado em branco caso a máquina de destino seja a própria máquina local. O campo display refere-se a uma instância de parte gráfica dentro de uma screen: o campo screen refere-se ao monitor e à placa de vídeo que irão sair a parte gráfica.

Um X window Manager é um software que controla basicamente o posicionamento e a aparência das janelas dentro do sistema X Window.
Ao contrário dos sistemas da Apple e Microsoft, que possuem apenas uma única aparência básica e que é de controle delas, no sistema GNU/Linux você é livre para escolher qual é o gerenciador de janelas que irá utilizar.
Há um número muito grande de gerenciadores de janelas que você pode instalar simultaneamente em uma máquina, possibilitando que cada usuário escolha aquele que mais lhe agrade. Cada gerenciador difere do outo em mitos aspectos, como nível de customização da aparência e funcionalidades, configurabilidade dos menus, meios gráficos para iniciar um software, capacidade de utilizar múltiplos desktops e, principalmente, na quantidade de recursos que ele exige da máquina, entre outros.


Prática dirigida

Instalação e configuração do servidor X

# aptitude install xserver-xorg

ou

# aptitude install x-window-system

após a instalação, vamos testar se a configuração padrão serve para a nossa máquina.

1 – inicie o servidor X:

# X

Caso esteja funcionando, ótimo. De qualquer forma, vamos executar o procedimento de configuração:

# X – configure

Esse comando irá tentar identificar qual é o hardware da sua máquina e gerar um arquivo de configuração para ela gravando esse arquivo no diretório do root.

2 – Teste esse novo arquivo de configuração:

# X – config /root/xorg.conf.new

ou

# X – xf86config /root/XF86config.new

Novamente, se funcionar, ótimo, caso não funcione, teremos que realizar os ajustes manualmente, e , para isso, precisaremos de algumas informações como:

placa de video, para determinar qual é a nossa placa de vídeo podemos utilizar o comando:

# lspci |grep -i vga

frequencia do monitor, para descobrir quais são as frequencias do seu monitor você deve recorrer ao manual e ao google.
Device do mouse, essa parte é fácil, kbd-config.

3 – Tente os seguintes comandos e diga qual é a diferença entre eles:

# X

# startx

Instalando um window manager

No Linux podemos ter vários Clientes, Gráficos. Depois que o servidor gráfico já está instalado e configurado, só vamos ter o trabalho de instalar os clientes gráficos.

1- Instalar o gerenciador de janelas WindowMaker:

# aptitude install wmaker

2 – Agora vamos iniciar o nosso cliente gráfico que acabamos de instalar:

# startx

3 – Para um próximo teste, vamos instalar outro cliente gráfico que é muito utilizado, o kde:

# aptitude install kdebase

4 – Depois vamos iniciar nosso outro gerenciador de janelas:

# startx

obs: note que foi utilizado o mesmo comando para iniciar tanto WindowMaker quanto o kde (o startx). Isso acontece porque ao instalarmos o kde ele se colocou como sendo o WM padrão do sistema, mas isso pode ser alterado.

5 – Podemos editar o arquivo /root/.xinitrc para escolhermos qual cliente gráfico será iniciado quando o root utilizar o comando startx. Essa configuração é válida apenas para o usuário root, pois alteramos o xinitrc da home do root:

# vim /root/.xinitrc

windowMaker utilize wmaker.
Kde utilize startkde.
6 – Para que alteração seja válida para qualquer usuário, devemos editar o arquivo de configuração global:

# vim /etc/X11/xinit/xinitrc

obs: lembrando que uma configuração local, ou seja, o arquivo pessoal do usuário, prevalece sobre o global, caso o usuário especifique um.

Se quiser mudar o seu display manager defaulta, basta editar o seguinte arquivo:

# vim /etc/X11/default-display-manager
/usr/bin/kdm

Usando o Xnest
objetivo: Queremos rodar um aplicativo na nossa máquina local mas que esteja sendo executado em uma máquina remota.

1 – Vamos iniciar o nosso WindowManager utilizando o Display Manager kdm. Faça login com o seu usuário comum, não como root! NUNCA como ROOT em ambiente gráfico!.

# /etc/init.d/kdm start

2 – Ainda como root, instale o pacote xnest, nested x server:

# aptitude install xnest

3 – Agora, em uma shell dentro do ambiente gráfico, vamos executar o Xnest, desabilitando qualquer controle de acesso:

(abra um xterm e execute)
$ Xnest :1 -ac &

4 – Faça uma conexão ssh no servidor remoto com as aplicações:

# ssh @

5 – Já no servidor, exporte a variável DISPLAY para a sua máquina na screen 1, ou seja, onde o Xnest está “escutando”:

# export DISPLAY=:1

6 – Agora já podemos testar uma aplicação gráfica, que irá rodar dentro da tela do Xnest:

# wmaker &

obs: como estou acessando a aplicação remotamente, os processos da aplicação estão consumindo recursos do servidor, e não na minha máquina.

Servidor X remoto

O xterminal é um recurs dos servidores gráficos X presentes em todos os servidores Linux. Este recurso possibilita que uma máquina com menor desempenho posso executar uma aplicação gráfica a partir de um servidor, onde toda a carga de processamento está sendo realizada nele, e a nossa estação atuando somente como um terminal.

O X terminal utiliza o protocolo XDMCP.

1 – Utilizaremos o display manager gdm para fazer esse serviço. Vamos editar o arquivo onde ativaremos o XDMCP para o gdm.

# vim /etc/gdm/gdm.conf

2 – Localize o bloco [Xdmcp], utilizado para configuração desse protocolo. Ao encontrar esse bloco, ative o XDMCP alterando de enable=false para enable=true:

[xdmcp]
enable=true

pronto! Basta reiniciar o gdm que ele já estará “escutando” na porta 177/tcp.

3 – reinicie o gdm:

# /etc/init.d/gdm stop

# /etc/init.d/gdm start


4 – Verifique que a porta 177/tcp está aberta:

# netstat -ltan |grep 177

# fuse 177/tcp

5 – Em sua máquina, faça requisição XDMCP á maquina de um miguxo (heuhe), mandando utilizar a screen 1:

# X – query : 1

Dica LPI: No xorg o arquivo de configuração: /etc/X11/xorg.conf e no Xfree86: /etc/X11/X11.

Não se esqueça que a variável que define o ambiente do usuário é a DISPLAY.

Procure nos manuais do sistema sobre o servidor X.

0 comentários:

Postar um comentário