Módulos carregáveis do kernel podem economizar memória e facilitar a configuração. O escopo dos modulos cresceu para incluir sistemas de arquivos, drivers de placas ethernet, drivers para fita, drivers para impressora e muito mais.
Os utilitários para módulos (module utilities) estão disponíveis a partir do local onde são encontrados os fontes do kernel, como modutils-x.y.z.tar.gz; escolha o nível mais alto do patch x.y.z é igual ou menor do que o kernel atual. Descompacte com `tar zxvf modutils-x.y.x.tar.gz', cd para o diretório criado (modutils-x.y.z), leia o README e siga as instruções de instalação (geralmente simples, tal como make install. Será necessário ter os programas insmod, rmmod, ksyms, lsmod, genksyms, modprobe e depmod em /sbin. Caso deseje, teste os utilitários com o driver exemplo ``hw'' com insmod; leia o arquivo INSTALL do subdiretório para mais detalhes.
insmod carrega um módulo no kernel que está sendo executado. Módulos geralmente possuem a extensão .o; o exemplo de driver mencionado anteriormente é chamado drv_hello.o, para carregá-lo, use insmod drv_hello.o. Para ver os módulos que o kernel está usando atualmente, use lsmod. Sua saída é semelhante a:
blah# lsmod
Module: #pages: Used by:
drv_hello 1
|
A partir da versão 2.0.30, quase tudo ficou disponível como um módulo carregável. Para usá-los, primeiramente certifique-se de que eles não foram configurados no kernel comum; isto é, não responda y durante o `make config'. Compile um novo kernel e reinicialize a máquina com este novo kernel. Então, cd para /usr/src/linux novamente, e execute o `make modules. Isto vai compilar todos os módulos que não foram incluídos no kernel e colocá-los em /usr/src/linux/modules. Os módulos podem ser utilizados a partir deste diretório ou execute `make modules_install', para instalar os módulos em /lib/modules/x.y.z, onde x.y.z é a versão do kernel.
Isso pode ser especialmente útil com sistemas de arquivos. Você pode não usar o sistemas de arquivos minix ou msdos frequentemente. Por exemplo, se eu encontro um disquete msdos, eu posso insmod /usr/src/linux/modules/msdos.o, e depois rmmod msdos quando terminar. Este procedimento economiza em torno de 50k de RAM dentro do kernel durante a operação normal. Uma pequena nota sobre o sistema de arquivos minix: você deve sempre configurá-lo diretamente dentro do kernel, para usá-lo em discos de emergência (rescue disk).