W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
我們已經(jīng)看到 insmod 如何對應(yīng)共用的內(nèi)核符號來解決未定義的符號. 表中包含了全局內(nèi)核項的地址 -- 函數(shù)和變量 -- 需要來完成模塊化的驅(qū)動. 當加載一個模塊, 如何由模塊輸出的符號成為內(nèi)核符號表的一部分. 通常情況下, 一個模塊完成它自己的功能不需要輸出如何符號. 你需要輸出符號, 但是, 在任何別的模塊能得益于使用它們的時候.
新的模塊可以用你的模塊輸出的符號, 你可以堆疊新的模塊在其他模塊之上. 模塊堆疊在主流內(nèi)核源碼中也實現(xiàn)了: msdos 文件系統(tǒng)依賴 fat 模塊輸出的符號, 某一個輸入 USB 設(shè)備模塊堆疊在 usbcore 和輸入模塊之上.
模塊堆疊在復雜的工程中有用處. 如果一個新的抽象以驅(qū)動程序的形式實現(xiàn), 它可能提供一個特定硬件實現(xiàn)的插入點. 例如, video-for-linux 系列驅(qū)動分成一個通用模塊, 輸出了由特定硬件的低層設(shè)備驅(qū)動使用的符號. 根據(jù)你的設(shè)置, 你加載通用的視頻模塊和你的已安裝硬件對應(yīng)的特定模塊. 對并口的支持和眾多可連接設(shè)備以同樣的方式處理, 如同 USB 內(nèi)核子系統(tǒng). 在并口子系統(tǒng)的堆疊在圖 并口驅(qū)動模塊的堆疊 中顯示; 箭頭顯示了模塊和內(nèi)核編程接口間的通訊.
圖?2.2.?并口驅(qū)動模塊的堆疊
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: