Linux內核目錄結構
html
l arch目錄linux
arch是architecture的縮寫。內核所支持的每種CPU體系,在該目錄下都有對應的子目錄。每一個CPU的子目錄,又進一步分解爲boot,mm,kernel等子目錄,分別包含控制系統引導,內存管理,系統調用等。算法
| --x86 /* 英特爾cpu及與之相兼容體系結構的子目錄*/編程
| |--boot /*引導程序*/網絡
| | |--compressed /*內核解壓縮*/app
| |--tools /*生成壓縮內核映像的程序*/模塊化
| |--kernel /*相關內核特性實現方式,如信號處理、時鐘處理*/函數
| |--lib /*硬件相關工具函數*/工具
l block目錄ui
部分塊設備驅動程序
l crypto目錄
加密、壓縮、CRC校驗算法
l documentation
內核的文檔
l drivers目錄
設備驅動程序
l fs目錄
存放各類文件系統的實現代碼。每一個子目錄對應一種文件系統的實現,公用的源程序用於實現虛擬文件系統vfs。
| |--devpts /* /dev/pts虛擬文件系統*/
| |--ext2 /*第二擴展文件系統*/
| |--fat /*MS的fat32文件系統*/
| |--isofs /*ISO9660光盤cd-rom上的文件系統*/
l include目錄
內核所須要的頭文件。與平臺無關的頭文件在include/linux 子目錄下,與平臺相關的頭文件則放在相應的子目錄中。
l init目錄
內核初始化代碼
l ipc目錄
進程間通訊的實現代碼
l kernel目錄
Linux大多數關鍵的核心功能都是在這個目錄實現。(調度程序,進程控制,模塊化)
l lib目錄
庫文件代碼
l mm目錄
mm目錄中的文件用於實現內存管理中與體系結構無關的部分(與體系結構相關的部分在哪裏實現?)
l net目錄
網絡協議的實現代碼| |--802 /*802無線通信協議核心支持代碼*/
| |--appletalk /*與蘋果系統連網的協議*/
| |--ax25 /*AX25無線INTERNET協議*/
| |--bridge /*橋接設備*/
| |--ipv4 /*IP協議族V4版32位尋址模式*/
| |--ipv6 /*IP協議族V6版*/
l samples
一些內核編程的範例
l scripts
配置內核的腳本
l security
SElinux的模塊
l sound
音頻設備的驅動程序
l usr
cpio命令實現
l virt
內核虛擬機