Linux內(nèi)核源代碼非常龐大,隨著版本的發(fā)展不斷增加。它使用目錄樹結(jié)構(gòu),并且使用Makefile組織配置、編譯。關(guān)于linux內(nèi)核的學(xué)習(xí),可以參考華清遠(yuǎn)見《Linux內(nèi)核修煉培訓(xùn)班》的課程大綱。
初次接觸Linux內(nèi)核,好仔細(xì)閱讀頂層目錄的readme文件,它是Linux內(nèi)核的概述和編譯命令說明。readme的說明側(cè)重于X86等通用的平臺,對于某些特殊的體系結(jié)構(gòu),可能有些特殊的說明。
頂層目錄的Makefile是整個內(nèi)核配置編譯的核心文件,負(fù)責(zé)組織目錄樹中子目錄的編譯管理,還可以設(shè)置體系結(jié)構(gòu)和版本號等。
內(nèi)核源碼的頂層有許多子目錄,分別組織存放各種內(nèi)核子系統(tǒng)或者文件。具體的目錄說明如表1.7所示。
表1.7 Linux內(nèi)核源碼頂層目錄說明
arch/ |
體系結(jié)構(gòu)相關(guān)的代碼,如arch/i386、arch/arm、arch/ppc |
crypto |
常用加密和散列算法(如AES、SHA等),以及一些壓縮和CRC校驗(yàn)算法 |
drivers/ |
各種設(shè)備驅(qū)動程序,如drivers/char、drivers/block…… |
documentation/ |
內(nèi)核文檔 |
fs/ |
文件系統(tǒng),如fs/ext3、fs/jffs2…… |
include/ |
內(nèi)核頭文件:include/asm是體系結(jié)構(gòu)相關(guān)的頭文件,它是include/asm-arm、include/asm-i386等目錄的鏈接;include/linux是Linux內(nèi)核基本的頭文件 |
init/ |
Linux初始化,如main.c |
ipc/ |
進(jìn)程間通信的代碼 |
kernel/ |
Linux內(nèi)核核心代碼(這部分比較。 |
lib/ |
各種庫子程序,如zlib、crc32 |
mm/ |
內(nèi)存管理代碼 |
net/ |
網(wǎng)絡(luò)支持代碼,主要是網(wǎng)絡(luò)協(xié)議 |
sound |
聲音驅(qū)動的支持 |
scripts/ |
內(nèi)部或者外部使用的腳本 |
usr/ |
用戶的代碼 |
本文選自華清遠(yuǎn)見嵌入式培訓(xùn)教材《從實(shí)踐中學(xué)嵌入式Linux應(yīng)用程序開發(fā)》
熱點(diǎn)鏈接:
1、Linux內(nèi)核主要功能介紹
2、Linux內(nèi)核模塊程序結(jié)構(gòu)
3、如何分析Linux內(nèi)核源碼
4、嵌入式linux內(nèi)核的五個子系統(tǒng)
5、linux內(nèi)核中Makefile的使用
更多新聞>> |