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