br
KERNEL
Kernel Monolítico
Este tipo de kernel deixa junto com a imagem de boot do Kernel todo e
qualquer suporte implementado a qualquer tipo de recurso, podendo tornar a
inicialização do sistema um pouco mais demorada.
Kernel Modular
Neste caso em específico, uma grande quantidade de recursos fica em
módulos, que são instalados a parte e não precisam serem carregados juntos
com o sistema. Neste caso, há mais facilidade em gerenciar recursos, uma vez
que, se não quiser um recurso, basta adicioná-lo a uma “blacklist” de módulos.
É importante destacar também que nem todos os recursos podem ser
colocados em módulos, alguns têm que ser “built-in” mesmo, por exigência do
Kernel, sendo assim, nenhum Kernel é totalmente modular.
Versões do Kernel
A sintaxe de versão do Kernel é:
<versão maior>. <versão menor>
.<correção/patch/atualização>.<verso extra>
Antes do Kernel 2.4 ser lançado, as versões aumentavam de forma que
uma versão menor que fosse ímpar representava um Kernel instável ainda,
enquanto uma versão menor que fosse par significava em Kernel estável. Hoje
isso não é mais uma realidade, uma vez que Linus Torvalds decidiu que as
alterações seriam feitas no terceiro campo. A versão menor só será alterada se
for uma mudança muito brusca na estrutura do Kernel.
Exemplo:
Uma versão recompilada para dar suporte a Paravirtualização, no Kernel
2.6.35, teria a nomenclatura:
2.6.35-Virt
Compilação de Kernel
rede, por exemplo; ter que habilitar suporte a recursos adicionais, como
paravirtualização e PAE (para sistemas de 32 bits poderem reconhecer
memórias RAM de mais de 4GB); personalizar uma distro para que ela possa
ter um fim específico, como uma distro exclusiva para Firewall, como o
SmothWall, por exemplo, que tem suporte a muitos adaptadores de rede mas
não suporta placas aceleradoras gráficas funcionando em modo pleno, já que o
Kernel desta distro está compilad para ser um Firewall e não uma estação de
jogos, ou de edição gráfica.
O procedimento para a sua recompilação consiste em algumas etapas:
Configuração
Nesta etapa ocorre a escolha de quais recursos serão instalados. É
preciso entender muito bem de recursos como rede, discos, dispositivos e
recursos de hardware, redes e de sistemas de arquivos, pois as opções de
configuração do Kernel são muitas e escolher a opção errada pode custar o não
reconhecimento de alguns recursos desejados.
Compilação
A compilação de um software qualquer consiste em converter os
códigos-fonte dele para arquivos binários (linguagem de máquina). Numa
compilação de Kernel não é diferente, um vez que existe a necessidade de os
módulos e recursos “Built-in” interagirem com os hardwares de sistema.
Instalação
O conceito de instalação é a cópia de binários do um programa para um
diretório de instalação.
#make bzImage
É importante lembrar que até este momento nenhuma ação foi tomada
em relação aos módulos, já que a imagem de boot é totalmente independente
dos módulos do Kernel.
Este passo irá compilar a imagem do Kernel e criar um arquivo de
imagem desta imagem, assim, o gerenciador de boot poderá executar o boot
por ela.
No caso, #make bzImage usa o agente compactador BZIP2 para
comprimir a imagem, esta imagem também pode ser carregada em memória
estendida, enquanto #make zImage usa o agente COMPRESS e só pode
compactar imagens pequenas de Kernel (até 500KB). É justamente por causa
desta diferença que em grande maioria das compilações é escolhido o método
#make bzImage.
Compilando os módulos:
#make modules
Reiniciar o sistema:
#shutdown -r now
Comandos de Kernel
#uname
Exibe informações sobre o Kernel em execução.
Opções:
-a : exibe todas as informações sobre o Kernel instalado.
-n : exibe o hostname.
-r : exibe a versão do Kernel instalado.
-m : exibe a arquitetura do Kernel instalado.
www.howtoday.com.br
#lsmod
Exibe módulos que foram carregados.
#modinfo
Exibibe informações detalhadas sobre um módulo específico, como
informações sobre autoria, versão, arquitetura, dependências, etc.
Sintaxe:
#modinfo <módulo>
Exemplo:
#depmod
Atualiza o aquivo de dependências de módulos em
/lib/modules/<versão>/modules.dep com novos módulos instalados.
#modprobe
Insere os módulos e suas depoendências no Kernel em execução.
Também tem opções de consulta e exclusão de módulos.
Sintaxe:
#modprobe <opções> <módulo>
Opções:
-l : lista localização dos módulos.
-t : indica o tipo dos módulos (seção de módulos).
Seções:
arch : módulos de arquitetura do Kernel.
crypto : módulos de criptografia.
drivers: módulos de drivers de dispositivos de hardware.
net: módulos de dispositivos de rede.
sound: módulos de recursos de som.
fs : módulos de filesystems.
lib : módulos de bibliotecas.
-r : remove um módulo.
Exemplos:
#insmod
Isere um módulo no Kernel em execução mas não resolve dependências
de módulos.
Sintaxe:
#insmod <módulo>
#rmmod
Remove módulos de um Kernel em execução.
Sintaxe:
#rmmod <opção> <módulo>
Opções:
-a : remove todos os módulos que não estão sendo usados.
-f : força a remoção do módulo.
-v : verbose.
Comandos de Hardware
#lspci
Mostra os dispositivos de hardware que utilizam o barramento PCI.
#lsusb
Mostra todos os dispositivos conectados à porta USB.