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

评论 0 浏览 0 2020-02-05

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 命令显示当前加载的内核模块的列表。

如果您有任何疑问,请随时发表评论。

最后更新2023-10-04
0 个评论