and*_*ndy 10 linux filesystems kernel
为什么这两个命令返回不同的结果?
lsmod | wc -l
100
ls /sys/module | wc -l
138
Run Code Online (Sandbox Code Playgroud)
Mik*_*eyB 13
lsmod列出所有加载的动态模块。
中的条目/sys/module对应于动态模块和内置于内核中(并且具有需要可访问的参数)而不是动态加载的模块。例如:
[michael@brazzers:~]$ ls -d /sys/module/ip_tables/
/sys/module/ip_tables/
[michael@brazzers:~]$ lsmod |grep ^ip_tables
ip_tables 26995 3 iptable_filter,iptable_mangle,iptable_nat
[michael@brazzers:~]$ grep CONFIG_NF_NAT_IPV4 /boot/config-3.8.0-30-generic
CONFIG_NF_NAT_IPV4=m
Run Code Online (Sandbox Code Playgroud)
在这里可以看到iptables模块被配置为动态模块。相比较:
[michael@brazzers:~]$ ls -d /sys/module/apparmor/
/sys/module/apparmor/
[michael@brazzers:~]$ lsmod |grep ^apparmor
[michael@brazzers:~]$ grep APPARMOR /boot/config-3.8.0-30-generic
CONFIG_SECURITY_APPARMOR=y
Run Code Online (Sandbox Code Playgroud)
而 apparmor 是内置的。
/sys/module/MODULENAMEMODULENAME是内核中模块的名称。如果模块作为动态模块加载,则此模块名称将始终显示。这正是您在发出lsmod命令或检查/proc/modules文件时可以看到的内容。
如果它直接内置到内核中,那么它只会在它有一个版本或至少一个参数时才会显示。然后可用参数在目录中可用:
/sys/module/MODULENAME/parameters| 归档时间: |
|
| 查看次数: |
935 次 |
| 最近记录: |