九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Linux操作系統(tǒng)內(nèi)核源碼目錄結(jié)構(gòu)詳解

Linux內(nèi)核源碼目錄結(jié)構(gòu)

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

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

arch目錄包括了所有和體系結(jié)構(gòu)相關(guān)的核心代碼。它下面的每一個(gè)子目錄都代表一種Linux支持的體系結(jié)構(gòu),例如i386就是Intel CPU及與之相兼容體系結(jié)構(gòu)的子目錄。PC機(jī)一般都基于此目錄。

include目錄包括編譯核心所需要的大部分頭文件,例如與平臺(tái)無(wú)關(guān)的頭文件在include/linux子目錄下。

init目錄包含核心的初始化代碼(不是系統(tǒng)的引導(dǎo)代碼),有main.c和 Version.c兩個(gè)文件。這是研究核心如何工作的好起點(diǎn)。mm目錄包含了所有的內(nèi)存管理代碼。與具體硬件體系結(jié)構(gòu)相關(guān)的內(nèi)存管理代碼位于 arch/*/mm目錄下。drivers目錄中是系統(tǒng)中所有的設(shè)備驅(qū)動(dòng)程序。它又進(jìn)一步劃分成幾類(lèi)設(shè)備驅(qū)動(dòng),每一種有對(duì)應(yīng)的子目錄,如聲卡的驅(qū)動(dòng)對(duì)應(yīng)于 drivers/sound。

ipc目錄包含了核心進(jìn)程間的通信代碼。modules目錄存放了已建好的、可動(dòng)態(tài)加載的模塊。fs目錄存放Linux支持的文件系統(tǒng)代碼。不同的文件系統(tǒng)有不同的子目錄對(duì)應(yīng),如ext3文件系統(tǒng)對(duì)應(yīng)的就是ext3子目錄。 Kernel內(nèi)核管理的核心代碼放在這里。同時(shí)與處理器結(jié)構(gòu)相關(guān)代碼都放在arch/*/kernel目錄下。net目錄里是核心的網(wǎng)絡(luò)部分代碼,其每個(gè)子目錄對(duì)應(yīng)于網(wǎng)絡(luò)的一個(gè)方面。lib目錄包含了核心的庫(kù)代碼,不過(guò)與處理器結(jié)構(gòu)相關(guān)的庫(kù)代碼被放在arch/*/lib/目錄下。scripts目錄包含用于配置核心的腳本文件。documentation目錄下是一些文檔,是對(duì)每個(gè)目錄作用的具體說(shuō)明。

一般在每個(gè)目錄下都有一個(gè).depend文件和一個(gè)Makefile文件。這兩個(gè)文件都是編譯時(shí)使用的輔助文件。仔細(xì)閱讀這兩個(gè)文件對(duì)弄清各個(gè)文件之間的聯(lián)系和依托關(guān)系很有幫助。另外有的目錄下還有Readme文件,它是對(duì)該目錄下文件的一些說(shuō)明,同樣有利于對(duì)內(nèi)核源碼的理解。

http://linux.chinaitlab.com/kernel/531030.html

   獲取內(nèi)核

    一般在Linux系統(tǒng)中的/usr/src/linux*.*.*(*.*.*代表的是內(nèi)核版本,如2.4.23)目錄下就是內(nèi)核源代碼(如果沒(méi)有類(lèi)似目錄,是因?yàn)檫€沒(méi)安裝內(nèi)核代碼)。另外還可從互連網(wǎng)上免費(fèi)下載。注意,不要總到http://www.kernel.org/去下載,最好使用它的鏡像站點(diǎn)下載。請(qǐng)?jiān)趆ttp://www.kernel.org/mirrors/里找一個(gè)合適的下載點(diǎn),再到pub/linux/kernel/v2.6/目錄下去下載2.4.23內(nèi)核。這里有兩種類(lèi)型的代碼包,即linux-2.4.23.tar.gz和linux-2.4.23.tar.bz2。兩個(gè)代碼包內(nèi)容是一樣的,只是壓縮程序不同。.gz是用gzip壓縮的;.bz2是用bzip2壓縮的。bzip2的壓縮能力比gzip強(qiáng)。

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

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

◆arch目錄包括了所有和體系結(jié)構(gòu)相關(guān)的核心代碼。它下面的每一個(gè)子目錄都代表一種Linux支持的體系結(jié)構(gòu),例如i386就是Intel CPU及與之相兼容體系結(jié)構(gòu)的子目錄。PC機(jī)一般都基于此目錄。

◆include目錄包括編譯核心所需要的大部分頭文件,例如與平臺(tái)無(wú)關(guān)的頭文件在include/linux子目錄下。

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

◆mm目錄包含了所有的內(nèi)存管理代碼。與具體硬件體系結(jié)構(gòu)相關(guān)的內(nèi)存管理代碼位于arch/*/mm目錄下。

◆drivers目錄中是系統(tǒng)中所有的設(shè)備驅(qū)動(dòng)程序。它又進(jìn)一步劃分成幾類(lèi)設(shè)備驅(qū)動(dòng),每一種有對(duì)應(yīng)的子目錄,如聲卡的驅(qū)動(dòng)對(duì)應(yīng)于drivers/sound。

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

◆modules目錄存放了已建好的、可動(dòng)態(tài)加載的模塊。

◆fs目錄存放Linux支持的文件系統(tǒng)代碼。不同的文件系統(tǒng)有不同的子目錄對(duì)應(yīng),如ext3文件系統(tǒng)對(duì)應(yīng)的就是ext3子目錄。

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

◆net目錄里是核心的網(wǎng)絡(luò)部分代碼,其每個(gè)子目錄對(duì)應(yīng)于網(wǎng)絡(luò)的一個(gè)方面。

◆lib目錄包含了核心的庫(kù)代碼,不過(guò)與處理器結(jié)構(gòu)相關(guān)的庫(kù)代碼被放在arch/*/lib/目錄下。

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

◆documentation目錄下是一些文檔,是對(duì)每個(gè)目錄作用的具體說(shuō)明。

    一般在每個(gè)目錄下都有一個(gè).depend文件和一個(gè)Makefile文件。這兩個(gè)文件都是編譯時(shí)使用的輔助文件。仔細(xì)閱讀這兩個(gè)文件對(duì)弄清各個(gè)文件之間的聯(lián)系和依托關(guān)系很有幫助。另外有的目錄下還有Readme文件,它是對(duì)該目錄下文件的一些說(shuō)明,同樣有利于對(duì)內(nèi)核源碼的理解。

                                   閱讀起步

    在閱讀方法或順序上,有縱向與橫向之分。所謂縱向就是順著程序的執(zhí)行順序逐步進(jìn)行;所謂橫向,就是按模塊進(jìn)行。它們經(jīng)常結(jié)合在一起進(jìn)行。對(duì)于Linux啟動(dòng)的代碼可順著Linux的啟動(dòng)順序一步步來(lái)閱讀;對(duì)于像內(nèi)存管理部分,可以單獨(dú)拿出來(lái)進(jìn)行閱讀分析。實(shí)際上這是一個(gè)反復(fù)的過(guò)程,不可能讀一遍就理解。

    LXR(http://lxr.linux.no)是一個(gè)輔助閱讀的好工具,它能對(duì)指定的源碼文件建立索引數(shù)據(jù)庫(kù),利用Perl腳本動(dòng)態(tài)生成包含源碼的Web頁(yè)面。在此Web頁(yè)中,所有的變量、常量和函數(shù)都以超連接的形式給出,查閱十分方便。另外,LXR還提供標(biāo)識(shí)符搜索和文件搜索,結(jié)合程序Glimpse(http://glimpse.cs.arizona.edu)還可以對(duì)所有的源碼文件進(jìn)行全文檢索,甚至包括注釋。其安裝方法可以參照其代碼中的幫助文件。在Window下也有一適合Linux內(nèi)核閱讀的工具稱(chēng)作Source Insight(可從http://www.sourcedyn.com下載)。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
4.1.2 內(nèi)核源碼目錄介紹
Linux內(nèi)核源碼的組織結(jié)構(gòu)
Linux內(nèi)核分析(一)
Linux源代碼目錄結(jié)構(gòu)說(shuō)明
linux 內(nèi)核源代碼目錄結(jié)構(gòu)概述
linux 2.6內(nèi)核源代碼目錄樹(shù)簡(jiǎn)介
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服