6. Модули ядра

Представьте ядро Linux как основной двигатель автомобиля. Вы можете добавлять аксессуары, такие как багажник на крышу или новую звуковую систему, не меняя сам двигатель. Эти аксессуары можно добавлять или удалять по мере необходимости. Ядро Linux использует аналогичную концепцию с модулями ядра.

Что такое модули ядра

Итак, что такое модули ядра? Это фрагменты кода, которые могут загружаться в ядро и выгружаться из него по требованию. Они расширяют функциональность ядра без необходимости перекомпиляции основного ядра или перезагрузки системы. Такой модульный подход позволяет динамически добавлять поддержку нового оборудования (например, новой Wi-Fi карты) или новых программных функций (например, новой файловой системы). Это сохраняет основное ядро компактным, обеспечивая при этом огромную гибкость.

Вывод загруженных модулей

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

lsmod

Загрузка модуля ядра

Для загрузки модуля ядра мы используем команду modprobe. Например, чтобы загрузить модуль bluetooth, вы выполните:

sudo modprobe bluetooth

Команда modprobe интеллектуальна; она ищет модуль в стандартном каталоге (/lib/modules/$(uname -r)/), а также загружает любые другие модули, от которых зависит целевой модуль.

Выгрузка модуля ядра

Если модуль больше не нужен, вы можете выгрузить его, чтобы освободить системные ресурсы. Используйте флаг -r с modprobe для удаления модуля:

sudo modprobe -r bluetooth

Управление модулями при загрузке

Модули, загруженные с помощью modprobe, являются временными и исчезнут после перезагрузки. Чтобы сделать конфигурации модулей постоянными, вы можете создать файлы конфигурации в каталоге /etc/modprobe.d/.

Чтобы автоматически загружать модуль при загрузке с определенными параметрами, создайте файл с расширением .conf. Например, если у вас есть гипотетический модуль с именем peanut_butter, и вы хотите установить его параметр type в almond, ваш файл будет выглядеть так:

# /etc/modprobe.d/peanutbutter.conf

options peanut_butter type=almond

И наоборот, чтобы предотвратить загрузку модуля при загрузке (процесс, называемый черным списком), вы можете использовать ключевое слово blacklist в файле конфигурации:

# /etc/modprobe.d/peanutbutter.conf

blacklist peanut_butter

Эти файлы конфигурации обеспечивают точный контроль над тем, какие модули доступны при запуске вашей системы.

Войдите, чтобы сохранить ваш прогресс обучения

Вход

Упражнения

Практика ведет к совершенству! Вот практическая лабораторная работа для закрепления вашего понимания модулей ядра Linux:

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

Тест

Какая команда используется для выгрузки модуля?