Введение
lsmod
— это утилита командной строки, которая отображает информацию о загруженных модулях ядра Linux.
Модули ядра
Ядро является основным компонентом операционной системы. Он управляет системными ресурсами и является мостом между аппаратным и программным обеспечением вашего компьютера.
Ядро Linux имеет модульную структуру. Модуль ядра, или часто называемый драйвером, представляет собой фрагмент кода, расширяющий функциональные возможности ядра. Модули компилируются как загружаемые модули или интегрируются в ядро. Загружаемые модули могут быть загружены и выгружены в работающее ядро по запросу без необходимости перезагрузки.
Обычно модули загружаются по требованию из udev
(диспетчера устройств). Вы также можете вручную загрузить модуль в ядро с помощью команды modprobe
или автоматически при загрузке с помощью /etc/modules
или файлов /etc/modules-load.d/*.conf
.
Модули ядра хранятся в /lib/modules/<kernel_version>
. Чтобы узнать текущую версию ядра, используйте команду uname -r
.
Команда lsmod
lsmod
— это простая утилита, которая не принимает никаких параметров или аргументов. Что делает команда, так это читает /proc/modules
и отображает содержимое файла в хорошо отформатированном списке.
Запустите lsmod
из командной строки, чтобы узнать, какие модули ядра загружены в данный момент:
lsmod
Команда генерирует информацию для каждого загруженного модуля ядра в новой строке:
Module Size Used by
fuse 126976 3
sunrpc 434176 1
nfit 61440 0
libnvdimm 172032 1 nfit
crct10dif_pclmul 16384 0
crc32_pclmul 16384 0
ghash_clmulni_intel 16384 0
sg 40960 0
joydev 24576 0
pcspkr 16384 0
virtio_balloon 20480 0
i2c_piix4 24576 0
ip_tables 28672 0
ext4 733184 1
mbcache 16384 1 ext4
jbd2 122880 1 ext4
sr_mod 28672 0
sd_mod 49152 2
cdrom 69632 1 sr_mod
ata_generic 16384 0
bochs_drm 24576 1
drm_kms_helper 200704 1 bochs_drm
syscopyarea 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
fb_sys_fops 16384 1 drm_kms_helper
ttm 131072 1 bochs_drm
drm 520192 4 drm_kms_helper,bochs_drm,ttm
ata_piix 36864 0
libata 274432 2 ata_piix,ata_generic
crc32c_intel 24576 2
virtio_net 53248 0
serio_raw 16384 0
virtio_console 36864 1
net_failover 24576 1 virtio_net
virtio_scsi 20480 1
failover 16384 1 net_failover
Каждая строка состоит из трех столбцов:
Module
— в первом столбце указано название модуля.Size
— во втором столбце указан размер модуля в байтах.Used by
— в третьем столбце отображается число, указывающее, сколько экземпляров модуля используется в настоящее время. Нулевое значение указывает, что модуль не используется. Разделенный запятыми список после номера показывает, что использует модуль.
Чтобы узнать, загружен ли конкретный модуль, отфильтруйте вывод с помощью grep
. Например, чтобы узнать, загружен ли модуль fuse
, вы должны запустить:
lsmod | grep fuse
fuse 126976 3
Для получения подробной информации о модуле используйте команду modinfo
Вывод
Команда lsmod
отображает список загруженных в данный момент модулей ядра.