Montando um servidor de aplicações X
Piter PUNK
Em artigos anteriores, escrevi sobre o XDM e sobre como transformar
um velho 386 em um terminal X. Porém, o X terminal não tem utilidade
nenhuma sem um servidor de aplicações para X!! Com este artigo nós fechamos o círculo,
montando o servidor.
1. Introdução
A arquitetura do X Window System, permite que um programa seja executado
em uma máquina e visualizado em outra. Esta técnica é muito indicada
para montar laboratórios, salas de aula, cybercafés utilizando máquinas
com poucos recursos, e garantir para estas máquinas todas as funcionalidades
de uma mais potente.
Neste artigo iremos mostrar algumas configurações do xdm (X Display
Manager) outras do xfs e algumas do xfstt (Servidores de fontes para
o X). Questões sobre a aparência da tela de login do XDM podem ser
respondidas no meu artigo:
Configurando o XDM.
Sobre como reaproveitar micros antigos como Xterminais, veja o artigo
Um 386 como X Terminal.
Lá tem várias informações sobre como instalar
e configurar o Linux com X em máquinas mínimas.
2. Requisitos
A maior parte dos requisitos para fazer funcionar um servidor X estão
disponíveis na sua distribuição. Como eu uso Slackware tanto em meus
servidores quanto nos clientes, minhas explicações serão dadas com
base nesta distro. Você vai precisar:
- Um computador rodando Linux;
- 64MB + 32MB para cada cliente (meio exagerado, mas é melhor sobrar que faltar);
- Placa de Rede;
- xdm;
- xfs e;
- xfstt (caso queira fontes TrueType)
É possível rodar com menos memória do que o descrito acima, dependendo
unicamente das suas necessidades. 28MB é o quanto o StarOffice ocupa
quando é acionado, de 12 a 20MB o Netscape usa sem dó. Processamento
não é tão necessário, já fiz testes com um P133 suportando 4 máquinas
e funcionou normalmente, não testei StarOffice e nem Netscape+Flash.
3. Instalação
A instalação do Linux não tem muitos segredos nas máquinas mais novas,
basta inserir o CD no drive de CD-ROM e bootar por ele. Seguindo as
instruções dos menus você deve ter uma máquina instalada em pouco
tempo.
O mínimo imprescindível são as séries A, AP, N e X. Mas é recomendado
você instalar tudo, já que os terminais irão usar os programas nesta
sua máquina, então é bom que ela possua programas...
4. Configurando
Serão necessárias algumas configurações no servidor e no cliente, será
necessário fazer com que o servidor forneça ao cliente as fontes e
os X clients. Já o cliente deverá ter indicado onde buscar os X clients
e as fontes. Se você utilizar o xfstt, será possível ter fontes TrueType
em seus clientes (e no servidor).
4.1. No servidor...
Vamos dar uma rápida passada pelos arquivos de configuração do xdm.
Por default, eles já estão configurados para aceitar conexões vindas
de qualquer computador. Alterando estes arquivos, você pode fazer
com que o X aceite apenas conexões vindas de determinados IPs, usar
o Chooser, etc...
4.1.1. /etc/inittab
Pode parecer estranho, mas esta será a primeira alteração. Vamos fazer
com que o xdm seja ativado no momento do boot. É muito chato ter que
ficar colocando ele para funcionar na mão toda hora...
Então, procure uma linha semelhante a esta:
id:3:initdefault:
E troque o 3 pelo 4 (no Slackware) ou pelo 5 (nos RedHat-like). Assim
você estará habilitando o boot gráfico, que irá rodar o xdm ou algum
equivalente (gdm, kdm ou wdm).
4.1.2. /etc/rc.d/rc.4
No Slackware, o default é usar o kdm, depois o gdm e como última opção
o xdm. Como eu gosto mais do xdm, eu editei o /etc/rc.d/rc.4 e coloquei
o xdm como default -:) Uma boa idéia, é incluir neste script a inicialização
do xfs. O rc.4 editado ficou assim:
#!/bin/sh
#
# rc.4 - This file is executed by init(8) when the system is
# being initalized for run level 4 (XDM)
#
# Author: Piter Punk
# based on original rc.4 from Slackware
# Original author: Fred N. van Kempen
echo "Starting up X11 session manager..."
# Chama o Servidor de Fontes
xfs &
# Chama o XDM...
/usr/X11R6/bin/xdm -nodaemon
4.1.3. /etc/X11/xdm/Xaccess
Este arquivo decide quais máquinas poderão acessar ao ser servidor.
A sintaxe não é complicada. Apenas coloque o nome das máquinas que
poderão acessar ao seu servidor. Por exemplo:
#
# Xaccess - Arquivo Exemplo
#
# autoriza todas as maquinas do domínio bluecup...
*.bluecup-microsystems.com
# autoriza a maquina este host em especial
terminal1.mynet.nom.br
# proibe a conexão do host cracker.invader.net
!cracker.invader.net
Existem outras configurações possíveis. Mas, geralmente apenas com
estas informações é possível fazer ótimas regras. Lembre-se que o
* é um coringa, se você mantê-lo sozinho em uma linha, você estará
autorizando todas as máquinas da internet a conectarem em seu X server.
Já o ! funciona como sendo um ``não'', qualquer endereço depois dele
terá suas conexões recusadas.
4.1.4. /etc/X11/xdm/xdm-config
Neste arquivo estão várias configurações gerais do xdm. O que nos interessa, é uma linha semelhante a esta:
DisplayManager.requestPort: 0
Esta linha, serve para indicar qual será a porta em que o XDM irá aceitar as conexões. Do jeito que está, ela faz com que o xdm não escute em porta nenhuma e, portanto, não aceite as conexões de nossos X terminais. Simplesmente comente a linha, colocando um ! no início dela. Ficando assim:
!DisplayManager.requestPort: 0
4.2. No Cliente...
Com o servidor já configurado, agora é a hora de arrumar o cliente.
Para falar a verdade, não é necessária configuração nenhuma, se você
quiser o seu Xterminal rodando agora, basta digitar no prompt:
$ X -query ip.do.seu.servidor
Porém, quando fazemos um Xterminal dedicado, queremos que o sistema
entre o no X automaticamente e carregue o xdm do servidor (pelo menos
eu quero). Então são necessárias algumas pequenas alterações.
4.2.1. /etc/inittab
As alterações a serem feitas no inittab são as mesmas que foram efetuadas
no servidor. Elas são feitas para que o terminal entre direto no modo
gráfico.
4.2.2. /etc/rc.d/rc.4
Aqui serão feitas algumas alterações diferentes... ao contrário do
servidor, onde queríamos que o xdm fosse carregado, aqui iremos colocar
apenas o X para ser executado. Siga o exemplo:
#!/bin/sh
#
# rc.4 - Versão especial para um Xterminal
#
# Author: Piter Punk
XSERVER="ip.do.seu.servidor"
echo "Starting up X11..."
/usr/X11/bin/X -query $XSERVER
4.2.3. /etc/XF86Config
Esperamos que o seu terminal já esteja com o X configurado. Não vamos
explicar como configurá-lo nesse documento. Vamos fazer apenas uma
pequena alteração para que o Xterminal possa usar as fontes que o
servidor está disponibilizando.
Onde houverem umas linhas semelhantes a estas:
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
Apague todas as FontPath e coloque no lugar:
FontPath "tcp/ip.do.seu.servidor:7100"
Pronto! Se voce preferir, pode deixar alguma das outras linhas do FontPath,
do jeito que ficou (com apenas uma linha), o seu Xterminal não vai
utilizar nenhuma fonte local, irá utilizar todas as do servidor.
4.3. Fontes TrueType
Depois de tudo isto funcionando, existe ainda a possibilidade de você
utilizar fontes TrueType em seus computadores. Isto é feito através
do xfstt. Ele deve ser instalado e as fontes devem ser colocadas no
diretório /usr/share/fonts/truetype.
Uma ótima idéia, é pegar o programa chamado ``acentos-1.5'' na internet.
Este programa além de configurar o Slack para acentuar, coloca o xfstt
para funcionar -:).
Depois das fontes instaladas e do daemon rodando, basta adicionar esta
linha no XF86Config dos clientes (na seção sobre fontes...)
FontPath "tcp/ip.do.seu.servidor:7101"
5. Conclusão
Graças à arquitetura cliente-servidor, o X Window System, sempre esteve
anos à frente de outros sistemas de janela. Enquanto para algumas
pessoas isto é encarado como novidade, os usuários do mundo *nix estão
bem acostumados à exportas suas aplicações, e dispõem de ferramentas
facilmente configuráveis e robustas para esta função.
Com este método, computadores considerados obsoletos, podem executar
programas de última geração em seus servidores. Aumentando o aproveitamento
da base instalada e diminuindo os custos de manutenção e instalação
(já que os aplicativos estarão todos no server).
Este artigo não pretende esgotar o assunto, sendo que existem várias
outras configurações que podem ser feitas tanto no xdm, quanto no
X ou mesmo nos terminais. Qualquer sugestão, dúvida ou crítica mande
e-mail para: piterpk@terra.com.br
|