Introduzione
lsmod
è un'utilità della riga di comando che visualizza informazioni sui moduli del kernel Linux caricati.
Moduli del kernel
Il kernel è il componente principale di un sistema operativo. Gestisce le risorse del sistema ed è un ponte tra l'hardware e il software del tuo computer.
Il kernel di Linux ha un design modulare. Un modulo del kernel, o spesso indicato come driver, è un pezzo di codice che estende la funzionalità del kernel. I moduli sono compilati come moduli caricabili o integrati nel kernel. I moduli caricabili possono essere caricati e scaricati nel kernel in esecuzione su richiesta, senza la necessità di riavviare il sistema.
Generalmente, i moduli vengono caricati su richiesta da udev
(Gestione dispositivi). Puoi anche caricare manualmente un modulo nel kernel usando il comando modprobe
, o automaticamente all'avvio usando /etc/modules
o i file /etc/modules-load.d/*.conf
.
I moduli del kernel sono memorizzati nella directory /lib/modules/<kernel_version>
. Per trovare la versione del kernel in esecuzione, utilizzare il comando uname -r
.
Comando lsmod
lsmod
è una semplice utility che non accetta alcuna opzione o argomento. Ciò che il comando fa è leggere /proc/modules
e visualizzare il contenuto del file in un elenco ben formattato.
Esegui lsmod
dalla riga di comando per scoprire quali moduli del kernel sono attualmente caricati:
lsmod
Il comando genera informazioni per ciascun modulo del kernel caricato su una nuova riga:
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
Ogni riga ha tre colonne:
Module
- La prima colonna mostra il nome del modulo.Size
- La seconda colonna mostra la dimensione del modulo in byte.Used by
- La terza colonna mostra un numero che indica quante istanze del modulo sono attualmente utilizzate. Un valore pari a zero indica che il modulo non è utilizzato. L'elenco separato da virgole dopo il numero mostra cosa sta usando il modulo.
Per scoprire se è caricato un modulo specifico, filtrare l'output con grep
. Ad esempio per scoprire se il modulo fuse
è caricato dovresti eseguire:
lsmod | grep fuse
fuse 126976 3
Per informazioni dettagliate su un modulo, utilizzare il comando modinfo
Conclusione
Il comando lsmod
mostra un elenco dei moduli del kernel attualmente caricati.