Compilar kernel: Quais as vantagens e desvantagens?

Iniciado por brunofin, 11 de Novembro de 2008, 20:43

tópico anterior - próximo tópico

brunofin

Olá! De vez em quando eu vejo alguém falando por aí que compilar a sua própria Kernel do sistema é muito bom, mas nunca falam o por que disso, nem as vantagens e desvantagens. Agora eu tava pensando em compilar a kernel para ver como é, e ver se realmente faz diferença. Gostaria de saber quais as vantagens e desvantagens de fazer isso, e se realmente valer a pena vou dar uma pesquisada como se faz isso.
Desenvolvedor full-stack Web - Django, AngularJS, ExtJS.
Meu canal do YouTube

Felix

Geralmente se compila o kernel para deixar ele só com o que precisa mesmo. Isso deixa o sistema mais rápido, também se compila quando o mesmo se torna obsoleto, ou por questão de compatibilidade com hardware, mas deve-se tomar muito cuidado, qualquer coisa errada e algum driver pode deixar de funcionar, ou todo o sistema.

Alakazan

Também dá para compilar os programas individualmente...
Quanto tempo leva pra compilar o Kernel?
PC é como ar-condicionado: é só abrir Windows que ele para de funcionar.
Tentando ser melhor - desculpem o incômodo!

Felix

Citação de: Alakazan online 11 de Novembro de 2008, 21:22
Também dá para compilar os programas individualmente...
Quanto tempo leva pra compilar o Kernel?

Muito relativo.. depende da máquina em si, mas com certeza não é rápido

Polaco

#4
As vantagens são que se você souber o que está fazendo, pode obter um pequeno ganho de desempenho em algumas situações, e aprende-se bastante sobre o sistema para poder configurar de uma maneira correta e fazer uma boa compilação.

Sobre as desvantagens, dá pra se dizer que perde-se um tempão e caso você erre em alguma opção pode obter um desempenho pior do que tinha anteriormente, ou então ter o seu sistema literalmente inoperante por alguma opção ou driver esquecido durante o processo, sem falar que dependendo a máquina pode-se levar mais de duas horas para completar todo o processo, e ainda assim, provavelmente você terá que repeti-lo mais de uma vez até pegar o jeito.

Minha opinião é que compilar o kernel já foi algo bem vantajoso num passado distante, onde a detecção de hardware do nosso sistema era quase inexistente e para cada driver e/ou a placa éramos obrigados a fazer esse processo tedioso, atualmente eu não vejo vantagens práticas, fora o efeito placebo que acontece após tudo terminado a gente achar que o sistema está muito mais rápido ou algo assim.

Outra vantagem é que pode massagear o nosso ego, pode ser prazeroso dizer algo como "eu compilei essa versão 2.xx do kernel especialmente para o meu hardware, meu computador está voando agora!". :)
Ubuntu 10.04 x64 @ Dell Optiplex 740

brunofin

Citação de: Polaco online 11 de Novembro de 2008, 21:39
Outra vantagem é que pode massagear o nosso ego, pode ser prazeroso dizer algo como "eu compilei essa versão 2.xx do kernel especialmente para o meu hardware, meu computador está voando agora!". :)

Hahah isso com cereteza! ;D
Bom isso respondeu minha dúvida. Eu tenho bastante interesse em aprender a fundo como o Linux funciona, mas acho que vou deixar isso pra depois, quando eu tiver mais noção de como funciona programação de baixo nível essas coisas.
Obrigado pelas respostas!
Desenvolvedor full-stack Web - Django, AngularJS, ExtJS.
Meu canal do YouTube

Hqxriven

Vantagens

Acréscimo de funcionalidades interessantes ao kernel através de patches Vou citar alguns.


Desempenho
------------------

BFQ i/o sheduler - Baseado no CFQ é um i/o sheduler interessante e possivelmente haverá a união de ambos... http://algo.ing.unimo.it/people/paolo/disk_sched/ utilizado pelo Zen kernel do fórum gentoo.

Fast Boot (melhora da velocidade do boot disponível em patches para a série 2.6.27 e possivelmente estará na oficial 2.6.28 - se é que já não está, usado pelo Mandriva 2009 para ter um boot mais rápido)

Compcache (de tão interessante é usado agora no Ubuntu 8.10 tem um novo gerenciador de memória o tlsf que é mais eficiente que o slub) http://code.google.com/p/compcache/

Relatime - http://wiki.mandriva.com/pt/Mandriva_Linux_2008_Notes#Opera.C3.A7.C3.B5es_mais_r.C3.A1pidas_nas_parti.C3.A7.C3.B5es

Por padrão, o instalador configura sistema de arquivos para usar a opção relatime. Essa opção reduz drasticamente a quantidade de I/O utilizada pelo sistema na data de acesso de atualização quando um arquivo é lido ou quando um diretório é navegado. Assim o carregamento de máquinas desktop e servidor é drasticamente reduzido e muitas tarefas de I/O são concluídas mais rapidamente.

O Mandriva colocou por padrão o relatime, o Pardus também e o Fedora também... (e o debian lenny permite em sua instalação escolher o relatime nas partições e o ubuntu a partir da versão 8.04 começou a utilizar também...)

Readahead ext3 - melhora da cache utilizada pelo ext3 na leitura de dados...

Correção de problemas devido a determinadas configurações

Problemas...
---------------

Pnp bios off - Evitar problemas de detecção pnp pela bios

Boot video if break - utilizado para que o kernel não permita que o usuário escolha uma resolução ruim e caso automaticamente a detecção normal da resolução do vídeo falhe ao invés do usuário ficar na tela preta o sistema usará uma resolução que funcione (usado no Mandriva 2009)

Utilização de um kernel mais estável sem utilizações de patches instáveis do git (como o ubuntu anda fazendo)


Possibilidade de ter um kernel recente que suporte hardware recente em uma distribuição com kernel mais antigo.

Diminuição da latência do kernel melhorando a performance nos desktops.

Possibilidade de corrigir erros dos devs em uma configuração mal feita de kernel como aconteceu no Ubuntu 8.04 com a opção user-sched que eu mesmo falei no fórum...

Melhora da segurança (patches grsecurity e até ampliar o funcionamento do iptables, apparmor, etc)

Melhora do suporte ao áudio com a inclusão de novas versões do alsa... suporte wireless...

Correção de bugs desde que vc saiba o que está fazendo...

Desvantagens
------------------

Perda de tempo enorme até vc começar a não fazer besteiras... Muito tempo lendo procurando informações interessantes sobre isso... e possibilidade de nem conseguir fazer um bom trabalho resultando em perda de performance...

Agora compilar por compilar sem acrescentar nada, para tirar o que vc não sabe o que é... não adianta nada mesmo... Não vale a pena...
Sem distro Linux fixa - Kernel Omnislash
Meu objetivo nesse fórum é ajudar. Sou um mero humano mas desejo sempre aprender e melhorar em tudo o que faço em minha vida. Então, por favor, quando eu postar me notifique depois

havocz

Citação de: Felix online 11 de Novembro de 2008, 21:24
Muito relativo.. depende da máquina em si, mas com certeza não é rápido

Em máquinas com um núcleo leva + ou - de 60  a 30 min

já nos dual-core, usando make -j2 : de 25 a 15 min

num quad-core (sim, já testei): 5 a 4 minutos !
°v°
/( )\\ Linux User #433307
^ ^   Debian 7

Felix

Citação de: havocz online 12 de Novembro de 2008, 06:42
Citação de: Felix online 11 de Novembro de 2008, 21:24
Muito relativo.. depende da máquina em si, mas com certeza não é rápido

Em máquinas com um núcleo leva + ou - de 60  a 30 min

já nos dual-core, usando make -j2 : de 25 a 15 min

num quad-core (sim, já testei): 5 a 4 minutos !

4 ou 5 minutos??? Só não vou gritar "seis" porque ainda não tive tal experiência... mas que me surpreendi, isso eu garanto que sim

yzarc

como fica a questao dos updates do ubuntu quando vc tem um kernel personalizado?
; Linux is almost there!

Hqxriven

A questão da atualização geralmente não exige muito tempo... Se por exemplo eu crio um kernel cheio de patches eu faço isso na release original do kernel e deixo de incluir o patch de atualização e guardo ele em um local específico e conforme forem saindo as atualizações no kernel.org eu vou atualizando...

E também ficar atento aos bugs que afetam as versões de kernel e determinadas configurações usadas...

2h30 por semana já dá para fazer isso...

Sem distro Linux fixa - Kernel Omnislash
Meu objetivo nesse fórum é ajudar. Sou um mero humano mas desejo sempre aprender e melhorar em tudo o que faço em minha vida. Então, por favor, quando eu postar me notifique depois

felipeborges

Citação de: Hqxriven online 12 de Novembro de 2008, 12:06
2h30 por semana já dá para fazer isso...

Só isso? Surpreendente pela qualidade do seu kernel, aprecio bastante seu trabalho e uso seu kernel no Ubuntu e no Debian.

Legal!  :)
Meu blog sobre GNU/Linux
Debian Lenny e Gentoo.

Hqxriven

CitarSó isso? Surpreendente pela qualidade do seu kernel, aprecio bastante seu trabalho e uso seu kernel no Ubuntu e no Debian.

Legal!

É pq estou fico atento a mudanças feitas no kernel em algumas distribuições... aí facilita o meu lado!!

Agora 2h30m é para compilar e deixar funcionando com nvidia instalada e o modem - quer dizer apenas a atualização - pq depois eu tenho que testar por um bom tempo e ver a estabilidade e possíveis problemas que eu tenho que corrigir.

Por exemplo, quem vai no blog baixa o omnislash baixa o 2.6.27.3.1 e eu estou testando o 2.6.27.5.2 (na verdade não coloquei na net a versão 4 e a 5 estou testando um terceiro kernel (5 - 5.1 e 5.2) e tentando melhorar...) só coloco no blog mesmo quando está funcionando da melhor forma possível na máquina...

uname -a
Linux debian 2.6.27.5.2-omnislash5 #1 SMP PREEMPT Sat Nov 8 22:50:02 BRST 2008 i686 GNU/Linux

Os testes e a verificação de performance só no uso diário fazendo diversas tarefas é que dá para ver o quanto o kernel aguenta...
Sem distro Linux fixa - Kernel Omnislash
Meu objetivo nesse fórum é ajudar. Sou um mero humano mas desejo sempre aprender e melhorar em tudo o que faço em minha vida. Então, por favor, quando eu postar me notifique depois

Aaron

Pessoal tenho mta vontade de aprender a compilar um kernel, porém preciso pesquisar mais... vi em um tópico neste fórum q fala sobre compilação usando o omnislash, não entendi mto bem qual seria a vantagem de se utilizar este arquivo, ele ja vem pré editado o kernel, não achei uma explicação que responda minha dúvida =/.
Ubuntu user # 27354

Alakazan

Quanto será que levará nos Corei7?
Compilação instantânea?
PC é como ar-condicionado: é só abrir Windows que ele para de funcionar.
Tentando ser melhor - desculpem o incômodo!