Linux中使用 lsmod 命令列出内核模块
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
cmac 16384 0
rfcomm 81920 4
...
ahci 40960 1
intel_lpss_pci 20480 0
i2c_i801 32768 0
libahci 32768 1 ahci
intel_lpss 16384 1 intel_lpss_pci
...
每行有三列:
Module
- 第一列显示模块的名称。Size
- 第二列以字节为单位显示模块的大小。Used by
- 第三列显示一个数字,指示当前使用了多少个模块实例。零值表示未使用该模块。数字后的逗号分隔列表显示正在使用的模块。
要确定某个特定模块是否已经加载,请使用 grep
过滤输出。例如,要查找 kvm
模块是否已加载,可以运行:
lsmod | grep kvm
kvm_intel 278528 0
kvm 651264 1 kvm_intel
irqbypass 16384 1 kvm
有关模块的详细信息,请使用 modinfo
命令。
结论
该 lsmod
命令显示了当前加载的内核模块的列表。