2012-01-02 49 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

相關問題