Linux內核源碼目錄結構


在對Linux內核學習的同時,我們首先應該對Linux內核源碼的目錄有一定的瞭解,下面是內核源碼目錄的大概結構說明,根據內核版本的不同略有差異,不過不影響學習。以2.6.28.6內核源碼爲例:


arch目錄包括了所有和體系結構相關的核心代碼。它下面的每一個子目錄都代表一種Linux支持的體系結構,例如i386就是Intel CPU及與之相兼容體系結構的子目錄,還有arm、powerpc、mips等。


block塊設備驅動程序I/O調度 


crypto常用加密和散列算法(如AES、SHA等),還有一些壓縮和校驗算法


Documentation目錄下是一些文檔,是對每個目錄作用的具體說明(內核各部分的通用解釋和註釋)


drivers目錄中是系統中所有的設備驅動程序。每個不同的驅動佔用一個子目錄,如char、block、net、mtd、i2c等。


fs目錄存放Linux支持的各種文件系統。不同的文件系統有不同的子目錄對應,如EXT、FAT、NTFS、JFFS2等。

 

include目錄包括編譯核心所需要的大部分頭文件,與系統相關的頭文件放置在include/linux子目錄下。


init目錄包含內核的初始化代碼(不是系統的引導代碼),有main.c和Version.c兩個文件。這是研究核心如何工作的好起點。 

ipc目錄包含了內核進程間的通信代碼。 


Kernel內核管理的核心代碼放在這裏。同時與處理器結構相關代碼都放在arch/*/kernel目錄下。

 

lib目錄包含了核心的庫代碼,不過與處理器結構相關的庫代碼被放在arch/*/lib/目錄下。


mm目錄包含了所有的內存管理代碼。與具體硬件體系結構相關的內存管理代碼位於arch/*/mm目錄下。


net目錄裏是核心的網絡部分代碼,其每個子目錄對應於網絡的一個方面,實現了各種常見的網絡協議。


scripts目錄包含用於配置內核的腳本文件。

 

security主要是一個SELinux的模塊


sound:ALSA、OSS音頻設備的驅動核心代碼和常用設備的設備驅動。 


usr 實現了用於打包和壓縮的cpio等



一般在每個目錄下都有一個.depend文件和一個Makefile文件。這兩個文件都是編譯時使用的輔助文件。仔細閱讀這兩個文件對弄清各個文件之間的聯繫和依託關係很有幫助。另外有的目錄下還有Readme文件,它是對該目錄下文件的一些說明,同樣有利於對內核源碼的理解。

發佈了37 篇原創文章 · 獲贊 3 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章