日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux内核源码目录说明

發布時間:2023/12/10 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux内核源码目录说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux內核源代碼位于/usr/src/linux目錄下,其結構分布如圖1.3所示,每一個目錄或子目錄可以看作一個模塊,其目錄之間的連線表示“子目錄或子模塊”的關系。下面是對每一個目錄的簡單描述。

Arch

目錄包括了所有和體系結構相關的核心代碼。它下面的每一個子目錄都代表一種Linux支持的體系結構,例如X86就是Intel?CPU及與之相兼容體系結構的子目錄。Arch目錄下的子目錄包括:/arch/kernel、/arch/mm、/arch/include、/arch/boot、/arch/configs。其中/arch/kernel目錄包含了與CPU相關的中斷和SMP等信息,/arch/boot包含了系統啟動的相關信息和make之后生成的啟動鏡像文件bzImage。

Copying

目錄下是GPL版權申明。對具有GPL版權的源代碼改動而形成的程序,或使用GPL工具產生的程序,具有使用GPL發表的義務,如公開源代碼。

Credits

目錄下是光榮榜。對Linux做出過很大貢獻的一些人的信息。

Documentation

目錄下是一些文檔,linux-3.0.4版本該目錄下有217個文件,文件00-INDEX對該目錄下的所有文件進行了簡要說明,其他文件分別對linux操作系統的各個部分進行了說明。IRQ.txt描述了什么是中斷及中斷在系統中的枚舉定義和頭文件的位置;Changes描述了當前版本的系統對各個軟件版本的需求,linux 3.0.4要求make的版本為3.8.0,grub的版本為0.93。

Drivers

目錄中是系統中所有的設備驅動程序。它又進一步劃分成幾類設備驅動,每一種有對應的子目錄,如聲卡的驅動對應于drivers/sound;?block?下為塊設備驅動程序,比如ide(ide.c)。如果你希望查看所有可能包含文件系統的設備是如何初始化的,你可以看drivers/block/genhd.c中的device_setup()。它不僅初始化硬盤,也初始化,因為安裝nfs文件系統的時候需要網絡其他:?如,?Lib放置核心的庫代碼;?Net,核心與網絡相關的代碼;?Ipc,這個目錄包含核心的進程間通訊的代碼;?Fs,所有的文件系統代碼和各種類型的文件操作代碼,它的每一個子目錄支持一個文件系統,例如fat和ext2。

Fs

目錄存放Linux支持的文件系統代碼和各種類型的文件操作代碼。每一個子目錄支持一個文件系統,包括我們常用的文件系統類型:Ext2、Ext3、Ext4、 Proc、Fat和Nfs。其中Ext3文件系統對應的就是/fs/ext3目錄。

Include

目錄包括編譯核心所需要的大部分頭文件,例如與平臺無關的頭文件在include/linux子目錄下,與?intel?cpu相關的頭文件在include/asm-i386子目錄下,而include/scsi目錄則是有關scsi設備的頭文件目錄。

Init

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

Ipc

目錄包含了核心進程間的通信代碼。

Kernel

內核管理的核心代碼,此目錄下的文件實現了大多數linux系統的內核函數,其中最重要的文件當屬sched.c;同時與處理器結構相關代碼都放在arch/*/kernel目錄下。

Lib

目錄包含了核心的庫代碼,不過與處理器結構相關的庫代碼被放在arch/*/lib/目錄下。

Maintainers

目錄存放了維護人員列表,對當前版本的內核各部分都有誰負責。

Makefile

目錄第一個Makefile文件。用來組織內核的各模塊,記錄了個模塊間的相互這間的聯系和依托關系,編譯時使用;仔細閱讀各子目錄下的Makefile文件對弄清各個文件這間的聯系和依托關系很有幫助。

Mm

目錄包含了所有獨立于?cpu?體系結構的內存管理代碼,如頁式存儲管理內存的分配和釋放等。與具體硬件體系結構相關的內存管理代碼位于arch/*/mm目錄下,例如arch/i386/mm/Fault.c?。

Net

目錄里是核心的網絡部分代碼,其每個子目錄對應于網絡的一個方面。

ReadMe

文件提供內核的各種編譯方法;生成文件的查看方法,如 nm vmlinux | sort | less

Reporting-bugs

目錄里是有關報告Bug?的一些內容

Rules.make

目錄里是各種Makefilemake所使用的一些共同規則

Scripts

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

一般在每個目錄下都有一個.depend文件和一個Makefile文件。這兩個文件都是編譯時使用的輔助文件。仔細閱讀這兩個文件對弄清各個文件之間的聯系和依托關系很有幫助。另外有的目錄下還有Readme文件,它是對該目錄下文件的一些說明,同樣有利于對內核源碼的理解。

?

隱藏文件:

.Config

Make oldconfig 和make defconfig會把生成的默認的configuration放到文件.config中。執行Make之后會根據Makefile上下層級依賴關系編譯整個系統,.config作為編譯各個模塊的依據。

?

下面是linux0.11的內核簡單目錄結構:

轉載于:https://www.cnblogs.com/Ph-one/p/4178807.html

總結

以上是生活随笔為你收集整理的Linux内核源码目录说明的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。