Muita gente ouve falar de Kernel, mas não tem a menor ideia do que se trata. Este tópico tem a pretensão de dar uma pincelada no assunto, dar umas dicas e redirecionar a outros mais específicos... Como meus outros tópicos, este vai ser escrito aos poucos, na medida do possível, conforme meu tempo disponível e as informações que eu for arrecadando...
O que é o kernel? Como funciona?Significa "centro", pois é ele que vai estar no centro do processamento. O kernel serve como um grande tradutor, ele pega as instruções e configurações do hardware e faz o software se comunicar com a sua máquina. O kernel também atua como tradutor quando pega um determinado programa escrito em uma linguagem não compreensível pelo usuário leigo e a transforma por meio de uma SHELL em uma janela gráfica (explicando simplificadamente).
Desse modo o Kernel vai fazer tanto o meio de campo com o hardware quanto com o software. Assim, é de se imaginar que quando sai um kernel compilado (configurado) para uma distribuição de um software, ele vai sair com ajustes genéricos para atender ao maior número de usuários (entenda-se hardware).
O interessante é que determinadas regiões adotam padrões de hardware e software diferentes de outras. Sem falar na finalidade a que se destina. Assim, as configurações para um servidor são diferentes das do netbook que vai ser usado para escrever texto e navegar na internet, que são diferentes do camarada que tem um micro para jogos, etc.
O micro ao realizar uma tarefa chama uma rotina e a interpreta no kernel que vai responder segundo as configurações presentes.
Todo Sistema Operacional tem um kernel? Como funciona o desenvolvimento?Bom sabendo disso fica claro entender que todo sistema operacional tem um kernel. A diferença é que os SOs abertos (linux, Freebsd, etc) possuem grupos de pessoas que trabalham diretamente para o desenvolvimento e aperfeiçoamento desse kernel, lançando revisões e versões regulares, retirando bugs, adicionando hardwares, optimizando instruções.
O do Linux é desenvolvido e armazenado pela
http://www.kernel.org/ . Aonde podemos ver a linha de trabalho em desenvolvimento, que as vezes desenvolve mais de um kernel ao mesmo tempo, armazenado os demais. A coisa funciona mais ou menos assim, tem sempre uma versão estável (stable) que está finalizada, tem a versão longshot (que está em desenvolvimento), tem a versão longterm (que vai ter suporte e atualizações por um bom tempo ainda), a unstable (que é instável e são os RC - release candidate).
Quando preciso mudar de kernel?Bom, ai existem duas situações diferentes: 1) vocÊ não precisa; 2) você não quer. Se vc instalou o sistema e está tudo rodando certinho você não precisa... MAS como já disse, o kernel está configurado de maneira genérica, assim pode mudar o kernel ANTIGO da sua máquina através de uma compilação para retirar dele o que vc não precisa, ex.: gerenciamento de impressora, placas SCSI, placas de TV, placas de satélite, etc... A outra hipótese é a de você não querer mudar, ou seja, nem tudo está funcionando direito, mas vc tem medo de mexer e acabar de ferrar tudo...
Em ambas as situações eu diria o seguinte: como em qualquer procedimento de teste, se você fizer um backup e fizer o passo a passo, inclusive anotando os erros e soluções mais comuns, não há o que temer... Você pode estar satisfeito, mas quando perceber que se micro pode utilizar bem menos recurso, ficando mais rápido e mais esperto, você não vai querer outra vida...
Topicos relacionados
em inglês:
http://kernel.net/articles/how-to-compile-linux-kernel.html