Введение в модули

Модули ядра - очень важная составляющая 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 можно найти в некоторых системных файлах.

Поскольку модули ядра добавляются в код, который в это время выполняется, они записываются в виде объектного кода (уже компилированного). Имя файла каждого модуля имеет расширение .о.

Проверьте следующие файлы.

Примечание

В Red Hat Linux 7.1 ядро имеет версию 2.4.2. Если вы пользуетесь другой версией Linux, или обновили ядро, укажите в приведенных выше именах каталогов соответствующий номер.

Примечание

Версия любого ядра Linux задается тремя числамиmajor.minor.patch (большая.малая.обновление).Крупные изменения в ядре соответствуют изменению номера major. Менее значимые изменения могут сопровождаться только изменением номера minor. Отлаженные и проверенные версии имеют четный номер minor. Версии, находящиеся в стадии доработки имеют нечетный номер minor. Пользователям, не имеющим опыта работы в Linux, не рекомендуется пользоваться такими версиями. Такие версии ядра не устанавливают на продаваемые компьютеры. По мере устранения ошибок и генерации обновлений появляются версии с очередными patch-номерами.