Модули ядра
100%

Ядро · Урок 6

Модули ядра

Узнайте, как просматривать, загружать, настраивать и безопасно удалять специфичные release модули ядра Linux.

Загружаемый модуль ядра — привилегированный код, расширяющий работающее ядро драйвером, файловой системой, сетевой функцией или другой подсистемой. Модули позволяют не встраивать каждую необязательную возможность в один образ, но их загрузка расширяет доверенную поверхность атаки ядра.

Вывод и просмотр модулей

Выведите загруженные сейчас модули:

$ lsmod

Вывод берётся из состояния ядра, например /proc/modules, и включает имя, размер и счётчик использования или зависимости. Нулевой счётчик не доказывает безопасность удаления: драйвер может владеть активными устройствами или участвовать в состоянии подсистемы.

Изучите модуль, доступный работающему ядру:

$ modinfo MODULE_NAME

modinfo показывает файл, aliases, параметры, лицензию, описание и сведения о подписи. Метаданные описательны, но не доказывают доверие или совместимость с нагрузкой.

Что показывает lsmod?

Загрузка через `modprobe`

Загрузите модуль по имени:

$ sudo modprobe MODULE_NAME

modprobe учитывает индексы зависимостей, aliases и конфигурацию работающего ядра в /lib/modules/$(uname -r)/. Он загружает необходимые зависимости и передаёт настроенные параметры. insmod напрямую вставляет один указанный файл и не предоставляет такое разрешение зависимостей.

До загрузки подтвердите происхождение, политику подписей, совместимость с release ядра, параметры, ожидаемую привязку оборудования и откат. Secure Boot или kernel lockdown могут отклонить неподписанный модуль; принудительное внедрение несовместимого кода грозит сбоем или компрометацией.

Почему modprobe обычно предпочтительнее прямого insmod?

Параметры и загрузка при старте

Постоянная политика параметров и aliases располагается в .conf внутри /etc/modprobe.d/:

options example_module mode=careful

Строка влияет на параметры при загрузке через modprobe, но сама не просит загрузить модуль при старте. Простой список загрузки обычно находится в /etc/modules-load.d/:

example_module

Аппаратные aliases часто вызывают автоматическую загрузку без явного списка. Для модулей ранней загрузки после изменения конфигурации обновите initramfs документированным способом дистрибутива.

Что делает строка options в /etc/modprobe.d/?

Blacklist и его ограничения

Конфигурация modprobe может содержать:

blacklist example_module

Обычно blacklist подавляет автоматическую загрузку через aliases. Он не выгружает уже загруженный модуль, не удаляет его из initramfs и не обязательно предотвращает явную загрузку по имени или как зависимости. Для усиления защиты нужна специфичная угрозе комбинация доступности модулей, проверки подписей, содержимого initramfs, параметров загрузки и политики.

Что прежде всего подавляет базовая строка blacklist modprobe?

Безопасное удаление модуля

Запросите удаление:

$ sudo modprobe -r MODULE_NAME

Modprobe может удалить ставшие ненужными зависимости. Ядро отклоняет удаление, когда обычный учёт ссылок показывает занятость, но не полагайтесь лишь на это. Остановите службы, размонтируйте файловые системы, отсоедините устройства, остановите сетевую активность и подтвердите другой драйвер или путь восстановления до удаления кода активного оборудования.

Никогда не выгружайте модуль принудительно в системе, которую нужно сохранить. Ошибка удаления или незавершённая активность может уронить ядро или повредить данные.

Какая команда запрашивает учитывающее зависимости удаление модуля по имени?

Урок завершён

Вы завершили Модули ядра

Теперь вы можете управлять модулями с учётом их риска на уровне ядра.

  • Использовать lsmod для живого состояния, а modinfo для доступных метаданных.

  • Использовать modprobe для загрузки с aliases и зависимостями.

  • Отделять параметры modprobe от запросов загрузки при старте.

  • Считать blacklist ограниченной политикой, а не абсолютным запретом.

  • Останавливать каждого потребителя до modprobe -r.

Сохраните прогресс

Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.

Создать бесплатный аккаунт
Назад к Ядро