Jun 10, 2025
Загрузка и выгрузка модулей ядра Linux
В Linux ядро можно расширять динамически — с помощью модулей ядра. Эти модули могут добавляться и удаляться в любое время, без перезагрузки системы. Такой подход облегчает разработку, тестирование и поддержку оборудования, сетевых протоколов, файловых систем и других функций.
Хотя Linux использует модули активно, архитектура ядра остаётся монолитной: загруженный модуль становится полноценной частью ядра и взаимодействует с остальными компонентами напрямую, а не через межпроцессное взаимодействие, как в микроядерных ОС.
Модули ядра Linux — это файлы с расширением .ko
, например:
e1000e.ko
— драйвер сетевой карты Intel,ext4.ko
— драйвер файловой системы ext4,nouveau.ko
— драйвер видеокарт NVIDIA с открытым кодом.
Основные команды работы с модулями
Для работы с модулями требуются права суперпользователя (root).
Загрузка модуля
Модуль можно загрузить напрямую:
sudo insmod /путь/к/module_name.ko
Можно также передать параметры:
sudo insmod /путь/к/module_name.ko irq=12 debug=3
Однако чаще используется команда modprobe
, которая умеет:
- искать модуль в
/lib/modules/$(uname -r)/
, - автоматически загружать зависимости.
sudo modprobe module_name
sudo modprobe module_name irq=12 debug=3
Просмотр загруженных модулей
lsmod
Пример вывода:
Module Size Used by
coretemp 16384 0
e1000e 237568 0
ptp 20480 1 e1000e
pps_core 20480 1 ptp
Удаление модуля
Для удаления напрямую:
sudo rmmod module_name
Для автоматического удаления с зависимостями:
sudo modprobe -r module_name
Важные замечания
- Нельзя выгрузить модуль, который используется другими модулями или процессами. Это видно по полю
Used by
вlsmod
. - Некоторые модули (особенно драйверы сетевых устройств) могут не отслеживать количество ссылок, что усложняет безопасную выгрузку.
modprobe -r
пытается также выгрузить модули-зависимости, если они больше нигде не используются.
Управление модулями
Файлы конфигурации modprobe
находятся в:
/etc/modprobe.d/
Они позволяют:
- задавать псевдонимы для модулей,
- автоматически подставлять параметры при загрузке,
- указывать модули, которые следует игнорировать (черный список).
Получение информации о модуле
modinfo module_name.ko
Показывает:
- описание модуля,
- автора,
- лицензию,
- параметры загрузки,
- зависимости,
- путь к файлу.