小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

 XeonGate 2015-08-03
最近在學(xué)習(xí)linux的驅(qū)動(dòng),之前做嵌入式實(shí)驗(yàn)的時(shí)候加載驅(qū)動(dòng)模塊都是.o文件,但是現(xiàn)在發(fā)現(xiàn)很多驅(qū)動(dòng)模塊都是.ko文件,于是上網(wǎng)查了一下兩者的區(qū)別,現(xiàn)在貼出來(lái),和大家一起分享。
  .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,并進(jìn)去看看,是否有Makefile, include, scripts等文件夾,在scripts/mod下可以找到前面提到的modpost,這個(gè)是生成.ko的關(guān)鍵。如果沒有kernel tree,需要重新build一份kernel來(lái)建立這個(gè)kernel tree。
  在2.4內(nèi)核中,生成的就是.o文件。2.6的kernel對(duì)內(nèi)核模塊的管理做了一些擴(kuò)展,生成的就是.ko文件。

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多