获取 C++ 中 Linux 个内核模块的详细信息
Get details of Linux kernel modules in C++
在 Linux 中,我需要获取所有驱动程序模块的详细信息(即服务退出代码、状态、类型等),我尝试阅读 /proc/modules
。但它只提供名称、大小和使用次数。我读到 modinfo
从 lib/modules/
检索信息,但并非所有模块都包含所有信息。从哪里可以可靠地获得这些详细信息。我正在 C++
编码。
内核模块由 struct module
处理。您可以编写一个模块以从内核中获取该信息(并在另一个 /proc
文件中提供)或使用调试器从 /proc/kcore
读取原始内核内存。
但是,Linux 每个模块保留的信息不符合您的需要:
- 服务退出代码 未被内核保存,但立即返回给
init_module()
调用者作为错误号(即 modprobe
或 insmod
工具)
- status -- 没有这样的东西。最近的是
state
,但它是过渡性的,仅在加载期间使用
- type -- Linux不区分模块类型
一般来说,您无法从 Linux 中获取详细信息。 /proc/modules
.
中已经提供了最有用的信息
在 Linux 中,我需要获取所有驱动程序模块的详细信息(即服务退出代码、状态、类型等),我尝试阅读 /proc/modules
。但它只提供名称、大小和使用次数。我读到 modinfo
从 lib/modules/
检索信息,但并非所有模块都包含所有信息。从哪里可以可靠地获得这些详细信息。我正在 C++
编码。
内核模块由 struct module
处理。您可以编写一个模块以从内核中获取该信息(并在另一个 /proc
文件中提供)或使用调试器从 /proc/kcore
读取原始内核内存。
但是,Linux 每个模块保留的信息不符合您的需要:
- 服务退出代码 未被内核保存,但立即返回给
init_module()
调用者作为错误号(即modprobe
或insmod
工具) - status -- 没有这样的东西。最近的是
state
,但它是过渡性的,仅在加载期间使用 - type -- Linux不区分模块类型
一般来说,您无法从 Linux 中获取详细信息。 /proc/modules
.