Загружаемые модули ядра могут сохранить память и упростить настройку. Область применения модулей включает файловые системы, драйвера карт ethernet, драйверы ленточных накопителей и т.п.
Утилиты для работы с модулями доступны от туда же откуда вы получили
свое ядро, они называются modules-x.y.z.tar.gz; выберите самый
большой номер x.y.z, который равен или ниже чем номер вашего
текущего ядра. Распакуйте их с помощью команды `tar zxvf
modules-x.y.z.tar.gz', перейдите в директорию, которую эта команда
создала (modules-x.y.z), посмотрите файл README, и
выполните приведенные в нем инструкции по установке (которые обычно
являются очень простыми, такими как make install). Вы должны
теперь получить программы insmod, rmmod, ksyms,
lsmod, genksyms, modprobe, и depmod в
директории /sbin. Если вы хотите, протестируйте полученные
программы с помощью демонстрационного драйвера ``hw'' в insmod;
для более детальной информации смотрите файл INSTALL, который
находится в директории с исходными текстами.
Команда insmod вставляет модуль в работающее ядро. Модули
обычно имеют расширение .o; пример драйвера, упомянутый выше
называется drv_hello.o, так для того чтобы вставить его, вы должны
выполнить `insmod drv_hello.o'. Для того чтобы увидеть список
загруженных модулей используйте команду lsmod. Ее вывод выглядит
примерно так:
blah# lsmod
Module: #pages: Used by:
drv_hello 1
`drv_hello' это имя модуля, он использует 1 страницу оперативной
памяти (4k), и ни какие модули ядра не зависят от него на текущий
момент. Для удаления этого модуля используйте команду `rmmod
drv_hello'. Заметим, что rmmod требует имя модуля, а
не имя файла; вы можете получить его из списка выдаваемого
lsmod. Назначение других утилит для работы с модулями описано в их
справочных страницах.
В версии 2.0.30, почти все доступно как загружаемые модули. Для их
использования сначала сначала убедитесь, что вы не настроили их
вкомпилированными в ядро; то есть вы не ответили y в процессе
выполнения `make config'. Скомпилируйте новое ядро и загрузитесь с
ним. Затем снова перейдите в /usr/src/linux, и выполните `make
modules'. это скомпилирует все модули, которые вы не указали при
настройке ядра, и поместит ссылки на них в
/usr/src/linux/modules. ВЫ можете использовать их прямо из этой
директории, или выполните команду `make modules_install', которая
установит модули в директорию /lib/modules/x.y.z, где
x.y.z это версия ядра.
Это может быть особенно полезным в использовании файловых систем. Вы
можете нечасто использовать файловые системы minix или msdos. Например,
если я сталкиваюсь с гибким диском с msdos, я должен сделать insmod
/usr/src/linux/modules/msdos.o, и затем rmmod msdos, когда
все закончено. Эта процедура сохраняет примерно 50k ОЗУ в ядре в течении
нормальной работы. Маленькое замечание для использования файловой системы
minix: вы должны всегда настроить его прямо в ядро для
использования в ``восстановительных (rescue)'' дисках.