Pense no kernel do Linux como o motor principal de um carro. Você pode adicionar acessórios como um bagageiro de teto ou um novo sistema de som sem alterar o motor em si. Esses acessórios podem ser adicionados ou removidos conforme a necessidade. O kernel do Linux usa um conceito semelhante com os módulos do kernel.
O que são Módulos do Kernel
Então, o que são módulos do kernel? São pedaços de código que podem ser carregados e descarregados do kernel sob demanda. Eles estendem a funcionalidade do kernel sem exigir que você recompila o kernel principal ou reinicie o sistema. Essa abordagem modular permite que o suporte para novo hardware (como uma nova placa Wi-Fi) ou novos recursos de software (como um novo sistema de arquivos) seja adicionado dinamicamente. Isso mantém o kernel principal enxuto, ao mesmo tempo que permite uma imensa flexibilidade.
Listando Módulos Carregados
Para ver uma lista de todos os módulos do kernel atualmente carregados na memória, você pode usar o comando lsmod. Isso lhe dá um instantâneo dos módulos ativos e suas dependências.
lsmod
Carregando um Módulo do Kernel
Para carregar um módulo do kernel, usamos o comando modprobe. Por exemplo, para carregar o módulo bluetooth, você executaria:
sudo modprobe bluetooth
O comando modprobe é inteligente; ele procura o módulo no diretório padrão (/lib/modules/$(uname -r)/) e também carrega quaisquer outros módulos dos quais o módulo alvo dependa.
Descarregando um Módulo do Kernel
Se um módulo não for mais necessário, você pode descarregá-lo para liberar recursos do sistema. Use a flag -r com modprobe para remover um módulo:
sudo modprobe -r bluetooth
Gerenciando Módulos na Inicialização
Os módulos carregados com modprobe são temporários e desaparecerão após uma reinicialização. Para tornar as configurações dos módulos permanentes, você pode criar arquivos de configuração no diretório /etc/modprobe.d/.
Para carregar automaticamente um módulo na inicialização com opções específicas, crie um arquivo .conf. Por exemplo, se você tivesse um módulo hipotético chamado peanut_butter e quisesse definir seu parâmetro type como almond, seu arquivo ficaria assim:
# /etc/modprobe.d/peanutbutter.conf
options peanut_butter type=almond
Inversamente, para impedir que um módulo seja carregado na inicialização (um processo chamado blacklisting), você pode usar a palavra-chave blacklist em um arquivo de configuração:
# /etc/modprobe.d/peanutbutter.conf
blacklist peanut_butter
Esses arquivos de configuração permitem um controle detalhado sobre quais módulos estão disponíveis quando seu sistema é iniciado.