小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Linux內(nèi)核源碼的組織結(jié)構(gòu)

 mrjbydd 2010-12-29
Linux內(nèi)核作為一個(gè)特殊的程序,同樣需要經(jīng)過編譯、鏈接之后才能運(yùn)行,僅僅是它執(zhí)行時(shí)擁有特殊的權(quán)限,位于特定的空間,并且不會(huì)也不可能信賴其他的軟件罷了。

Linux發(fā)展至今,其內(nèi)核的組織結(jié)構(gòu)日漸清晰,層次日漸分明。一旦基本系統(tǒng)安裝完畢,具有系統(tǒng)管理員權(quán)限的用戶即可編譯內(nèi)核。一般來說,Linux系統(tǒng)內(nèi)核的源碼放置在/usr/src/linux目錄下,它將依賴于體系結(jié)構(gòu)的代碼和獨(dú)立于體系結(jié)構(gòu)的代碼分離開來(前者僅占5%,通常是一些匯編代碼和局部的、針對(duì)于不同體系結(jié)構(gòu)的局部處理細(xì)節(jié),如時(shí)鐘定時(shí)器頻率)。

為了讓讀者更好地理清內(nèi)核結(jié)構(gòu),下面列出了幾個(gè)重要的源碼目錄:

arch目錄 該目錄的存放具體地依賴于體系結(jié)構(gòu)實(shí)現(xiàn)的代碼。在這個(gè)目錄下,針對(duì)不同體系結(jié)構(gòu)所移植的版本都有三個(gè)子目錄:kernel、lib和mm。kernel子目錄包含依賴于體系結(jié)構(gòu)實(shí)現(xiàn)的一般內(nèi)核功能,例如信號(hào)處理、時(shí)鐘處理等。lib子目錄包含庫(kù)函數(shù)的本地實(shí)現(xiàn),如果從依賴于體系結(jié)構(gòu)的源碼編譯,則運(yùn)行得更快。mm子目錄包含存儲(chǔ)管理實(shí)現(xiàn)的代碼。

drivers目錄 這個(gè)目錄擁有50%以上的內(nèi)核源碼,所有的驅(qū)動(dòng)程序源碼均位于該目錄之下。

fs目錄 該目錄存放所有的系統(tǒng)支持的文件系統(tǒng)的實(shí)現(xiàn)代碼。

include目錄 一些重要的頭文件。

ipc目錄 處理進(jìn)程間通信的全部所需的代碼都放在ipc目錄下。

init目錄 該目錄存放所有系統(tǒng)的初始化代碼,許多重要的文件,例如main.c就位于該目錄下。該文件還包含了許多核心代碼--比如實(shí)現(xiàn)fork()的代碼和最常執(zhí)行的代碼--cpuidle()循環(huán)。

lib目錄 該目錄放置內(nèi)核其他部分經(jīng)常所需要的代碼。例如,inflate.c就放在這里,它能夠在引導(dǎo)時(shí)解壓內(nèi)核并裝入內(nèi)存,它也知道如何解壓標(biāo)準(zhǔn)PKZIP 8位壓縮算法。

kernel目錄 許多最常調(diào)用的內(nèi)核函數(shù)放在該目錄下。調(diào)度器fork()和timer.c就放在這里。你還能在這個(gè)目錄下找到printk.c。

mm目錄 該目錄包含所有Linux實(shí)現(xiàn)虛擬內(nèi)存管理的源碼。

net目錄 所有提供網(wǎng)絡(luò)支持的代碼都放在這個(gè)目錄下。

Document目錄 該目錄存放了大量的內(nèi)核代碼相關(guān)文檔,以及用戶開發(fā)和維護(hù)手冊(cè)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多