Dicas Linux - Como usar o KDE em micros com pouca memória RAM???
Como usar o KDE em micros com pouca
memória RAM???
Por Carlos E. Morimoto - Guia do Hardware.net - http://www.guiadohardware.net
Diz
a crença popular que o Linux pode ser configurado para rodar rápido mesmo em máquinas
antigas. Isto não é mais verdadeiro em muitas distribuições atuais. Mas, com
um pouco de paciência, é possível ter bons resultados, mesmo em micros com 32
MB. Este artigo ensina como otimizar o KDE para ser usado em micros com 32 MB:
com as otimizações, é possível deixá-lo consumindo apenas 22 MB de memória
durante o boot.
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.
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:
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:
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 1024x768 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.
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:
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:
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...
|