Anterior Siguiente Indice

9. Módulos

Los módulos del núcleo cargables le permitirán simplificar la configuración del núcleo y ahorrar memoria. Sirven para añadir dinámicamente nuevos soportes de sistemas de ficheros o manejadores, a un núcleo que ya está corriendo.

9.1 Instalación de las utilidades asociadas

Estas utilidades están disponibles allí donde esté el núcleo, como modules-x.y.z.tar.gz. Elija el que corresponda a su núcleo. Descomprímalo con `tar zxvf modules-x.y.z.tar.gz', cambie al directorio que crea (modules-x.y.z), léase el fichero README, y siga las instrucciones de instalación (normalmente, tan simple como `make install'). Con ello tendrá las utilidades insmod, rmmod, ksyms, lsmod, genksyms, modprobe y depmod en /sbin. Si lo desea, puede probar el manejador ejemplo ``hw'' con insmod; lea el fichero INSTALL para más detalle.

insmod inserta un módulo en el núcleo arrancado. Generalmente los módulos son ficheros .o; el manejador ejemplo es drv_hello.o, con lo que para insertarlo se usaría `insmod drv_hello.o'. Para ver los módulos cargados, pruebe lsmod. La salida será como ésta:

 blah# lsmod
 Module:#pages:Used by:
 drv_hello1

`drv_hello' es el nombre del módulo, que usa una página (4k) de memoria, y no hay módulos que dependan de él en este momento. Para quitar el módulo, teclee `rmmod drv_hello'. Vea que rmmod necesita el nombre del módulo, no del fichero. Ese nombre lo obtiene al listar los módulos instalados. Las otras utilidades de módulos se encuentran documentadas en los manuales on-line.

Inciso de la revisión 2.1

Tres cosas relativas a módulos:

9.2 Módulos distribuidos con el núcleo 1.2.2

Algunos sistemas de ficheros, manejadores SCSI y de tarjetas de red, así como otras utilidades son cargables como módulos. Para usarlos, lo primero, no incluirlos en el núcleo principal (al compilarlo, no decir que `sí' al manejador correspondiente durante el `make config'). Luego se arranca ese núcleo Esto es obsoleto en el caso de los núcleos 2.0.x, recuérdelo; con los 2.0.x puede compilarlo todo seguido, y arrancar posteriormente, ejecutar depmod -a y estará todo listo. y se entra de nuevo en /usr/src/linux para hacer `make modules', lo que compilará módulos para todas aquellas opciones que no se eligieron durante el `make config', y los dejará en /usr/src/linux/modules. Puede ahora ejecutar `make modules_install' que los instalará en /lib/modules/x.y.z siendo x.y.z la versión del núcleo.

Esto es especialmente útil con los sistemas de ficheros que, como minix o msdos, no se usan normalmente. Así, cuando se quiera leer un disquete MSDOS, primero se cargaría el módulo con insmod Mejor modprobe, que como hemos comentado, tendrá en cuenta las dependencias entre módulos que ha generado depmod -a, cargándolos todos. y se descargaría al finalizar. Esto ahorrará unos 50K de memoria en la operación normal del núcleo. Notar que el sistema Minix siempre deberá estar dentro del núcleo (no como módulo) si se quiere hacer un disquete de rescate con él.


Anterior Siguiente Indice