lsmod是一个命令行实用程序,用于显示有关已加载的Linux内核模块的信息。
内核模块
内核是操作系统的核心组件。它管理系统的资源,并且是计算机硬件和软件之间的桥梁。
Linux内核具有模块化设计。内核模块(通常称为驱动)是一段扩展内核功能的代码。模块要么编译为可加载模块,要么内置在内核中。可加载模块可以根据需要在正在运行的内核中进行加载和卸载,而无需重新引导系统。
通常,模块由udev(设备管理器)按需加载。您也可以使用modprobe命令将模块手动加载到内核中,或者在引导时使用 /etc/modules 或者 /etc/modules-load.d/* .conf文件自动将模块加载到内核中。
内核模块存储在 /lib/modules/<kernel_version>目录中。要查找正在运行的内核的发行版本,请使用uname -r命令。
lsmod命令
lsmod是一个简单的实用程序,不接受任何选项或参数。该命令的作用是读取/proc/modules并以格式正确的列表显示文件内容。
在命令行中运行lsmod,以了解当前正在加载哪些内核模块:
[linuxidc@linux:~/www.linuxidc.com]$ lsmod
该命令在新行上输出每个已加载内核模块的信息:
Module Size Used by nls_utf8 16384 1 isofs 49152 1 rfcomm 81920 4 intel_rapl_msr 20480 0 intel_rapl_common 24576 1 intel_rapl_msr crct10dif_pclmul 16384 1 crc32_pclmul 16384 0 ghash_clmulni_intel 16384 0 bnep 24576 2 aesni_intel 372736 0 aes_x86_64 20480 1 aesni_intel vmw_balloon 24576 0 crypto_simd 16384 1 aesni_intel cryptd 24576 2 crypto_simd,ghash_clmulni_intel glue_helper 16384 1 aesni_intel intel_rapl_perf 20480 0 vmw_vsock_vmci_transport 32768 2 vsock 36864 3 vmw_vsock_vmci_transport ...
每行有三列:
- Module – 第一列显示模块的名称。
- Size – 第二列显示以字节为单位的模块大小。
- Used by – 第三列显示一个数字,指示当前使用了多少个模块实例。 零值表示未使用该模块。 数字后的逗号分隔列表显示正在使用的模块。
要确定是否已加载特定模块,请使用grep过滤输出。 例如,要查找是否已加载vsock模块,请运行:
[linuxidc@linux:~/www.linuxidc.com]$ lsmod | grep vsock