Usando o KDE em micros com 32 MB de RAM

Usando o KDE em micros com 32 MB de RAM
O requisito mínimo para a maioria das distribuições atuais é um Pentium II ou K6-2 com 128 MB de RAM. Muitas já recomendam 256 MB para um bom desempenho.

Ninguém mais compra micros com menos de 256 MB e, como os pentes de memória DDR estão cada vez mais baratos, a melhor alternativa para quem tem 128 MB é simplesmente instalar mais um pente, completando 384 ou 730 MB.

Mas, no caso de micros antigos, que ainda usam pentes de 72 vias, isto não é tão simples. É difícil encontrar este tipo de memória à venda e justamente por isso eles são muito mais caros. Para complicar, a grande maioria dos pentes de 72 vias tem 8 ou 16 MB, o que permite usar um máximo de 32 a 64 MB de memória. Ou seja, na maioria dos casos chegamos a uma situação onde ou você usa o micro do jeito que está, com 32 ou 64 MB de RAM, ou joga fora e compra um novo.

Pessoalmente, acho que a melhor solução para estes micros antigos é usá-los como terminais de um servidor LTSP. Um Pentium 100 com 16 MB de RAM funciona bem como terminal e os aplicativos são executados com a velocidade permitida pelo servidor. Usando um Athlon ou Pentium 4 como servidor, você tem um bom desempenho em todos os terminais.

Abordo com detalhes a configuração de servidores LTSP e dos terminais no livro Redes e servidores Linux. A proposta aqui é diferente: o que fazer com estes micros obsoletos em situações onde não é prático usar um servidor LTSP e não é possível substituí-los por novos?

Diz a lenda que o Linux pode rodar rápido mesmo em micros 486, com 4 ou 8 MB de RAM. Isto não é mais verdadeiro com relação às distribuições atuais. Na verdade, distribuições como o Fedora ou Mandriva podem ser até mais pesadas que o Windows XP, sobretudo em consumo de memória. Por outro lado, distribuições como o Debian ou o Slackware permite fazer instalações bem mais enxutas, que consumam muito menos recursos do sistema.

Não dá para usar o seu 486, a menos que você pretenda usá-lo para compartilhar a conexão ou rodar apenas aplicativos de modo texto, mas já é possível aproveitar um Pentium 133 com 32 MB de RAM, por exemplo.

Outra lenda popular, diz que o KDE é muito pesado e que por isso é quase impossível rodá-lo com um bom desempenho em micros antigos, onde a solução seria usar o IceWM ou outra interface leve. Novamente, isto não é necessariamente verdadeiro, pois o KDE é bastante modular, o que permite manter ativos apenas os componentes desejados. Carregar um KDE completo, com a pia da cozinha e mais um monte de bibliotecas do Gnome (como no Mandriva) consome facilmente mais de 100 MB de memória. Carregar um KDE mais enxuto (como no Kurumin, ou uma instalação padrão do Slackware) consome bem menos, por volta de 45 MB.

É possível desativar mais componentes, deixando o KDE bem mais enxuto, com um consumo de memória próximo ao das interfaces leves. Do ponto de vista do desempenho, só é interessante usar uma das interfaces leves caso você não pretenda usar nenhum dos aplicativos do KDE, incluindo o Konqueror, arK, Kedit, Kcalc, SIM, Kopete, Kuickshow e outros. Caso contrário, ao abrir qualquer um dos aplicativos do KDE, são carregadas as bibliotecas do KDE de qualquer forma, fazendo com que no final o consumo de memória final seja ainda mais alto, pois ao total é somada a memória ocupada pela outra interface em uso.

Existem distribuições otimizadas para micros antigos, como o Dizinha (baseado no Kurumin), que você pode baixar no http://dizinha.codigolivre.org.br/ e o Damnsmall (em Inglês), que você baixa no http://www.damnsmalllinux.org/. O objetivo aqui é dar dicas que podem ser usadas para enxugar a distribuição a que está habituado, sem precisar migrar.

Lembre-se que estas dicas servem apenas para micros com 32 MB ou mais. Para micros com 16 MB, esqueça. Volte para a idéia dos terminais.

Instalando

No Debian e no Slackware o sistema é instalado em modo texto, e por padrão inicializa em runlevel 3, sem carregar o modo gráfico, o que facilita nosso trabalho. Durante a instalação, desmarque todos os servidores, compiladores e, principalmente, não instale o Gnome. Faça uma instalação enxuta do KDE; no Debian instale apenas o pacote “kdebase“, que vai instalar o Konqueror, Kdelibs e os outros componentes-base, deixando para instalar outros aplicativos conforme precisar deles

Para instalar o Kurumin, dê boot pelo CD e use, na tela de boot a opção:

kurumin 2

Isto fará o Kurumin dar boot em modo texto, o que consome cerca de 18 MB de memória, dando boot pelo CD. Você pode também desativar o ACPI e a detecção de periféricos USB e placas PCMCIA, acelerando um pouco o boot. Para isso, adicione as opções “noacpi nousb nopcmcia“. A partir do Kurumin 5.0 beta 5, você pode usar também as opções “noalsa” e “nocups“, que desabilitam também a detecção da placa de som e o carregamento do suporte a impressão, tornando o boot mais rápido. Com todas as opções, a linha ficaria:

kurumin noacpi nousb nopcmcia noalsa nocups 2

Terminado o boot, o primeiro passo é particionar o HD:

# cfdisk

Não se esqueça de criar uma partição swap, num micro com pouca RAM ela é essencial. Você pode ativar o swap sem precisar reiniciar com os comandos:

# mkswap /dev/hda2
# swapon /dev/hda2

(onde o /dev/hda2 é a partição swap criada)

Com a swap ativa você pode começar a instalação. Ao invés de esperar o KDE carregar, você pode abrir um X “pelado”, sem gerenciador algum, e por isso bem mais rápido de carregar, usando o comando:

# xinit

Com o X aberto, chame o instalador do Kurumin com o comando:

# kurumin-install

Responda “não” quando o instalador perguntar se você deseja revisar a configuração do lilo, caso contrário ele abrirá uma janela do Kedit, que vai demorar uma eternidade para abrir. Deixe para configurar o lilo depois do primeiro boot, caso necessário.

.index_inc_4e57eaa4

Depois de terminar a instalação, você pode aproveitar para desativar a abertura do KDE durante o boot. Para fazer isso antes de reiniciar, monte a partição onde o sistema foi instalado e use o chroot para abrir um terminal dentro dela:

# mount /dev/hda1 /mnt/hda1
# chroot /mnt/hda1

(onde o /mnt/hda1 é a partição onde o sistema está instalado)

Dentro do terminal do chroot, chame o:

# wmconfig

Use a opção que desativa o KDM e escolha o gerenciador de janelas padrão. Ao reiniciar, o login será feito em modo texto, tornando o boot rápido. Para abrir o modo gráfico, use o “startx“.

O ideal é que o primeiro boot, depois da instalação seja dado em modo texto, assim podemos começar desativando os serviços de sistema desnecessários antes de começar a mexer na configuração do KDE. No Debian e Slackware este é o padrão do sistema e, no Kurumin, basta desativar o KDM usando o wmconfig.

Para economizar memória não usaremos o KDM nem outro gerenciador de boot, pois mesmo o XDM (que é bem espartano) consome uma certa quantidade de memória. Ao invés disso, fazemos login à moda antiga, em modo texto. Se achar realmente necessário usar um gerenciador de login, experimente o XDM, que é o único leve. Não use o KDM nem o GDM, eles demoram demais para carregar me micros antigos e consomem muita memória.

A interface padrão é definida no arquivo “.xinitrc“, dentro da pasta do usuário. Para usar o KDE, ele deve conter uma única linha: “startkde“. Para o IceWM, o comando no arquivo é “icewm” e para o Window Maker é “wmaker“.

Desativando serviços

Rodando o comando “free“, você verá que, em modo texto, o sistema consome entre 9 a 12 MB de memória. Nossa primeira meta é reduzir isso para algo abaixo de 6 MB.

Quando você liga a máquina, o BIOS é o primeiro software a ser carregado. Ele testa a memória RAM e faz uma verificação rápida dos dispositivos instalados no micro. A seguir ele lê o primeiro setor do HD (a famosa trilha MBR) que começa o carregamento do sistema operacional.

É aqui que é carregado o Lilo, o gerenciador de boot, que permite escolher qual sistema operacional será carregado. Ao escolher, começa o carregamento do Kernel. Neste ponto você vê uma mensagem “Loading Linux………..” no topo da tela.

Depois que o Kernel é inicializado, ele carrega o init, o programa que se encarrega de carregar o restante do sistema.

Inicialmente ele carrega os serviços colocados dentro da pasta “/etc/rcS.d“, depois os serviços da pasta “/etc/rc5.d“, ou “/etc/rc3.d“, de acordo com o runlevel padrão do sistema, definido no arquivo “/etc/inittab“. É nestas duas pasta que você pode remover os serviços que não são necessários, acelerando o boot e reduzindo o consumo de memória. Estes são os serviços que ficam ativos numa instalação padrão do Kurumin:

index_inc_4a0a8e18

Todos os serviços que estão dentro das duas pastas são executados durante o boot. Depois de executar tudo que está dentro da pasta /etc/rcS.d, o init executa o conteúdo da pasta /etc/rc5.d, de forma que os serviços se distribuem entre as duas pastas, com os serviços mais essenciais carregando primeiro.

Para desativar um serviço, você pode simplesmente deletar o arquivo correspondente dentro da pasta (o jeito fácil) ou usar o comando “update-rc.d -f serviço remove“, como em:

# update-rc.d -f cupsys remove

Na pasta “/etc/rcS.d” mantenha os serviços que checam e montam as partições do sistema e carregam a configuração da rede. Você pode desativar serviços como o portmap e o mountnfs, que são necessários apenas ao montar compartilhamentos de rede via NFS durante o boot (através de uma linha no fstab). Desative também o acpid, caso presente, pois, de qualquer forma, você não terá suporte a acpi num micro antigo. O isapnp tem a função de detectar placas de som e rede ISA, por isso é muitas vezes necessário em micros antigos.

No Kurumin, remova também os links S56reiniciar-alsa e S60cupsys. O S36hwsetup detecta o hardware da máquina durante o boot. Ele retarda o boot em alguns segundos, mas não fica residente, por isso não consome memória.

Quase todos os serviços na pasta “/etc/rc5.d” (ou “/etc/rc3.d”) podem ser removidos. Se você precisa de suporte a dispositivos USB, mantenha o hotplug. Se precisa usar um modem discado, ou conectar via ADSL PPPoE (com autenticação), mantenha o pppconf e, se precisa de suporte a placas PCMCIA, mantenha o pcmcia. O cupsys dá suporte a impressoras, tanto locais quanto de rede, mas em compensação consome quase 4 MB de RAM. Só mantenha-o ativado caso realmente seja necessário.

O cron tem um papel importante na administração do sistema, fazendo a rotatividade dos logs, limpando arquivos temporários e executando tarefas agendadas. Ele consome relativamente poucos recursos do sistema e é essencial num servidor. Por outro lado, num desktop que é ligado e desligado freqüentemente, e onde não é necessário agendar tarefas, você pode desativá-lo para economizar cerca de 200 KB de memória.

Aproveite também para desativar os terminais de texto dentro do arquivo “/etc/inittab“. A maioria das distribuições mantém por padrão 6 terminais de texto ativados, o que desperdiça cerca de 2 MB de memória. Procure por 6 linhas em seqüência, começando com: “1:12345:respawn:/sbin/getty 38400 tty1” e comente todas, mantendo apenas a primeira ativa:

1:12345:respawn:/sbin/getty 38400 tty1
#2:2345:respawn:/sbin/getty 38400 tty2
#3:2345:respawn:/sbin/getty 38400 tty3
#4:2345:respawn:/sbin/getty 38400 tty4
#5:2345:respawn:/sbin/getty 38400 tty5
#6:2345:respawn:/sbin/getty 38400 tty6

No Slackware, os serviços de sistema são carregados a partir de scripts na pasta “/etc/rc.d“. Todas as linhas descomentadas em todos os arquivos dentro deste diretório são comandos, serviços e módulos que são carregados durante o boot. O Slackware é relativamente leve se comparado a outras distribuições, mas sempre há gordura para cortar. Para desativar um serviço você simplesmente remove a permissão de execução do script correspondente, usando o comando “chmod -x“.

Depois de remover a maior parte dos serviços, o consumo de memória na minha instalação caiu de 9 para 5 MB, uma boa economia:

ndex_inc_1949e26a

Otimizando o KDE

Depois de removidos os serviços desnecessários, chegamos à parte principal, que é a limpeza do KDE. Comece desativando todos os programas que ficam residentes, incluindo o Kmix, o Kpersonalizer e outros. Deixe apenas o relógio. Abra a pasta /home$USER/Autostart, onde ficam ícones para aplicativos que são abetos junto com o KDE. Remova todos.

A segunda parte é desativar componentes e recursos desnecessários dentro do Kcontrol. Desative todos os efeitos visuais, efeitos de menus, transparências, exibição de dicas, exibição de ícones nas barras e títulos, etc. Mantenha apenas o anti-alising de fontes, um recurso importante para a legibilidade das fontes e que consome poucos recursos do sistema.

Desative o uso de papel de parede na opção “Aparência e temas > Fundo de tela“. Um .jpg de 1024×768 consome entre 1 e 2 MB de memória, o que faz diferença num micro com apenas 32 MB. Use uma cor sólida ou uma mistura de duas cores como fundo. As opções “Stonewall 2 por Tigert” e “Pirâmide” geram um efeito de fundo interessante misturando duas cores e sem consumir memória.

Na opção “Componentes do KDE > Performance do KDE“. Marque a opção “Minimizar uso de memória > Sempre” e desative a opção “Pré Carregamento > Carregar uma instância do Konqueror após a inicialização do KDE”. Esta opção é útil em micros com mais memória, pois mantém uma instância do Konqueror carregada, fazendo que que ele seja aberto muito rápido ao clicar no ícone. Mas, num micro com 32 MB é preferível deixar a memória disponível para outros programas e carregar o Konqueror apenas quando ele for ser realmente usado.

ndex_inc_m5da90143

Desative os desktops virtuais, na opção “Área de trabalho > Múltiplas áreas de trabalho“. Cada desktop virtual consome cerca de 2 MB de memória; usando 4 desktops, por exemplo, você desperdiça 6 preciosos MB.

Desative o servidor de som do KDE (arts) na opção “Som e Multimídia > Sistema de som“, ele consome quase 4 MB de memória. Configure os aplicativos que usam a placa de som para usarem diretamente o driver Alsa ou OSS, ou acessarem diretamente o dispositivo de som.

Desative o Kxkb (o gerenciador de teclado do KDE), desmarcando a opção “Regional & Acessibilidade > Layout do Teclado > Habilitar layouts de teclado“, ele consome cerca de 3 MB de memória. Configure o teclado rodando o comando “loadkeys”. Para um teclado ABNT2, o comando é:

$ loadkeys br-abnt2

Coloque o comando dentro de um dos arquivos de inicialização do sistema, como o “/etc/init.d/bootmisc.sh” (no Debian) ou o “/etc/rc.d/rc.local” para que ele seja carregado durante o boot.

A configuração de teclado dentro do arquivo de configuração do X fica:

Section “InputDevice”
Identifier “Keyboard0”
Driver “keyboard”
Option “CoreKeyboard”
Option “XkbRules” “xfree86”
Option “XkbModel” “abnt2”
EndSection

Desative o Firestarter ou qualquer outro firewall gráfico. Se precisar manter o firewall ativo ou compartilhar a conexão, faça a configuração diretamente através das regras do Iptables.

Abra o Konqueror e marque a opção “Ver > Pré-Visualizar > Desabilitar Pré-visualizações“. Esta opção consome muita memória, pois mantém carregados visualizadores para vários tipos de arquivos. Desabilite também o uso de uma imagem de fundo e outras opções visuais que encontrar.

Desative todos os mini-aplicativos ativos na barra do KDE, como o pager, pois, apesar de pequenos, juntos eles podem consumir uma quantidade generosa de memória.

Depois de uma limpeza bem feita, o consumo de memória do sistema logo após a abertura do KDE deve ter caído para algo em torno de 35 MB, mais ainda há bastante gordura para cortar.

Mais uma configuração importante para reduzir o tempo de boot e economizar mais um pouco de memória é desativar o ksplash, que tem função puramente cosmética. Ele é executando dentro do script “/usr/bin/startkde“. Desative-o comentando a linha “ksplash –nodcop“.

Como disse a pouco, o KDE é modular, por isso é possível desativar os componentes que não queremos usar. Você poderia remover vários componentes recompilando o KDE, mas uma forma mais simples de fazer isso é simplesmente deixar que eles sejam carregados normalmente, mas matá-los em seguida usando o killall. Neste caso não reduzimos o tempo de boot, mas recuperamos a memória consumida por eles, que é nosso principal objetivo. Para isso, rode os comandos abaixo:

# killall kdesktop
# killall khotkeys
# killall knotify
# killall kded
# killall kaccess

O Kdesktop é responsável pelos ícones na área de trabalho, papel de parede e outras funções relacionadas ao desktop. Ao desativá-lo os ícones no desktop somem, mas você economiza cerca de 6 MB de memória. Uma vantagem de deixar que ele seja carregado no boot e matá-lo no final é que o pano de fundo do desktop continua definido.

O Khotkeys é responsável pelos atalhos de teclado. Ele não é tão gastador quanto o kdesktop, por isso talvez você prefira mantê-lo ativo. O knotify é responsável pelos sons e avisos do sistema. Para que ele realmente “descanse em paz” é preciso desativar todos os sons e avisos, dentro da sessão “Som & Multimídia > Notificações do sistema“, no Painel de Controle. Sem isso, ele continua sendo aberto sempre que um aplicativo gera um aviso.

O Kded monitora arquivos, dispositivos e conexões de rede. Ele é útil em algumas situações, mas por outro consome sua parcela de memória. Em casos extremos, como o nosso, é preferível mantê-lo no túmulo. Finalmente, o Kaccess é responsável pelas funções de acessibilidade do sistema, como as teclas de aderência.

Para não precisar ficar digitando tudo a cada boot, crie um script, salvando os comandos dentro de um arquivo de texto e transformando-o num executável, usando o comando “chmod +x arquivo“.

Coloque o comando que chama seu script (como “/home/tux/mata-tuto”) dentro de um ícone na pasta “/home/$USER/.kde/Autostart“, para que ele seja executado durante a abertura do KDE. É só acessar a pasta usando o Konqueror, criar um novo link para aplicativo e colocar o comando no campo “Aplicativo > Comando“.

Ao reiniciar, você verá que o consumo de memória caiu mais um pouco, para pouco menos de 29 MB:

index_inc_m61d9078d

Agora vem o toque final, que é fazer o próprio X dar também sua parcela de contribuição, abrindo mão de parte de seus módulos.

Abra o arquivo de configuração do X, o “/etc/X11/XF86Config-4” ou “/etc/X11/xorg.conf“. Dentro da seção “Module“, comente as linhas:

Load “GLcore”
Load “dbe”
Load “dri”
Load “glx”
Load “bitmap”
Load “speedo”
Load “type1”
Load “record”

Na verdade, deixamos apenas as linhas que carregam os módulos “dcc“, “extmode” e “freetype“.

As linhas que carregam os módulos GLcore, dri, dbe e glx são responsáveis por ativar o suporte 3d em placas suportadas. É improvável que você tenha uma placa 3D num Pentium antigo e mais improvável ainda que você realmente utilize algum aplicativo 3D numa configuração tão limitada. Mas, mesmo inoperante, o suporte 3D continua ativo, consumindo quase 6 MB de memória. Desativamos também algumas fontes de tela, deixando apenas as fontes TrueType, que realmente vamos utilizar.

Depois de todas estas modificações, o consumo de memória total, incluindo o X e o KDE caiu para apenas 21 MB, sendo 12 MB de memória RAM física e 9 MB de swap, usados pelo sistema para manter parte da memória RAM física disponível para carregar programas:

index_inc_m25aa5afc

Caso você esteja usando o Kurumin, ou outra distribuição personalizada, que venha com um KDE pré-configurado, e possível ganhar mais alguns kbytes de memória e reduzir o tempo de boot em alguns segundos removendo as configurações do KDE, que ficam armazenadas na pasta “/home/$USER/.kde“.

A cada boot, o KDE precisa ler todos os arquivos de configuração dentro da pasta, interpretá-los e gerar um banco de dados binário no arquivo /var/tmp/kdecache-usuario/ksycoca, que permite um acesso mais rápido às configurações.

A cada boot os arquivos de configuração são processados novamente. Ao remover a pasta com as configurações padrão e gerar uma nova configuração, contendo apenas suas personalizações, o KDE fica livre de parte deste trabalho; ele vai simplesmente usar as configurações default para a maioria das opções e ler apenas as suas configurações. Isso vai fazer com que você perca toda a personalização e fique com um KDE crú, como no Slackware, mas em troca vai ficar com o sistema um pouco mais rápido.

Desativando o anti-alising de fontes no Kcontrol, é possível reduzir mais um pouco o consumo de memória, para pouco mais de 20 MB. Mas, neste caso, com um grande prejuízo na parte visual.

Com as otimizações, temos um sistema razoavelmente responsível, mesmo em máquinas com 32 MB. A questão agora é saber usar bem os poucos recursos disponíveis, de forma a criar um ambiente produtivo.

A vantagem de usar o KDE “light” ao invés do IceWM por exemplo, é que você pode rodar aplicativos do KDE, como o Konqueror, Kmail, Kcalc, Kedit, Kword, etc. com um desempenho razoável, por os componentes básicos do KDE já estão carregados. Combine alguns aplicativos leves do KDE com aplicativos como o XMMS, o Inkscape ou até mesmo o Gimp, que são baseados na biblioteca GTK, mas não utilizam componentes do Gnome. Evite usar o Firefox, pois ele é razoavelmente pesado, prefira o Opera. Sempre que possível, use comandos e aplicativos de modo texto (como o links, mc, mcedit e mpg123) em substituição aos aplicativos gráficos e tente rodar sempre um programa gráfico por vez, para evitar usar muita memória swap.

A regra de ouro é: não use aplicativos pesados, como o OpenOffice e não use aplicativos do Gnome. Ao tentar carregar um aplicativo do Gnome você verá seu pobre Pentium 133 se arrastando para carregar uma tonelada de bibliotecas e componentes, muitas vezes travando no processo. Se precisar de uma suíte de escritório, experimente o Abiword e o Gnumeric, eles possuem bons recursos e lidam bem com arquivos do Office.

Se você prefere abrir mão dos aplicativos do KDE em troca de um pouco mais de memória, uma última opção é trocar o KDE “light” por uma interface leve. Neste caso você pode utilizar por exemplo o Sylpheed como leitor de e-mails, o Endeavour2 ou o Rox como gerenciador de arquivos e assim por diante.

Ao usar o IceWM, o consumo de memória cai mais 7 MB, ficando em torno de 14 MB. Usando o WindowMaker fica em pouco mais de 15 MB. A vida é feita de escolhas ;).

ndex_inc_1ae07d9c

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X