2009年10月18日 星期日

Linux原始碼存放架構

你可以在http://www.linux.org的網頁取得所有的Linux原始碼,網路上放的通常會是一個壓縮縮檔,當你取得之後你必須將其解壓縮在你將使用的開發平台上,而其中幾個較大的目錄解釋如下:
arch - 存放和CPU相關的基本原始碼,主要是和硬體有關,例如cache,mmu,interrupt等等
+- arm - ARM CPU相關的原始碼,以及用它做的的主板,在這個目錄之下所放的程式主要為HAL的程式碼
++- default - 這是放每一個平台的初始設定
++- kernel ﹣這是kernel程式的進入點,以及中斷程式的進入點
++- boot ﹣這是在build kernel時的link描述檔以及解壓縮的程式碼
++- mm ﹣ 這是記憶體處理的最底層程式,以及cache處理程式
++- lib ﹣ 這是一些公共的kernel library
++- match-xxxx - 這是各家平台的一些初始化程式
+- x86 - x86 CPU相關的原始碼
block - 一些區塊的驅動程式, 例如IDE, CD-ROM
crypto - 有關加解密的library,給kernel使用
Documentation - 存放各種說明文件
drivers - 各種週邊設備的驅動程式
+-char - 種字元型驅動程式, 或者需要tty_io處理的驅動程式
+-net - 網路底層的驅動程式, 泛指ethernet的實體層驅動程弍
+-usb - 存放USB host及常用的USB class device driver
+-mmc - MMC controller及MMC protocol的程式
+-pci - 此為PCI host (包含Card bus, PCI bridge, PCI host等等)
fs - 檔案系統,包含最上層的虛擬檔案系統,給使用者API呼叫使用
include - 所有的include file
init - kernel初始化的主要程式
ipc - kernel內部溝通訊息用
kernel - 主要是核心程式
lib - 在kernel中較常用的library
mm - 有關記憶體管理的程式碼
net - 和網路協定的相關原始碼,而且原則上和硬體無關,例如IPV4,TCP,UDP,ICMP等等
scripts - 在compile kernel時所使用的shell script, 以及menuconfig所用到的source code
security - 這是和加解密的kernel API source code, 以及軟體加解密引擎, 若有硬體支援加解密, 是放在driver/crypto
sound - 這是有關聲音的驅動程式
+-core
+-usb
+-pci
+-drivers
usr

沒有留言:

張貼留言