2012-01-02 52 views

回答

15

depmod不仅仅是计算直接依赖关系 - 它还建立了硬件标识符和处理它们的模块之间的映射。这用于找到加载检测到的硬件的正确模块。

至于为什么它不会像用户空间那样做需求加载,部分原因是因为内核链接程序不允许通过设计访问文件系统。内核中的哲学是文件系统的布局完全取决于用户空间,因此不能保证foo.ko将在/lib/modules/3.0.1/drivers/somesubsys/foo.ko中找到。因此,内核依赖于用户空间实用程序(如depmod和modprobe)将其模块的原始数据按照其加载所需的顺序传递给它;如果用户空间在这个工作中失败,它只是返回一个错误,并让用户空间处理混乱。

+1

但是,modprobe可以负责解决模块内信息的依赖关系,并首先探测相应的依赖模块,不是吗? – PypeBros 2013-03-12 12:22:28

+3

depmod为modprobe的使用构建这个依赖信息的缓存。实际上扫描所有模块的信息可能需要相当长的一段时间,所以您不希望每次调用modprobe时都这样做 – bdonlan 2013-03-23 04:24:25

相关问题