日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Linux驅(qū)動中的.o文件與.ko文件的區(qū)別

 XeonGate 2015-08-03
最近在學(xué)習(xí)linux的驅(qū)動,之前做嵌入式實驗的時候加載驅(qū)動模塊都是.o文件,但是現(xiàn)在發(fā)現(xiàn)很多驅(qū)動模塊都是.ko文件,于是上網(wǎng)查了一下兩者的區(qū)別,現(xiàn)在貼出來,和大家一起分享。
  .o文件也就是object文件,.ko文件是kernel object文件,與.o的區(qū)別在于其多了一些sections,比如.modinfo。.modinfo section是由kernel source里的modpost工具生成的,包括MODULE_AUTHOR, MODULE_DESCRIPTION, MODULE_LICENSE, device ID table以及模塊依賴關(guān)系等等。depmod工具根據(jù).modinfo section生成modules.dep, modules.*map等文件,以便modprobe更方便的加載模塊。

  在2.6內(nèi)核下編譯driver, 首先要確認(rèn)你的linux系統(tǒng)里有沒有kernel tree,檢查的方法是看看文件夾/lib/modules/$(uname -r)/build是否指向source code,并進去看看,是否有Makefile, include, scripts等文件夾,在scripts/mod下可以找到前面提到的modpost,這個是生成.ko的關(guān)鍵。如果沒有kernel tree,需要重新build一份kernel來建立這個kernel tree。
  在2.4內(nèi)核中,生成的就是.o文件。2.6的kernel對內(nèi)核模塊的管理做了一些擴展,生成的就是.ko文件。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多