注意这一点邮政没有完全回答我的问题。
我检查了 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
然而,这还显示了除了编译的“模块”之外的一些配置选项(作为启用的选项)。