Arquivos históricos do BR-Linux.org apresenta:

Linux in Brazil (Ambientes leves )

Opção pela Simplicidade

Gerenciadores de janelas de alto desempenho e flexibilidade que não comprometem quando rodam em antigos 386

    Este texto é de autoria de Augusto C. Campos mas foi publicado originalmente pela Revista do Linux, edição 3. Ele é reproduzido aqui (sem as figuras) com a permissão da Revista do Linux (www.revistadolinux.com.br)

Boa parte do sucesso que o Linux tem obtido com os usuários finais de microinformática recentemente pode ser atribuído à facilidade de uso oferecida pelos ambientes gráficos Gnome e KDE. Ambos oferecem recursos que até pouco tempo atrás não estavam ao alcance dos usuários de Linux, como a integração entre aplicações, drag and drop, atalhos no ambiente de trabalho, barras de tarefa dinâmicas, aparência e comportamentos consistentes, e uma plataforma de suporte a aplicações capaz de justificar o interesse por parte dos desenvolvedores.

Entretanto, esses recursos têm um custo alto em termos de memória e processamento. Para gerenciar a integração entre aplicações, o Gnome e o KDE são obrigados a manter uma série de serviços em permanente execução, ocupando valiosos bytes na memória e também preciosos ciclos de execução do microprocessador. Isso está longe de ser um problema para os possuidores de micros topo de linha, mas é um fator de constante irritação para grande parte dos usuários.

Uma das vantagens apontadas no Linux é a sua escalabilidade, podendo rodar até em um antigo 386. Não se espera que esses computadores de menor performance sejam uma boa base para a execução de ambientes operacionais gráficos mais pesados como o KDE e o Gnome, mas naturalmente há alternativas. E o mais interessante é que essas alternativas podem ser atraentes também para os usuários de computadores mais potentes, mas que não precisem dos recursos adicionais oferecidos pelos ambientes gráficos mais completos.

Ambientes gráficos leves

Ambientes como o KDE e o Gnome incluem uma série de serviços adicionais que contribuem em muito para o seu impacto na performance: gerenciadores de arquivos em permanente execução, gerenciadores de comunicação entre as aplicações, e muitos outros. Mas muitos usuários sentem que não fariam tanta questão de dispor de ícones ativos na sua área de trabalho, se pudessem ter mais memória e tempo de processamento disponíveis para as suas aplicações.

Felizmente existem várias alternativas para satisfazer aos anseios minimalistas destes usuários, e iremos analisar duas delas que se destacam por aliar a praticidade à leveza e simplicidade: o IceWM e o BlackBox.

IceWM

O IceWM foi construído tendo em mente os objetivos de bom desempenho e flexibilidade. Mesmo sendo minimalista em seu conceito, apresenta muitos dos confortos dos ambientes gráficos mais volumosos, tais como suporte a temas, barra de tarefas bastante funcional, incluindo até mesmo applets como um relógio, monitor de bateria e indicador de chegada de e-mail.

Há extensões de configuração que precisam ser instaladas separadamente: o IcePref, desenvolvido em Python, e o IceWMConf, feito em Tcl/Tk. O IcePref oferece extrema liberdade de configuração, incluindo as decorações das janelas (bordas, títulos, botões), cores do ambiente, opções dos menus, fontes, comportamento de inicialização e encerramento do ambiente, e muito mais.

De fato, há bem mais opções de customização do que na maior parte dos ambientes gráficos, permitindo criar um sistema realmente adequado ao seu estilo pessoal.

Outra característica importante do IceWM é a presença de áreas de trabalho similares às do WindowMaker. As áreas de trabalho funcionam como múltiplas telas, sendo que você abre as suas janelas de aplicação na tela que mais lhe convier, e a cada momento escolhe qual área deseja visualizar. Enquanto desenvolvo este artigo, tenho o editor de textos aberto na área de trabalho denominada de "Shell", e um navegador aberto na área de trabalho "Web", e estou constantemente alternando entre as duas. Este modo de operação é bem mais confortável do que a alternativa de manter todas as janelas em um único ambiente de trabalho, sobrepondo umas às outras e minimizando algumas, pois pode-se organizar logicamente o espaço visual.

A barra de tarefas do IceWM (veja a figura 1) lembra bastante a do Windows 95, exceto pela presença dos botões que alternam entre as várias áreas de trabalho. À esquerda temos um botão que aciona um menu de opções (figura 2), incluindo aí os aplicativos mais comuns do sistema (este menu pode ser editado para incluir seus aplicativos preferidos). Além disso, a barra mostra os aplicativos que estão em execução, e informa a hora certa, o status da conexão ppp, e outros pequenos confortos.

O IceWM é compatível com o Gnome. Isso significa que você pode utilizar o ambiente gráfico Gnome e manter o IceWM como seu gerenciador de janelas, interagindo com a sessão Gnome de maneira transparente. Não há grandes ganhos de performance neste caso, mas pode ser uma alternativa interessante para usuários insatisfeitos com o ambiente padrão do Gnome - que normalmente é o também pesado Enlightenment.

Instalando o IceWM

Instalei o IceWM em uma máquina de testes rodando a versão 6.2 do SuSE Linux. Embora o SuSE tenha sua própria ferramenta de seleção de ambiente gráfico, preferi editar manualmente os arquivos de configuração para gerar um procedimento padronizado que possa ser seguido por usuários de outras distribuições de Linux sem muitas diferenças.

O primeiro passo foi localizar e instalar o pacote RPM do IceWM. Se você tem o CD-ROM distribuído na primeira edição da Revista do Linux, encontrará uma versão do IceWM já empacotada para o Conectiva Linux no diretório /mnt/cdrom/conectiva/RPMS - então bastará instalar através dos seguintes comandos:

# rpm -ivh /mnt/cdrom/conectiva/RPMS/icewm-0.9.48-3cl.i386.rpm
# rpm -ivh /mnt/cdrom/conectiva/RPMS/icewm-themes-0.9.42-1cl.noarch.rpm
  

Caso não disponha do CD, faça o download no site da sua distribuição favorita, ou mesmo no site oficial do IceWM. Após a execução dos comandos acima, você terá instalado o IceWM 0.9.48, incluindo a documentação em html gravada no diretório /usr/doc/icewm-0.9.48/. O próximo passo é fazer com que ele seja executado.

É possível que seu ambiente gráfico padrão já tenha uma opção de menu que alterne para o IceWM - se for o caso, utilize-a para seus primeiros testes. Caso contrário, edite seu arquivo ~/.xinitrc (ou ~/.xsession, se seu micro entrar no modo gráfico já durante o boot), localizando a linha que carrega o seu ambiente gráfico atual e substituindo-a por uma linha como a que segue:

exec icewm
  

Caso você não tenha um arquivo chamado ~/.xinitrc, crie-o, e faça com que sua única linha seja a exposta acima. Em seguida, torne-o executável digitando "chmod a+x ~/.xinitrc"). Feito isso, execute sua seqüência normal de operação para entrar no modo gráfico (na maior parte dos casos isso significa digitar startx), e veja o IceWM em ação.

BlackBox

O BlackBox é outro gerenciador de janelas disponível em versão para Linux e que tem a economia de recursos como ponto forte. Se você realmente tem pouca memória disponível, ou se deseja manter o máximo de memória possível para suas aplicações sem abrir mão de um mínimo de funcionalidade do ambiente gráfico, não pode deixar de experimentar o BlackBox.

Apesar de sua aparência espartana, o Blackbox tem todos os recursos necessários para manipular as suas janelas, incluindo múltiplas áreas de trabalho (de maneira análoga à do IceWM), menus configuráveis para acesso às aplicações, e uma barra de tarefas simplificada, que indica o nome da área de trabalho ativa, da janela selecionada, informa a hora certa e permite navegar, de forma simples, entre as aplicações correntemente em execução. A figura 3 mostra a barra de tarefas e o menu indicando as aplicações em execução.

Uma das razões para a maior economia de memória oferecida pelo Blackbox é que ele não tem suporte a carregamento de imagens. Isso significa que, ao contrário de outros gerenciadores de janelas como o IceWM e o WindowMaker, não é possível definir um belo pixmap para ser usado como padrão de preenchimento dos menus e barras de título das janelas - é necessário se contentar com os preenchimentos baseados em gradientes.

A configuração do BlackBox é como nos "velhos tempos": você é obrigado a editar diretamente os arquivos de recursos (não que eu esteja reclamando). O arquivo básico é o ~/.blackboxrc, criado automaticamente na primeira vez em que se sai do ambiente. As opções desse arquivo são razoavelmente auto-explicativas, e incluem, entre outras coisas, o nome do arquivo que irá conter as suas opções de menu. Ao editar o .blackboxrc, lembre-se de que o BlackBox não pode estar rodando - caso contrário, ele acabará sobrepondo suas alterações.

Para editar seu próprio menu do BlackBox, similar ao da figura 4, primeiro copie o menu padrão do sistema para o seu diretório:

# mkdir ~/.blackbox
# cp /usr/local/share/Blackbox/menu ~/.blackbox/Menu
  

E edite a entrada session.menuFile no arquivo .blackboxrc para apontar para o seu menu em ~/.blackbox/Menu. Em seguida, edite o seu arquivo de menus para ficar de acordo com suas preferências, utilizando as dicas de sintaxe fornecidas no próprio menu original - que é bastante simples.

Instalando o BlackBox

O CD-ROM da Conectiva, em sua versão 4.0, não inclui uma cópia do BlackBox. O próprio site do BlackBox não conta (no momento em que esta matéria está sendo escrita) com arquivos instaláveis em formato RPM. Isso significa que teremos que instalá-lo a partir dos fontes. Se você tiver dificuldades com algum passo da instalação, lembre-se de consultar a documentação que acompanha o pacote. O primeiro passo é obter o arquivo dos fontes (em formato .tar.gz), no site oficial: portal.alug.org/blackbox.

Uma vez de posse do arquivo, descompacte-o no diretório de sua preferência:

# tar zxvf blackbox-x.xx.x.tar.gz
  

Entre no diretório criado durante a descompactação, iniciando então a configuração e compilação:

# ./configure
# make
  

Após o término da compilação, utilizando os privilégios do root (comando "su"), instale o pacote:

# su
# Password: ******
# make install
# exit
  

E para garantir que o BlackBox vá ser executado na próxima vez em que você iniciar o ambiente gráfico, edite o arquivo ~/.xinitrc de maneira análoga à utilizada para instalar o IceWM, mas desta vez acrescentando a seguinte linha:

exec blackbox
  

Conclusão

As opções aqui expostas não encerram a discussão sobre as vantagens de cada gerenciador de janelas ou ambiente gráfico. E naturalmente há outros ambientes gráficos que ocupam poucos recursos, e também vários com características especiais que justifiquem sua maior ocupação de memória e CPU.

Espero ter atingido o objetivo de demonstrar que existe vida fora do universo KDE/Gnome, e que se você tem problemas de performance com o Linux, sempre há maneiras de reduzir a carga livrando-se de funcionalidades desnecessárias.

Como um complemento a este artigo realizei um rápido teste de ocupação de memória usando as configurações padrão de cinco populares ambientes. Não foi tomada nenhuma precaução científica, exceto a manutenção das mesmas condições de ambiente em todas as tomadas de tempo, mas mesmo assim é possível demonstrar, grosso modo, como pode valer a pena usar gerenciadores mais leves. Veja tabela 1.

Os testes foram realizados em um equipamento Pentium com 64MB de memória, rodando as configurações padrão distribuídas com o SuSE Linux 6.2.

Tabela 1
Gerenciador Memória livre (Kbytes)
Modo texto 30764
BlackBox 0.40.9 23540
IceWM 0.9.42 23416
WindowMaker 0.60.0 20904
KDE 1.1.1 8376
GNOME 1.0.7 4660

Para saber mais:


O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.