1. 程式人生 > >Linux核心原始碼-目錄結構

Linux核心原始碼-目錄結構

一、目錄結構
Linux核心原始碼採用樹形結構進行組織,非常合理地把功能相關的檔案都放在同一個子目錄下,使得程式更具可讀性。
核心原始碼下載地址:www.kernel.org

1. arch目錄
arch是architecture的縮寫。核心所支援的每種CPU體系,在該目錄下都有對應的子目錄。每個CPU的子目錄,又進一步分解為boot,mm,kernel等子目錄,分別包含控制系統引導記憶體管理系統呼叫等。

| --x86 /* 英特爾cpu及與之相相容體系結構的子目錄*/
| |--boot /*載入程式*/
| | |--compressed /*核心解壓縮*/
| |--tools /*生成壓縮核心映像的程式*/
| |--kernel /*相關核心特性實現方式,如訊號處理、時鐘處理*/
| |--lib /*硬體相關工具函式*

2. block目錄
部分塊裝置驅動程式
3. crypto目錄
加密、壓縮、CRC校驗演算法
4. documentation
核心的文件
5. drivers目錄
裝置驅動程式

6. fs目錄
存放各種檔案系統的實現程式碼。每個子目錄對應一種檔案系統的實現,公用的源程式用於實現虛擬檔案系統vfs。
| |--devpts /* /dev/pts虛擬檔案系統*/
| |--ext2 /*第二擴充套件檔案系統*/
| |--fat /*MS的fat32檔案系統*/
| |--isofs /*ISO9660光碟cd-rom上的檔案系統*/
7. include目錄
核心所需要的標頭檔案。與平臺無關的標頭檔案在include/linux 子目錄下,與平臺相關的標頭檔案則放在相應的子目錄中。

8. init目錄
核心初始化程式碼
9. ipc目錄
程序間通訊的實現程式碼
10. kernel目錄
Linux大多數關鍵的核心功能都是在這個目錄實現。(排程程式,程序控制,模組化)

11. lib目錄
庫檔案程式碼
12. mm目錄
mm目錄中的檔案用於實現記憶體管理中與體系結構無關的部分(與體系結構相關的部分在哪裡實現?)

13. net目錄
網路協議的實現程式碼
| |--802 /*802無線通訊協議核心支援程式碼*/
| |--appletalk /*與蘋果系統連網的協議*/
| |--ax25 /*AX25無線INTERNET協議*/
| |--bridge /*橋接裝置*/
| |--ipv4 /*IP協議族V4版32位定址模式*/
| |--ipv6 /*IP協議族V6版*/

14. samples
一些核心程式設計的範例
15. scripts
配置核心的指令碼
16. security
SElinux的模組

17. sound
音訊裝置的驅動程式
18. usr
cpio命令實現
19. virt
核心虛擬機器