Для просмотра списка загруженных модулей ядра Linux используется утилита lsmod
. Она предоставляет информацию о модулях, которые в настоящее время загружены в ядро системы.
Развернутый ответ
Что такое модули ядра?
Модули ядра (или просто модули) — это объектные файлы, которые содержат код, выполняющий различные функции для операционной системы. Эти модули можно загружать и выгружать из ядра без перезагрузки системы, что дает гибкость в управлении функциональностью. Примеры модулей:
Драйверы устройств (например, для видеокарт или сетевых адаптеров).
Протоколы сетевого стека.
Файловые системы.
Утилита lsmod
Команда lsmod
отображает список всех загруженных в ядро модулей. Это довольно простая, но мощная утилита, которая использует информацию из системного файла /proc/modules
для вывода данных. Этот файл содержит подробную информацию о текущих модулях и их статусе.
Основной синтаксис:
Пример вывода команды:
В этом выводе:
Module — имя модуля.
Size — размер модуля в байтах.
Used by — количество процессов или других модулей, которые используют этот модуль (в данном случае, это число может быть больше, если модуль используется несколькими компонентами).
Детали:
Module — название модуля, который был загружен.
Size — размер модуля в памяти. Обычно это размер бинарного файла, который был загружен в ядро.
Used by — количество других модулей или процессов, которые используют данный модуль. Если в этой колонке указано число (например, «1»), это значит, что данный модуль используется только одним процессом или модулем. Если значение больше 1, то несколько модулей или процессов используют его одновременно.
Использование утилиты
lsmod
без аргументов: Покажет все загруженные модули в системе.Фильтрация вывода: Если вам нужно найти конкретный модуль, можно использовать
grep
:Это покажет только строки, содержащие «nvidia» в имени модуля.
Другие утилиты для работы с модулями
Кроме lsmod
, для управления модулями ядра есть и другие полезные утилиты:
modinfo
:
Показывает информацию о модуле, включая его описание, авторство, лицензию, зависимости и другие параметры.
Пример:Вывод может быть таким:
modprobe
:
Утилита для загрузки и выгрузки модулей. Например, чтобы загрузить модуль:Или чтобы выгрузить модуль:
insmod
:
Простой способ загрузить модуль в ядро, но в отличие отmodprobe
не решает зависимости между модулями, так что это обычно используется для опытных пользователей:rmmod
:
Используется для выгрузки модуля:
Место хранения модулей
Модули обычно находятся в каталоге /lib/modules/$(uname -r)/
. Здесь $(uname -r)
возвращает текущую версию ядра. Например:
Просмотр зависимостей модулей
Чтобы просмотреть, какие модули зависят от других, можно использовать утилиту lsmod
и искать колонку «Used by». Однако для более детального анализа зависимостей используется утилита modprobe -c
или просмотр файлов конфигурации.
Пример сценария:
Предположим, вы хотите узнать, загружен ли драйвер для вашего сетевого устройства:
Сначала проверьте все загруженные модули с помощью команды
lsmod
.Используйте
grep
для поиска по ключевому слову, связанному с устройством (например, название драйвера).
Это даст вам информацию о том, загружен ли драйвер для вашего сетевого интерфейса.
Заключение
Команда lsmod
— это удобный способ быстро получить список всех загруженных модулей ядра. Для более глубокого анализа или управления модулями в Linux используется комбинация инструментов, таких как modinfo
, modprobe
, и другие утилиты.