Linux內核源代碼目錄樹結構介紹

Linux內核源代碼目錄樹結構介紹

餘超  [email protected]

對於初學者來說,要閱讀LINUX內核源代碼是件很複雜,很頭疼的事,六七十MB的源代碼

都不知道如何下手,可能你只會一個簡單的C程序的HelloWorld程序,不過沒關係,請看下面的簡介,

你會更加清楚,建議看到過程中下載一個3.0的穩定版本邊看邊對照源代碼。


arch:包含和硬件體系結構相關的代碼,每種平臺佔一個相應的目錄。和32位PC相關的代碼存放在i386目錄下,其中比較重要的包括kernel(內核核心部分)、mm(內存管理)、math-emu(浮點單元仿真)、lib(硬件相關工具函數)、boot(引導程序)、pci(PCI總線)和power(CPU相關狀態)。

block:部分塊設備驅動程序,主要包括硬盤和簡單字符設備的驅動,對於特定的驅動程序在drivers目錄中。
crypto:常用加密和散列算法(如AES、SHA等),還有一些壓縮和CRC校驗算法。
Documentation:關於內核各部分的通用解釋和註釋。
drivers:設備驅動程序,每個不同的驅動佔用一個子目錄。
fs:各種支持的文件系統,如ext、fat、ntfs等,主要是linux的虛擬文件系統可以直接加載任何一種文件類型。
include:頭文件。其中,和系統相關的頭文件被放置在linux子目錄下。
init:內核初始化代碼,初始內核運行狀態
ipc:進程間通信的代碼。
kernel:內核的最核心部分,包括進程調度、定時器等,和平臺相關的一部分代碼放在arch/*/kernel目錄下。
lib:庫文件代碼。
mm:內存管理代碼,和平臺相關的一部分代碼放在arch/*/mm目錄下。
net:網絡相關代碼,實現了各種常見的網絡協議。
scripts:用於配置內核文件的腳本文件。
security:主要是一個SELinux的模塊。
sound:常用音頻設備的驅動程序等。
usr:實現了一個cpio。
在i386體系下,系統引導將從arch/i386/kernel/head.s開始執行,並進而轉移到init/main.c中的main()函數初始化內核。

到此所有目錄都介紹完畢。

是不是有很大的提高呢?如果你覺得linux-3.0的源代碼很多,你可以下載1.0.0最初的源代碼版本來讀

也可以。

源代碼下載地址:

http://www.kernel.org/

http://www.kernel.org/mirrors/



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