Recompilar o kernel p/ deixar mais rápido?

Iniciado por mig_akira, 11 de Setembro de 2007, 19:17

tópico anterior - próximo tópico

mig_akira

Olá pessoal!

Vi que tem gente que recompila o kernel para deixar o PC mais rápido, seja porque é uma versão mais nova, ou uma versão específica pro PC dele, ou algo assim.

Sou iniciante e não entendo disso, mas existe algum tutorial simples pra recompilar o kernel pra máquina ficar mais leve? De preferencia dizendo pra que serve cada etapa, etc.

Valeu!

pinduvoz

Pelo que eu li a respeito, compilar o Kernel deixava a máquina mais rápida no tempo em que o Kernel erá "monolítico", ou seja, antes da invenção dos módulos de Kernel.

Explicando: antes dos módulos, cada rotina de suporte a hardware era adicionada ao próprio Kernel; após, ela passa a constituir um módulo que é carregado pelo Kernel se e quando necessário.

Apesar do que eu disse acima, ainda vejo adeptos da sua idéia de que recompilar o Kernel melhora a velocidade do sistema e gostaria de conhecer a opinião dos freqüentadores do Fórum sobre o assunto.

Estou aguardando as respostas a este tópico, portanto.

[]s.

:: Linux Registered User nº 439378 ::

celsofaf

Você pode ter algum ganho de desempenho ao compilar seu kernel talvez não pela compilação em si (o ganho aí não é expressivo), mas sim por retirar do kernel coisas que você não usa. Por exemplo, se não possui placa de rede sem fio, bluetooth, pcmcia etc, se não necessita acessar sistemas de arquivos além dos usuais (fat32, ext3, reiserfs...), etc etc (só para citar algumas coisas), então você certamente se beneficiará com a remoção da gordura extra. Porém, é preciso ter o cuidado de não mexer com o que não sabe.

Qualquer tutorial que diga como compilar o kernel vai te apontar para um programinha específico para essa tarefa. Neste programa você marca o que quer manter no kernel e o que quer tirar fora. É bastante explicativo e detalhado, tem ajuda até. Mas requer uma boa dose de paciência inicial, pela quantidade de opções disponíveis.

Boa sorte!
Rio de Janeiro, RJ, Brasil

BetinhoDJ

Com o desenvolvimento atual do kernel o ganho de desempenho é praticamente imperceptivel.
Como disse o colega celsofaf o ganho que você terá será mais pela personalização do kernel. Deixando ativos apenas os dispositivos que você realmente usa o boot ficará mais rapido e logicamente as chances de algum bug diminuem ja que você vai reduzir a quantidade de dispositivos que o kernel irá carregar.
A experiência irá valer a pena mais pelo aprendizado do que pelo ganho de desempenho. Eu recomendo.

Vivendo e Aprendendo!!

RodrigoFSS

#4
Beleza pessoal!!!
Eu sou um dos "adeptos" da compilação do Kernel... hehehehe
Existe SIM um ganho de desempenho quando você compila o Kernel de acordo com a arquitetura da sua máquina. Como os amigos pinduvoz, celsofaf e BetinhoDJ disseram, o ganho no desempenho está no fato de você "enxugar" o seu Kernel o máximo possível para evitar o carregamento de módulos desnecessários. Com isso o tempo de boot, velocidade de abertura de arquivos e aplicativos melhora bastante e é realmente perceptível.
Outra dado importante na compilação do Kernel está na habilitação ou não de módulos que melhoram o desempenho geral do sistema. Podemos destacar o tipo de alocador de memória, arquitetura do processador, habilitação ou não do MTRR e APIC dentre outros "opcionais" que não vem habilitados por DEFAULT. ;D
O BOM conhecimeto que o usuário tem do seu sistema (hardware e software) é de extrema importância na compilação. Esse BOM conhecimento irá lhe proporcionar as ferramentas necessárias para a habilitação ou não de módulos que otimizem o seu sistema como um todo, afinal, esse é um dos motivos que nos levam a compilar um Kernel. Sem esse BOM conhecimento o resultado final pode não ser tão bom e a melhora de desempenho imperceptível.
Outra coisa MUITO IMPORTANTE que o amigo BetinhoDJ disse e que eu assino em baixo seria o ganho de conhecimento que a compilação do Kernel irá lhe proporcionar!!! Eu como estudante de Medicina Veterinária ( nada haver com informática... hehehehe) e usuário iniciante GNU/Linux, aprendí MUITO compilando o meu Kernel.
Obrigado pela atenção pessoal e abraço a todos!!!

mailson

E quais seriam as chances de isso dar errado? Eu digo isso porque meu amigo disso que foi um parto quando ele compilou o kernel dele (isso a uns 3 anos atrás usando o slackware) porque deu um Kernel Panic 3 vezes e nas 3 vezes ele teve que reinstalar o sistema.
Hoje em dia o risco de fazer alguma caca no sistema ainda é alto ou a ajuda é muito bem explicada que não deixa você fazer isso?

adri3d

e quanto a instalar um kernel adequado a arquitetura especifica(686,k7)
existe um ganho de desempenho se comparado com o generic ?


adriano@adriano-notebook:~$ sudo apt-get install linux-image-2.6
linux-image-2.6                linux-image-2.6.22-11-generic
linux-image-2.6.15-23-386      linux-image-2.6.22-11-rt
linux-image-2.6.15-23-686      linux-image-2.6.22-11-server
linux-image-2.6.15-23-k7       linux-image-2.6.22-11-ume
linux-image-2.6.20-15-generic  linux-image-2.6.22-11-xen
linux-image-2.6.20-16-generic  linux-image-2.6-386
linux-image-2.6.22-11-386   

RodrigoFSS

#7
Beleza pessoal !!!
Grande mailson, beleza...!!! A chance de fazer "caca" ao compilar o Kernel de forma errada e sem o devido conhecimento do hardware e software presente, é ainda MUITO GRANDE!!!
Mesmo utilizando o configurador gráfico do Kernel, ele não lhe informará se a remoção de um determinado módulo poderá ou não ocasionar o famoso KERNEL PANIC. Na compilação do Kernel o configurador gráfico apenas informa (de forma bastante técnica) o que o módulo faz. Essa informação, na maioria absoluta das vezes, é bastante superficial e incompleta, por isso o conhecimento do seu soft e hardware é tão importante. Infelizmente, a remoção de algum módulo crítico ao funcionamento do sistema, vai causar falhas graves no seu S.O., como infelizmente aconteceu com o seu amigo.
Beleza adri3d!!! Eu nunca fiz dessa forma, eu sempre baixo o Kernel do site  (www.kernel.org) e compilo de acordo com a arquitetura do meu pc. Não sei se o ganho de desempenho, ao se instalar um novo Kernel apenas otimizado para a arquitetura do seu computador, lhe trará grandes melhoras. O ganho de desempenho está também na remoção de módulos desnecessários ao funcionamento do seu sistema. Essa remoção vai ocasionar uma redução no risco de falhas (afinal, apenas os módulos necessários estão habilitados e serão "carregados"), um menor consumo de memória e uma otimização geral na abertura e utilização de aplicativos. Enfim... eu infelizmente não posso te dar uma resposta definitiva a respeito da existência ou não de alguma melhora. Na teoria, irá melhorar sim, mas o quanto e se vale a pena, eu infelizmente não sei.
Com certeza alguem aquí do forum já fez dessa forma e poderia nos informar se houve ou não melhora no desempenho. É só aguardar...  ;D
Abraço pessoal !!!

BetinhoDJ

Eu tenho no meu Ubuntu Feisty o Kernel 2.6.22 compilado da forma como o RodrigoFSS disse.... baixado do kernel.org e compilado para a minha plataforma e apenas com os dispositivos que eu uso ativados.
A melhora que eu obtive foi exatamente a que eu ja citei... tempo de boot melhorado sensivelmente e isso também em parte pela remoção do boot splash e consumo de memória reduzido devido ao menor carregamento de modulos pelo sistema. Isso acaba por gerar uma pequena melhora no desempenho geral pelo fato de que ha mais memoria disponivel para o sistema, mas no geral o desempenho não mudou praticamente nada em comparação com o kernel generic do Ubuntu.
Inclusive ja ouvi comentários sobre o kernel generic do Ubuntu ser mais chegado na plataforma Intel do que na AMD. Aqui minha plataforma é Intel e todas as versões do Ubuntu que usei funcionaram com excelente desempenho, mas conheço pessoas que usam na plataforma AMD com o mesmo bom desempenho então não sei até que ponto essa informação seja valida.
Mas continuo achando que é uma experiência absolutamente válida pelo aprendizado que se tem sobre as particularidades do sistema. Vale a pena mesmo que não de muito certo na primeira vez. Afinal é errando que se aprende.

Vivendo e Aprendendo!!

mig_akira

Estou pensando em instalar um outro ubuntu em outra partição apenas pra testar a compilação, pra nao ferrar o meu SO principal. Existem sites que mostram pra que serve cada módulo, pra eu não precisar fazer isso no escuro? Seria interessante imprimir isso também pra deixar guardado!

Valeu!

tfmoraes

Cara, quando você compila um novo kernel ele não sobrescreverá o antigo kernel, a não ser que você queira, você pode vários kerneis compilados no seu sistema, se um der kernel-panic, escolha outro para iniciar.