Módulos do Kernel
Este é o segundo post de uma série de quatro posts onde estou falando especificamente sobre o kernel, você pode dar uma olhada no post anterior clicando aqui: Entendendo o Kernel – parte 1
No Windows são conhecidos como drivers, já no linux estes são chamados de módulos, estes módulos ficam em um diretório com a mesma versão numérica do kernel situado em “/lib/modules
“. Caso no seu pc tenha mais de um kernel, verifique qual esta sendo executado com o comando “uname -r
“.
Estes módulos fornecem suporte ao hardware e a todos os demais dispositivos(ex: sistema de arquivos), que devem ser manipulados pelo sistema operacional, sendo construídos junto com o kernel. Assim, por exemplo caso existam as versões numéricas de kernel compiladas no seu sistema “2.6.25”, e “2.6.26” existirão dois diretórios dentro de /lib/modules
.
Veja abaixo uma ilustração da comunicação:
O diretório de módulos de cada versão numérica de kernel, contém várias pastas e arquivos, sendo os módulos de suporte a dispositivos existentes a partir do caminho “/lib/modules/versao_do_kernel/kernel/drivers
“, conforme podemos observar logo abaixo:
Listagem do diretório de módulos do kernel
tfinardi@debian5:/lib/modules$ ls
2.6.26-1-686
tfinardi@debian5:/lib/modules$ cd 2.6.26-1-686
tfinardi@debian5:/lib/modules/2.6.26-1-686$ ls
kernel modules.dep modules.isapnpmap modules.seriomap
modules.alias modules.ieee1394map modules.ofmap modules.symbols
modules.ccwmap modules.inputmap modules.pcimap modules.usbmap
tfinardi@debian5:/lib/modules/2.6.26-1-686$
Abaixo do diretório acima referido, os módulos são divididos e organizados em pastas, de acordo com o tipo de dispositivo a que se destinam. Por exemplo, abaixo listamos a localização e o conteúdo da pasta “net
“, que contém os módulos que dão suporte as interfaces de rede suportadas nesta versão do kernel:
Diretório onde se encontram os módulos de placas de rede
tfinardi@debian5:/lib/modules/2.6.26-1-686$ pwd
/lib/modules/2.6.26-1-686
tfinardi@debian5:/lib/modules/2.6.26-1-686$ cd kernel/net
tfinardi@debian5:/lib/modules/2.6.26-1-686/kernel/net$ ls
802 ax25 dccp ipv6 llc rose tipc
8021q bluetooth decnet ipx mac80211 rxrpc wanrouter
9p bridge econet irda netfilter sched wireless
appletalk can ieee80211 key netrom sctp x25
atm core ipv4 lapb rfkill sunrpc xfrm
tfinardi@debian5:/lib/modules/2.6.26-1-686/kernel/net$
Quando compilamos um novo kernel, também precisamos compilar os seus módulos e, instala-los abaixo de “/lib/modules
“. Uma versão de kernel, não pode utilizar os módulos de outra versão, ou vice versa, portanto, devem existir tantos diretórios de módulos, quantas forem as versões de kernel que forem compiladas.
Bom pessoal, aqui finalizamos a segunda parte, onde falamos sobre módulos do kernel, não deixem de ler a Parte 1 – Entendendo o Kernel, no próximo post veremos sobre o “Gerenciamento de módulos do kernel“.
Até a próxima!