linux module 目录,/sys/module/ 模块信息目录与/proc/modules文件

本文介绍了Linux内核模块的编译选择,以及系统中两个关键目录——/sys/module/和/proc/modules——如何存储模块信息。/sys/module/包含所有模块的详细信息,无论模块是内联还是编译为外部ko文件。/proc/modules文件则列出模块名称、内存占用和使用计数。此外,还讨论了不同目录下的文件和它们的用途,如holders、parameters、refcnt和srcversion等。
摘要由CSDN通过智能技术生成

在内核模块编译中,会选择编译成模块,或者build in 内核镜像中,其中对内核模块有很好的的说明,这也是linux在嵌入式当中得到广泛应用的充分体现, 内核中有很多功能选项,其中有许多使我们不需要的,内核设计成模块的优势所在就在这里,不需要的我们不需要进行编译,在进行裁剪过后(剔除不需要的功能选项之后),编译成我们的镜像文件。其中内核模块有很多选项之间是相互依赖的,这也就是在进行内核裁剪的时候难点的所在。

对模块在这里我要进行一定说明和解释,在系统目录中有两处包含模块的相关信息

(1)/sys/module/(目录下)(包含所有编译的模块信息)

这里有系统中所有模块的信息,不论这些模块是以内联(inlined)方式编译到内核映像文件(vmlinuz)中还是编译为外部模块(ko文件),都可能会出现在 /sys/module 中:

编译为外部模块(ko文件)在加载后会出现对应的 /sys/module//, 并且在这个目录下会出现一些属性文件和属性目录来表示此外部模块的一些信息,如版本号、加载状态、所提供的驱动程序等;

编译为内联方式的模块则只在当它有非0属性的模块参数时会出现对应的 /sys/module/, 这些模块的可用参数会出现在 /sys/modules//parameters/ 中,

如 /sys/module/printk/parameters/time 这个可读写参数控制着内联模块 printk 在打印内核消息时是否加上时间前缀;

所有内联模块的参数也可以由 ".=" 的形式写在内核启动参数上,如启动内核时加上参数 "printk.time=1" 与 向 "/sys/module/printk/parameters/time

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值