天天看點

【lLinux驅動】linux核心源碼目錄結構

<a target="_blank" href="http://www.cnblogs.com/sirsunny/archive/2004/12/15/77506.html">linux核心源碼目錄結構</a>

代碼目錄結構 

在閱讀源碼之前,還應知道linux核心源碼的整體分布情況。現代的作業系統一般由程序管理、記憶體管理、檔案系統、驅動程式和網絡等組成。linux核心源碼的各個目錄大緻與此相對應,其組成如下(假設相對于linux-2.4.23目錄): 

arch目錄包括了所有和體系結構相關的核心代碼。它下面的每一個子目錄都代表一種linux支援的體系結構,例如i386就是intel cpu及與之相相容體系結構的子目錄。pc機一般都基于此目錄。 

include目錄包括編譯核心所需要的大部分頭檔案,例如與平台無關的頭檔案在include/linux子目錄下。 

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

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

drivers目錄中是系統中所有的裝置驅動程式。它又進一步劃分成幾類裝置驅動,每一種有對應的子目錄,如聲霸卡的驅動對應于drivers/sound。 

ipc目錄包含了核心程序間的通信代碼。 

modules目錄存放了已建好的、可動态加載的子產品。 

fs目錄存放linux支援的檔案系統代碼。不同的檔案系統有不同的子目錄對應,如ext3檔案系統對應的就是ext3子目錄。 

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

net目錄裡是核心的網絡部分代碼,其每個子目錄對應于網絡的一個方面。 

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

scripts目錄包含用于配置核心的腳本檔案。 

documentation目錄下是一些文檔,是對每個目錄作用的具體說明。 

一般在每個目錄下都有一個makefile檔案。這兩個檔案都是編譯時使用的輔助檔案。仔細閱讀這兩個檔案對弄清各個檔案之間的聯系和依托關系很有幫助。另外有的目錄下還有readme檔案,它是對該目錄下檔案的一些說明,同樣有利于對核心源碼的了解。 

繼續閱讀