枚举(所有)加载的内核模块

枚举(所有)加载的内核模块

注意这一点邮政没有完全回答我的问题。

我检查了 Debian 安装的内存转储。具体来说,我检查了内核内存空间并手动检查了当前的代码片段。检查代码片段后,我在内存中发现了合理数量的片段,这些片段实际上属于一个模块(即 sky2.ko),而 lsmod 或其他日志记录机制并未列出该模块。

我试图了解 LKM 的功能以及内核本身内置的模块的存在。然而,在检查了每个资源、grep 所有日志并尝试了解可能的依赖关系之后,我无法回答 LKM 何时何地实际加载到 RAM 中的问题。

是否有我没有考虑的加载/卸载步骤?例如,udev 加载 LKM 并在几个步骤后将其丢弃?

我可以使用 lsmod 解决所有交叉加载(例如通过 LKM 依赖项)吗?这看起来并非如此?

是否有一个综合资源,列出了可能加载 LKM 的所有断点?

期望:据我目前的理解,碎片是由于初始 ramdisk 而发生的(参见这个很棒的答案)。然而,我怎样才能证实我的假设呢?

答案1

lsmod将仅显示可加载模块:

# lsmod
Module                  Size  Used by
nls_iso8859_1          16384  0
vfat                   20480  0
fat                    77824  1 vfat
isofs                  45056  0
(...)

其余的可以通过内核配置获得:

# zless /proc/config.gz

或者

# zgrep "=y" /proc/config.gz

然而,这还显示了除了编译的“模块”之外的一些配置选项(作为启用的选项)。

相关内容