Piter Punk's HomePage - Artigos
 
English version
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


Links Principal Artigos Piter Punk Dicas Programas
 
Powered by Slackware Linux - Written in VIm (the best one!) Last Update: 30 Oct 2004