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.

[ Hits: 58.142 ]

Por: em 23/07/2003


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.

Página anterior     Próxima página

Páginas do artigo
   1. Recompilar!?
   2. Antigamente....
   3. Hoje em dia
   4. Conclusão
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Compilação e instalação do kernel 2.6.xx no Slackware

Aplicando o patch do grsecurity no kernel 2.4

Como explicar o que é kernel para um leigo

ReactOS: O irmão open-source do Microsoft Windows NT 4.0

Kernel 2.6 hacks

  
Comentários
[1] Comentário enviado por fabio em 23/07/2003 - 03:40h

Muito bom esse artigo! Por coincidência eu e o Cesar Cardoso estávamos conversando sobre esse assunto e no mesmo dia ele me aparece publicado aqui no Viva o Linux :)

Esse final de semana mesmo compilei os módulos do driver da nVidia sem recompilar o kernel no Debian.

[]'s

[2] Comentário enviado por arknoid em 23/07/2003 - 13:15h

Ãcho que se o cara não sabe o que está fazendo nem deve pensar em se aventurar pelo kernel...
Além de ser bem complicado de compilar, você terá inúmeras chances de que seu kernel novo não irá funcionar e, se for principiante pode perder seu kernel antigo e ai meu amigo não é bom nem pensar!!!

[3] Comentário enviado por diogojp em 23/07/2003 - 15:52h

Qual a diferença de kernel-source e kernel-headers ??

[4] Comentário enviado por jllucca em 24/07/2003 - 17:09h

me corrijam se estiver errado. Digojp, kernel-source são os arquivos com o codigo fonte do
kernel e kernel-headers seriam as bibliotecas que tu precisa para compilar os fontes.

[5] Comentário enviado por cesarcardoso em 25/07/2003 - 20:33h

Dando um apanhado geral:

o Morimoto anda se achando desde que o Kurumin fez sucesso e anda meio troll, mas o artigo levanta uma discussão realmente interessante.

Se você utiliza uma distro que patcheia fortemente o kernel (Mandrake) ou então o RedHat 9 e seu patch NPTL (fantástico! esperem e verão no kernel 2.6, especialmente o povo de DB e Java), realmente é melhor não arriscar muito, claro, partindo do princípio que você não vai ter necessidades especiais (ex. rodar Oracle). Fora isso...

jlucca: kernel-source é o fonte do kernel e o erroneamente chamado kernel-headers (que a RedHat renomeou como glibc-kernheaders) serve para compilar os programas do userland.

[6] Comentário enviado por zethayon em 16/09/2003 - 23:54h

Acredito eu que quanto mais atualizado seu kernel melhor disposicao tera seu OS, sendo assim se vc tem novos patchs, drivers e ateh mesmo modificacoes rotineiras que exigem veracidade e lealdade do OS em questao vc num acha que vala a pena recompliar sempre que possivel... pense nisso!

[7] Comentário enviado por toor em 24/09/2003 - 10:23h

Acaso voces sao cobardes? Quem ñao compila o seu proprio kernel é um completo billy! E uma cuestiao de orgullo.

Acho que se o cara não sabe o que está fazendo deve pensar em dar uma olhada a Kernel-HOWTO, caso encontrar muito complicado, vai com o billy.

[8] Comentário enviado por toor em 24/09/2003 - 10:28h

Acho que se o cara não sabe o que está fazendo deve pensar em dar uma olhada a Kernel-HOWTO, caso encontrar muito complicado, vai com o billy :)


[9] Comentário enviado por linuxlive em 18/02/2004 - 09:12h

Quando recompilar o Kernel 2.6 tem que tomar cuidado, pois adependendo da maquina no final ele dá um erro, que nem aparece direito, mas ele não deixa o linux gravar em NTFS, mas sim, apenas ler.

[10] Comentário enviado por vpf em 06/04/2004 - 17:14h

Concordo com o artigo, só se deve recompilar um kernel quando for um caso de extrema necessidade.

[11] Comentário enviado por removido em 08/08/2004 - 21:57h

Quasi sempre é posivel sair adiante sem recompilar o kernel.

:)

[12] Comentário enviado por mfscher em 11/08/2004 - 09:28h

Eu penso o seguinte: Quem está afim de recompilar o kernel, recompila hora... Se aprende muitas coisas com isso. E nada melhor do que conhecer melhor o bichinho q a gnt mexe todos dias. E também cada um faz o que bem intende com seu pc, sendo que na pior das hipóteses o cara vai ter que reinstalar o linux (com o tempo se aprende umas táticas para evitar isso ;-) ) Soh não façam o primeiro teste no servidor da firma... hehehe
Mas tai minha opinião. Pra começar, se guiem pelos tuturiais existentes na net e comecem recompilando o kernel existente... e mãos a obra!!! o meu ficou legauzinho... ;-)

[13] Comentário enviado por dfpereira em 16/08/2004 - 13:10h

Concordo com o mfscher, acho que quanto mais se mexer com Linux, (entre acertos e erros) mais podemos aprender sobre este poderoso e verdadeiro Sistema Operacional!!

:)

[14] Comentário enviado por removido em 01/09/2004 - 11:24h

Bom artigo! Gostei da frase "na primeira metade da última década do milênio passado" hehehe! Na minha vida linux, precisei recompilar o kernel poucas vezes... esse negócio de módulos funciona muito bem!

[15] Comentário enviado por sirdata em 18/12/2004 - 09:54h

Cara esse artigo viajou na maionese, sera que esse cara sabe o que e um sistema.
Voce pode ater te o linux normal sem a compilação do kernel ou com a compilação original mas quem garante que a quela compilação que voce tem e a mesma do vonte que vem com a distro, e outra quando voce tem o kernel não compilado ou precompilado voce tem um monte de gancho nao são so granchos são como verificação de modulos e isto custa tempo para o processador, tempo esse que atrapalha toma tempo de timeslice do processador para verificar se o modulo esta ativado ou não assim mesmo tem muitos perifericos no kernel que não vem compilados para modulos e tem muitas coisas ativadas que não são necessarias.
Cara eu sempre compilei os meus kernels e eles sempre ficão mais rapidos, as vezes que trabalhei com modulos a maioria das vezes deu problema em modulos carregados ou demora para carregalos sem contar que sobrecarrega a memoria com os modulos o que se estiver compilado junto ao kernel ocupa muito menos e o endereçamento e real e não por referencia como no modo de modulos.
Sempre obitive performace superior quando compilo o kernel.
O pessoal que não o sabe fazer não o faça ou pelo menos procura como fazer sem destruir o seu original.
Eu costumo fazer o seguinte nos computadores dos clientes que eu monto instalo o linux e configuro o kernel de acordo com o que tem na maquina e coloco modulos apenas em coisas que ele possa utilizar tipo drives de USB e impressoras mas os de placa mae e video eu costumo ativar pelo kernel mesmo assim fica sem tantos ifs.
So para comparar o Mandrake 10,9 e Conectiva 10,9 funciona com o kernel não compilado em uma maquina pentium3 550 com tudo on-borde parecendo uma carrosa parece que voce ta mexendo com um windows 98 em um 486 dx 66, ja o mesmo sistema com o kernel compilado com apenas o que tem na maquina roda perfeito como se voce tivese com um windows 98 em um pentium 3 450, eu so baixei essa velocidade porque estas duas distribuições são um lixo costumo utilizar slackware ou quando to com tempo monto eu mesmo a minha distro.

[16] Comentário enviado por pogo em 21/12/2004 - 12:58h

também sempre compilei os meus próprios kernels... e sempre achei que eles ficavam mais rápidos que o "padrão" da distro.... na minha opinião, recompilar o kernel ainda é necessário sim...

[17] Comentário enviado por jvictorfc em 25/12/2004 - 18:33h

Não querendo desmerecer os meritos do colega, porem eu achei esse artigo mto bom COMO um antidoto de amedrontamento para quem estar começando no linux, e se assustou "como eu" ao escutar falar em recompilar kernel.. heiuehiuhe que coisa lokaaaa! porem com certeza é bastante necessário.. como eu ativo por ex meu hd SATA em um kernel da serie 2.4? nao tem como.. Inevitável a recompilação do kernel! e sim.. é notavel o aumento de performace.. agora uma coisa é verdade.. muita coisa como softmodems, nao necessitam mais obrigatoriamente disto.. porem uma penca de melhorias é são notadas com a recompilação do kernel!

[18] Comentário enviado por mapelli0 em 25/02/2005 - 23:08h

eu tb prefiro recompilar o Kernel, primeiro por que se aprende muito fazendo isso, segundo que eu tb concordo com a velocidade, como disseram antes, o enderecamento real é bem mais rapido que o gancho dos módulos e outra coisa o erro na recompilacao que disseram é por que não foi ativado a gravacao no sistema NTFS, e particularmente prefiro assim, se vc verificar na descricao do modulo verá que não é "aconselhado" a gravacao, por isso fica destivado

[19] Comentário enviado por marcosbj em 27/01/2006 - 16:16h

haha, a discussão acabou no "compilar ou não compilar, eis a questão".

Besteira discutir isso ou falar que fulano não sabe isso ou fulano é aquilo...

o artigo é muito bom para quem optou por não compilar ou recompilar o kernel. Já aqueles que querem fazer isso (eu, por exemplo) devem aprender como fazer e depois meter a cara. Se não funcionar, faz de novo, até dar certo. Quem quer compilar, queo faça. Quem quer trabalhar com módulos, que bom! Liberdade de escolha, não é esse o centro de nossa filosofia GNU/Linux?

[20] Comentário enviado por ranzes em 23/06/2006 - 15:45h

O fato de se fazer ou não a compilação vai além de uso particular do sistema, pois existe X váriaveis que determinam se é ou não necessário a compilação do Kernel.
Para ter uma ideia:
em um sistema de Firewall não é recomendável criar um Kernel com suporte a Modulos , pois existem RootKits e Backdoors baseados em modulos aí o interessante nestes casos é fazer um Kernel Monolitico (sem suporte à Modulo.) em outros casos é importante o uso de modulos , pois alguns tipos de sistemas de Redundância precisam que modulos sejam carregados ou descarregados pelo sistema.
Em outros casos Precisamos compilar por necessidade de inserir uma nova Patch ou um novo serviço diretamente no kernel, enfim a necessidade ou não depende de como e onde será implementado o sistema e como será usado.
Para os novatos , obviamente não é interessante (ainda) se aventura no nucleo do sistema podendo realmente torna-lo instavel ou mesmo inoperante.
bem pessoalmente faço eu mesmo faço meu kernel da minha forma cabe a cada um de nós escolher-mos a melhor forma e viabilidade de
utilização sem comprometer o sistema.
cabe a cada um escolher o que lhe convém.

[21] Comentário enviado por jalexandre em 09/08/2006 - 15:26h

Recompilar o Kernel? Isso ainda existe??
Resposta: Existe, e sempre vai existir. Sabe o motivo?
Qualidade, velocidade, customização, necessidade!
Tem casos simples, como o kernel pré-emptivo para estações multimídia (kernel de baixa latência), até casos especificos, como instalações de softwares comerciais, tunning de banco de dados e servidores.
O cara que quer trabalhar profissionalmente com linux e não conhece os meandros da compilação de kernel, e nem procura conhecer, será um profissional de qualidade questionável.
Para quem acha que vale a pena conhecer um pouco mais do assunto, segue um artigo bacana do nosso amigo cvs:
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=731

[22] Comentário enviado por d1060 em 02/11/2006 - 17:07h

eu que sou usuario dekstop realmente num preciso de ficar recompilando meu kernel. vou fazer isso so por curiosidade. sem recompilar eu configurei quase tdo e ate agora num tive nenhum problema q exigisse a recompilaçao.

muito bem escrito o artigo, gostei, mas reitero talvez faça a compilaçao so pra nao dizer q nunk fiz. =P

[23] Comentário enviado por alexlucena em 17/01/2007 - 16:20h

eh liberdade de escolha
se o cara quer recompilar o kernel ou nao eh uma escolha q ele tem q fazer :P

muito bom o topico :)

[24] Comentário enviado por ellinux em 22/01/2007 - 13:09h

Minha opinião é a mesma do TOOR !!!!!

quem não ta nem ai pro sistema, td bem, é melhor usar o mais fácil...
agora quem quer uma máquina realmente cutomizável e de boa performance, tem q futucar...aprender !!!!!!

[25] Comentário enviado por duda_syn em 01/02/2007 - 17:56h

Po pra quem tem dessas "mega máquinas" de varios gigas de memoria e hd gigantesco, até vale deixar o kernel cheio de porcarias q vc não usa.. mas pra quem tem um humilde k6 com 128 de ram hd de 10 g ajuda muito sim, eu qd recompilo meu kernel meu linux fica mais estável e rápido, já tomei vários "kernel panic" na vida, mas aprendi muitoooo msm.. compilar é a boa.. rs

[26] Comentário enviado por Sryche em 10/03/2007 - 05:10h

Bom, eu realmente ainda não sei compilar Kernel, mas valendo-me da minha "experiência" em C++, percebo que realmente compilar qualquer coisa aumenta o desempenho dela.
Porque? Sempre que você compila algo, o compilador gera instruções próprias para sua máquina, e isso é bom, já que aumenta a velocidade que o programa utiliza as instruções.
De qualquer maneira, quem tem mais de 512 de memória e deseja aprender, eu recomendo utilizar o VMware, utilizando o Kurumin(no site eles disponibilizam uma Vmachine já criada, aí é só rodar o player), ou alguma outra distro, caso você deseje.
A vantagem? Se der algum problema você tem tudo salvo =]

[27] Comentário enviado por zaratustro em 04/10/2008 - 13:51h

Porra nenhuma, está tudo na mão do Linus.

[28] Comentário enviado por mfs em 17/07/2010 - 14:01h

Se começarmos a nos afastar das coisas que garantem a nossa autonomia sobre o Linux, como recompilar o kernel e compilar pacotes no braço ao invés de pacotes auto-instalaveis como os .deb, vamos acabar nos tornando que nem o Windows, onde tudo é feito automaticamente, sem que a gente nem saiba o que tá acontecendo.

[29] Comentário enviado por miguel arcanjo3 em 12/08/2011 - 16:53h

estou tendo problemas com o gcc, posso simplesmente actualiza-lo ou tenho que actualizar o Kernel


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts