Linux中的lsmod命令(列出内核模块)

时间:2020-03-05 15:28:52  来源:igfitidea点击:

“ 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
...

每行有三列:

  • '模块'-第一列显示模块的名称。
  • '大小'-第二列显示模块的大小(以字节为单位)。
  • '使用者'-第三列显示一个数字,指示当前使用了多少个模块实例。零值表示未使用该模块。数字后的逗号分隔列表显示正在使用的模块。

要确定是否已加载特定模块,请使用'grep'过滤输出。

例如,要查找是否已加载“ kvm”模块,请运行:

lsmod | grep kvm
kvm_intel             278528  0
kvm                   651264  1 kvm_intel
irqbypass              16384  1 kvm

有关模块的详细信息,请使用“ modinfo”命令。