1. 程式人生 > >如何檢視 linux 核心原始碼?

如何檢視 linux 核心原始碼?

Linux的核心原始碼可以從很多途徑得到。一般來講,在安裝的linux系統下,/usr/src/linux目錄下的東西就是核心原始碼。

對於原始碼的閱讀,要想比較順利,事先最好對原始碼的知識背景有一定的瞭解。對於linux核心原始碼來講,我認為,基本要求是:1、作業系統的基本知識;  2、對C語言比較熟悉,最好要有組合語言的知識和GNU C對標準C的擴充套件的知識的瞭解。

另外在閱讀之前,還應該知道Linux核心原始碼的整體分佈情況。我們知道現代的作業系統一般由程序管理、記憶體管理、檔案系統、驅動程式、網路等組成。看一下Linux核心原始碼就可看出,各個目錄大致對應了這些方面。Linux核心原始碼的組成如下(假設相對於linux目錄): 

arch 這個子目錄包含了此核心原始碼所支援的硬體體系結構相關的核心程式碼。如對於X86平臺就是i386。
include
這個目錄包括了核心的大多數include檔案。另外對於每種支援的體系結構分別有一個子目錄。
init 此目錄包含核心啟動程式碼。
mm 此目錄包含了所有的記憶體管理程式碼。與具體硬體體系結構相關的記憶體管理程式碼位於arch/-/mm目錄下,如對應於X86的就是arch/i386/mm/fault.c 。
drivers 系統中所有的裝置驅動都位於此目錄中。它又進一步劃分成幾類裝置驅動,每一種也有對應的子目錄,如音效卡的驅動對應於drivers/sound。
ipc 此目錄包含了核心的程序間通訊程式碼。
modules 此目錄包含已建好可動態載入的模組。
fs Linux支援的檔案系統程式碼。不同的檔案系統有不同的子目錄對應,如ext2檔案系統對應的就是ext2子目錄。
kernel
主要核心程式碼。同時與處理器結構相關程式碼都放在arch/-/kernel目錄下。
net 核心的網路部分程式碼。裡面的每個子目錄對應於網路的一個方面。
lib 此目錄包含了核心的庫程式碼。與處理器結構相關庫程式碼被放在arch/-/lib/目錄下。
scripts 此目錄包含用於配置核心的指令碼檔案。
Documentation 此目錄是一些文件,起參考作用。