在C++中获取 Linux 内核模块的详细信息



在Linux中,我需要获取所有驱动程序模块的详细信息(即服务退出代码,状态,类型等),我尝试读取/proc/modules。但它只给出名称、大小和使用次数。我读到modinfolib/modules/中检索信息,但所有模块都没有所有信息。 我从哪里可以可靠地获得这些详细信息。我正在用C++编码.

内核模块由struct module处理。您可以编写一个模块来从内核中获取该信息(并在另一个/proc文件中提供),或使用调试器从/proc/kcore读取原始内核内存。

但是,Linux 保留的每个模块的信息并不符合您的需求:

  • 服务退出代码不会由内核保存,而是立即作为错误号返回给调用方init_module()(即 modprobeinsmod工具)
  • 地位——没有这样的事情。最接近的是state,但它是过渡性的,仅在加载期间使用
  • 类型
  • -- Linux 不区分模块类型

一般来说,您无法从Linux获得这些详细信息。/proc/modules 中已经提供了最有用的信息。

相关内容

最新更新