- 相關(guān)推薦
Linux內核源代碼的閱讀和工具介紹
許多人對于閱讀Linux內核有一種恐懼感,其實(shí)大可不必。當然,象Linux內核這樣大而復雜的系統代碼,閱讀起來(lái)確實(shí)有很多困難,但是也不象想象的那么高不可攀。只要有恒心,困難都是可以克服的。任何事情做起來(lái)都需要有方法和工具。正確的方法可以指導工作,良好的工具可以事半功倍。對于Linux 內核源代碼的閱讀也同樣如此。下面我就把自己閱讀內核源代碼的一點(diǎn)經(jīng)驗介紹一下,最后介紹Window平臺下的一種閱讀工具。
對于源代碼的閱讀,要想比較順利,事先最好對源代碼的知識背景有一定的了解。對于linux內核源代碼來(lái)講,基本要求是:⑴ 操作系統的基本知識;⑵ 對C語(yǔ)言比較熟悉,最好要有匯編語(yǔ)言的知識和GNU C對標準C的擴展的知識的了解。另外在閱讀之前,還應該知道Linux內核源代碼的整體分布情況。我們知道現代的操作系統一般由進(jìn)程管理、內存管理、文件系統、驅動(dòng)程序、網(wǎng)絡(luò )等組成?匆幌翷inux內核源代碼就可看出,各個(gè)目錄大致對應了這些方面。Linux內核源代碼的組成如下(假設相對于linux目錄):
arch 這個(gè)子目錄包含了此核心源代碼所支持的硬件體系結構相關(guān)的核心代碼。如對于X86平臺就是i386。
include 這個(gè)目錄包括了核心的大多數include文件。另外對于每種支持的體系結構分別有一個(gè)子目錄。
init 此目錄包含核心啟動(dòng)代碼。
mm 此目錄包含了所有的內存管理代碼。與具體硬件體系結構相關(guān)的內存管理代碼位于arch/*/mm目錄下,如對應于X86的就是arch/i386/mm/fault.c 。
drivers 系統中所有的設備驅動(dòng)都位于此目錄中。它又進(jìn)一步劃分成幾類(lèi)設備驅動(dòng),每一種也有對應的子目錄,如聲卡的驅動(dòng)對應于drivers/sound。
ipc 此目錄包含了核心的進(jìn)程間通訊代碼。
modules 此目錄包含已建好可動(dòng)態(tài)加載的模塊。
fs Linux支持的文件系統代碼。不同的文件系統有不同的子目錄對應,如ext2文件系統對應的就是ext2子目錄。
kernel 主要核心代碼。同時(shí)與處理器結構相關(guān)代碼都放在arch/*/kernel目錄下。
net 核心的網(wǎng)絡(luò )部分代碼。里面的每個(gè)子目錄對應于網(wǎng)絡(luò )的一個(gè)方面。
lib 此目錄包含了核心的庫代碼。與處理器結構相關(guān)庫代碼被放在arch/*/lib/目錄下。
下一頁(yè)
【Linux內核源代碼的閱讀和工具介紹】相關(guān)文章:
架設基于Linux(2.6內核)的服務(wù)器集群08-22
基于OMAP5912的Linux內核移植技術(shù)09-08
在嵌入式linux2.4.18內核中實(shí)現CS8900A網(wǎng)卡驅動(dòng)10-12
論文:Linux進(jìn)程和線(xiàn)程的基礎與管理08-18
Gdb/Armulator 源代碼分析05-09
LINUX操作系統10-11
幾個(gè)實(shí)用的AutoCAD附加工具和系統變量08-09
隱性知識的管理理論和應用工具08-09
企業(yè)知識管理的實(shí)現技術(shù)和工具的電商論文09-17
- 埃沃斯特廣告公司網(wǎng)絡(luò )營(yíng)銷(xiāo)計劃
- 淺析PHP加密技術(shù)在網(wǎng)站安全方面的應用
- 專(zhuān)題閱讀和閱讀短長(cháng)
- 簡(jiǎn)析分組協(xié)作式學(xué)習在中職計算機教學(xué)中的應用
- 計算機網(wǎng)絡(luò )硬件的不同檢測方法與維護
- 計算機網(wǎng)絡(luò )詞匯翻譯淺析
- 淺談無(wú)線(xiàn)傳感器網(wǎng)絡(luò )應用于深空探測的一些關(guān)鍵技術(shù)
- 局域網(wǎng)數據庫環(huán)境下數據采集及處理
- 網(wǎng)絡(luò )空間信息表征與用戶(hù)認知的交互作用機制
- linux面試題及答案
- 個(gè)人簡(jiǎn)歷和自我介紹
- 英語(yǔ)快速閱讀技巧
- 語(yǔ)文閱讀答題技巧
- 考研英語(yǔ)閱讀理解
- 學(xué)習和工作簡(jiǎn)歷
- 工作心得和體會(huì )
- 學(xué)習和工作簡(jiǎn)歷
- 學(xué)期自我反省和總結
- 會(huì )計實(shí)習心得和體會(huì )