Введение в модули
Модули ядра – очень важная составляющая Linux. Такой модуль позволяет обеспечивать ядру новые функции без его рекомпиляции. Вы сможете убедиться, насколько это важно.
Например, если возникнет необходимость в новой плате интерфейса SCSI, можно загрузить модуль ядра вводом единственной команды – insmod. В прежних версиях Linux для обеспечения поддержки устройства SCSI пришлось бы рекомпилировать ядро системы.
Со временем число внешних устройств, поддерживаемых Linux, возросло. Появились модули ядра, позволяющие ядру осуществлять эту поддержку, оставаясь относительно небольшим по объему.
Примечание
Существенное отличие Linux от некоторых других операционных систем состоит в способности устанавливать или удалять поддержку оборудования, файловых систем, языков и т.п. даже без перезагрузки системы.
В табл. 20.1 дан перечень команд для работы с модулями ядра. Более подробную информацию о каждой можно найти на соответствующей странице руководства.
Примечание
Все упомянутые команды, за исключением Ismod, доступны только корневому пользователю. В Red Hat Linux 7.1 эти команды расположены в каталоге /sbin, не входящем в путь по умолчанию, поэтому для их запуска придется вводить полный путь, например, /sbin/Ismod, /sbin/insmod И Т.П.
Табл. 20.1. Команды для работы с модулями ядра.
Команда | Описание |
---|---|
Ismod | Вывод списка всех модулей, установленных в данный момент в работающем ядре |
insmod | Установка модуля в работающем ядре. Необходимо указать имя модуля и, возможно, несколько дополнительных параметров, описывающих его поведение (например, IRQ и адреса устройств) |
rmmod | Удаление модуля из работающей системы. Необходимо соблюдать осторожность, чтобы не удалить модуль, используемый другими модулями. О взаимозависимости загруженных модулей можно судить по результатам выполнения команды Ismod |
depmod | Создание файла зависимостей, который команда modprbbe использует для загрузки набора модулей |
modprobe | Загрузка набора модулей, определенного командой depmod |
Дополнительную информацию о модулях конкретной системы Linux можно найти в некоторых системных файлах.
Поскольку модули ядра добавляются в код, который в это время выполняется, они записываются в виде объектного кода (уже компилированного). Имя файла каждого модуля имеет расширение. о.
Проверьте следующие файлы.
- /boot/module-infо-2.4.2-2– информация о каждом модуле, который может быть активизирован в системе.
- /lib/modules/2.4.2-2/ – несколько подкаталогов, содержащих все модули ядра системы. Например, в подкаталоге kernel/drivers/cdrom записаны все модули, предназначенные для поддержки различных устройств CD-ROM.
Примечание
В Red Hat Linux 7.1 ядро имеет версию 2.4.2. Если вы пользуетесь другой версией Linux, или обновили ядро, укажите в приведенных выше именах каталогов соответствующий номер.
Примечание
Версия любого ядра Linux задается тремя числами major.minor.patch (большая.малая.обновление). Крупные изменения в ядре соответствуют изменению номера major. Менее значимые изменения могут сопровождаться только изменением номера minor. Отлаженные и проверенные версии имеют четный номер minor. Версии, находящиеся в стадии доработки имеют нечетный номер minor. Пользователям, не имеющим опыта работы в Linux, не рекомендуется пользоваться такими версиями. Такие версии ядра не устанавливают на продаваемые компьютеры. По мере устранения ошибок и генерации обновлений появляются версии с очередными patch-номерами.