Представьте ядро 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
Эти файлы конфигурации обеспечивают точный контроль над тем, какие модули доступны при запуске вашей системы.