成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

linux源代碼分析 如何查看linux內(nèi)核源代碼?

如何查看linux內(nèi)核源代碼?一般來說,目錄/usr/src/Linux *。*.* (*.*代表內(nèi)核版本,如2.4.23)在Linux系統(tǒng)中是內(nèi)核源代碼(如果沒有類似的目錄,那是因為內(nèi)核代碼還沒有

linux源代碼分析 如何查看linux內(nèi)核源代碼?

如何查看linux內(nèi)核源代碼?

一般來說,目錄/usr/src/Linux *。*.* (*.*代表內(nèi)核版本,如2.4.23)在Linux系統(tǒng)中是內(nèi)核源代碼(如果沒有類似的目錄,那是因為內(nèi)核代碼還沒有安裝)。此外,還可以從網(wǎng)上免費下載。注意,不要總是下載,最好用它的鏡像站點下載。請在目錄中找到合適的下載點,然后到pub/linux/kernel/v2.6/目錄下載2.4.23內(nèi)核。

代碼目錄結(jié)構(gòu)

在閱讀源代碼之前,你還應(yīng)該了解Linux內(nèi)核源代碼的整體分布?,F(xiàn)代操作系統(tǒng)一般由進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)、驅(qū)動程序和網(wǎng)絡(luò)組成。Linux內(nèi)核源代碼的每個目錄大致對應(yīng)于此,其構(gòu)成如下(假設(shè)相對于Linux-2.4.23目錄):

該目錄包含所有與架構(gòu)相關(guān)的核心代碼。下面的每個子目錄代表一個Linux支持的體系結(jié)構(gòu)。比如i386就是Intel CPU及其兼容架構(gòu)的子目錄。一般PC都是基于這個目錄的。

包括編譯核心所需的大多數(shù)頭文件,如include/linux子目錄中的平臺無關(guān)頭文件。

包含目錄核心的初始化代碼(不是系統(tǒng)的引導(dǎo)代碼),有兩個文件:main.c和Version.c這是研究核心如何工作的一個很好的起點。

該目錄包含所有的內(nèi)存管理代碼。與特定硬件架構(gòu)相關(guān)的內(nèi)存管理代碼位于arch/*/mm目錄中。

目錄是系統(tǒng)中所有的設(shè)備驅(qū)動程序。它又分為幾種類型的設(shè)備驅(qū)動程序,每種驅(qū)動程序都有相應(yīng)的子目錄。比如聲卡的驅(qū)動對應(yīng)驅(qū)動/聲音。

6.ipc目錄包含核心進(jìn)程之間的通信代碼。

該目錄存儲構(gòu)建的和可動態(tài)加載的模塊。

8.fs目錄存儲了Linux支持的文件系統(tǒng)代碼。不同的文件系統(tǒng)有不同的子目錄。比如ext3文件系統(tǒng)對應(yīng)ext3子目錄。

內(nèi)核內(nèi)核管理的核心代碼在這里。同時,與處理器結(jié)構(gòu)相關(guān)的代碼放在arch/*/kernel目錄下。

目錄是網(wǎng)絡(luò)的核心代碼,每個子目錄對應(yīng)網(wǎng)絡(luò)的一個方面。

該目錄包含核心庫代碼,但與處理器結(jié)構(gòu)相關(guān)的庫代碼放在arch/*/lib/目錄中。

目錄包含用于配置核心的腳本文件。

下面是一些文檔,是對每個目錄的功能的具體描述。

通常,每個目錄中都有一個. depend文件和一個Makefile文件。這兩個文件都是編譯過程中使用的輔助文件。仔細(xì)閱讀這兩個文件,非常有助于理清它們之間的關(guān)系和依賴關(guān)系。另外,有些目錄下有自述文件,是這個目錄下文件的一些描述,也有利于理解內(nèi)核源代碼。

有縱向和橫向的閱讀方法或順序。所謂縱向,就是按照程序的執(zhí)行順序一步一步來;所謂橫向,就是按照模塊。它們經(jīng)常結(jié)合在一起。Linux啟動的代碼可以沿著Linux的啟動順序一步一步的讀;對于內(nèi)存管理部分,可以單獨拿出來閱讀分析。其實這是一個迭代的過程,不可能看一遍就明白。