Recompilar o Kernel? Isso ainda existe??
Muitas pessoas se perguntam: ainda é necessário recompilar o kernel? Com isso eu terei um desempenho melhor do meu micro?! Neste artigo vocês conferem as lendas e as verdades sobre a recompilação do kernel.
Parte 3: Hoje em dia
Cada dispositivo de hardware, cada sistema de arquivos ou mesmo coisas
como o iptables é representado por um módulo. Estes módulos podem ser
carregados e descarregados conforme necessário. Quando estão
descarregados eles não são nada mais do que inóculos arquivos dentro da
pasta /lib/modules do HD. É pra isso que servem os comandos
modprobe (carrega um módulo) e modprobe -r (descarrega um
módulo).
As distribuições incluem quase todos os componentes na forma de módulos. Apenas alguns destes módulos são necessários na sua máquina (o Kernel 2.4 inclui uns 100 módulos diferentes para placas de som, mas você só vai usar um deles). Como disse, os módulos que não estão sendo usados ficam repousando na forma de inocentes arquivos no HD, apenas ocupando espaço. Se eles são arquivo, significa que você pode deixar pra instalar alguns deles só quando precisar, assim nem espaço eles vão ocupar.
Se você precisar usar o iptables, que é o firewall titular do Linux, você precisaria apenas instalar o pacote com o módulo correspondente. Se você estiver no Mandrake usaria o comando "urpmi iptables", se estivesse no Debian ou Kurumin daria um "apt-get install iptables" e assim por diante. Não é preciso recompilar o Kernel, você só precisa instalar o arquivo. Rápido e limpo.
O mesmo acontece se você precisar instalar um softmodem ou os drivers da nVidia por exemplo. Você poderia ou pegar um pacote com um módulo já compilado para a sua distribuição ou baixar aquele pacote genérico e deixar que o instalador gere um módulo adequado para o seu Kernel. De qualquer forma ele irá gerar apenas o módulo e não sair recompilando o Kernel inteiro.
A exigência neste caso é que você precisará ter instalados no seu micro os pacotes kernel-source e kernel-headers, que incluem o código-fonte do Kernel da sua máquina, que o instalador usará para se orientar na hora de gerar o módulo.
A única grande limitação que ainda existe neste sentido é que, salvo coincidências, um módulo gerado para uma certa versão do Kernel não vai funcionar em outra. É por isso que aquele pacote com o driver do modem Lucent feito para o Red Hat 8.0 não vai funcionar no Mandrake 9.1. É preciso que o pacote seja específico para a distribuição que você estiver usando.
Hoje em dia você só vai precisar se aventurar a compilar um Kernel se quiser testar as versões de desenvolvimento, que não são muito recomendáveis de qualquer forma por incluírem novos recursos que não foram bem testados.
Existe um mito de que recompilar o Kernel deixa o sistema mais rápido, que é falso hoje em dia. Basta pensar um pouco: se já ficam carregados na memória apenas os módulos que estão sendo usados, que diferença faz recompilar o Kernel retirando um monte de módulos que não serão usados de qualquer forma? Se o objetivo é economizar espaço no HD seria muito mais prático simplesmente entrar na pasta /lib/modules e sair apagando os arquivos dos módulos que não estão sendo usados.
As distribuições incluem quase todos os componentes na forma de módulos. Apenas alguns destes módulos são necessários na sua máquina (o Kernel 2.4 inclui uns 100 módulos diferentes para placas de som, mas você só vai usar um deles). Como disse, os módulos que não estão sendo usados ficam repousando na forma de inocentes arquivos no HD, apenas ocupando espaço. Se eles são arquivo, significa que você pode deixar pra instalar alguns deles só quando precisar, assim nem espaço eles vão ocupar.
Se você precisar usar o iptables, que é o firewall titular do Linux, você precisaria apenas instalar o pacote com o módulo correspondente. Se você estiver no Mandrake usaria o comando "urpmi iptables", se estivesse no Debian ou Kurumin daria um "apt-get install iptables" e assim por diante. Não é preciso recompilar o Kernel, você só precisa instalar o arquivo. Rápido e limpo.
O mesmo acontece se você precisar instalar um softmodem ou os drivers da nVidia por exemplo. Você poderia ou pegar um pacote com um módulo já compilado para a sua distribuição ou baixar aquele pacote genérico e deixar que o instalador gere um módulo adequado para o seu Kernel. De qualquer forma ele irá gerar apenas o módulo e não sair recompilando o Kernel inteiro.
A exigência neste caso é que você precisará ter instalados no seu micro os pacotes kernel-source e kernel-headers, que incluem o código-fonte do Kernel da sua máquina, que o instalador usará para se orientar na hora de gerar o módulo.
A única grande limitação que ainda existe neste sentido é que, salvo coincidências, um módulo gerado para uma certa versão do Kernel não vai funcionar em outra. É por isso que aquele pacote com o driver do modem Lucent feito para o Red Hat 8.0 não vai funcionar no Mandrake 9.1. É preciso que o pacote seja específico para a distribuição que você estiver usando.
Hoje em dia você só vai precisar se aventurar a compilar um Kernel se quiser testar as versões de desenvolvimento, que não são muito recomendáveis de qualquer forma por incluírem novos recursos que não foram bem testados.
Existe um mito de que recompilar o Kernel deixa o sistema mais rápido, que é falso hoje em dia. Basta pensar um pouco: se já ficam carregados na memória apenas os módulos que estão sendo usados, que diferença faz recompilar o Kernel retirando um monte de módulos que não serão usados de qualquer forma? Se o objetivo é economizar espaço no HD seria muito mais prático simplesmente entrar na pasta /lib/modules e sair apagando os arquivos dos módulos que não estão sendo usados.
Esse final de semana mesmo compilei os módulos do driver da nVidia sem recompilar o kernel no Debian.
[]'s