1. 程式人生 > >linux核心目錄分析

linux核心目錄分析

kernel目錄分析

一 分析源目錄下資料夾:
這裡寫圖片描述
1.arch
arch是architecture的縮寫,意思是架構。arch目錄下是好多個不同架構的CPU的子目錄,譬如arm這種cpu的所有檔案都在arch/arm目錄下,X86的CPU的所有檔案都在arch/x86目錄下。

2.block
在linux中block表示塊裝置(以塊(多個位元組組成的整體,類似於扇區)為單位來整體訪問),譬如說SD卡、iNand、Nand、硬碟等都是塊裝置。block目錄下放的是一些linux儲存體系中關於塊裝置管理的程式碼。

3.crypto
英文意思是加密。這個目錄下放了一些各種常見的加密演算法的C語言程式碼實現。譬如crc32、md5、sha1等。

4.Documentation
該目錄下放了一些文件

5.drivers
驅動目錄,裡面分門別類的列出了linux核心支援的所有硬體裝置的驅動原始碼。

6.firmware
韌體,韌體其實是軟體,不過這個軟體是固話到IC裡面執行的叫韌體。就像S5PV210裡的iROM程式碼。

7.fs
fs就是file system,檔案系統,裡面列出了linux支援的各種檔案系統的實現。

8.include
標頭檔案目錄,公共的(各種CPU架構共用的)標頭檔案都在這裡。每種CPU架構特有的一些標頭檔案在arch/arm/include目錄及其子目錄下。

9.init
init是初始化的意思,這個目錄下的程式碼就是linux核心啟動時初始化核心的程式碼。

10.ipc
ipc就是inter process commuication,程序間通訊,裡面都是linux支援的IPC的程式碼實現。

11.kernel
kernel就是核心,就是linux核心,所以這個資料夾下放的就是核心本身需要的一些程式碼檔案。

12.lib
lib是庫的意思,這裡面都是一些公用的有用的庫函式,注意這裡的庫函式和C語言的庫函式不一樣的。在核心程式設計中是不能用C語言標準庫函式,這裡的lib目錄下的庫函式就是用來替代那些標準庫函式的。譬如在核心中要把字串轉成數字用atoi,但是核心程式設計中只能用lib目錄下的atoi函式,不能用標準C語言庫中的atoi。譬如在核心中要列印資訊時不能用printf,而要用printk,這個printk就是我們這個lib目錄下的。

13.mm
mm是memory management,記憶體管理,linux的記憶體管理程式碼都在這裡。

14.net
該目錄下是網路相關的程式碼,譬如TCP/IP協議棧等都在這裡。

15.scripts
指令碼,這個目錄下全部是指令碼檔案,這些指令碼檔案不是linux核心工作時使用的,而是用來輔助對linux核心進行配置編譯生產的。

16.security
安全相關的程式碼。

17.sound
音訊處理相關的程式碼。

18.tools
linux中用到的一些有用工具。

19.usr
目錄下是initramfs相關的檔案。

20.virt
核心虛擬機器相關的。

二 分析原始碼目錄下的檔案
這裡寫圖片描述
(1).gitignore
git工具檔案,管理軟體版本的。

(2).mailmap
一些linux開發者的郵箱。

(3)COPYING
版權說明

(4)CREDITS
鳴謝。感謝對linux做出貢獻的人。

(5)initrd.img
系統啟動會載入的檔案

(6)Kbuild
Kbuild是kernel build的意思,就是核心編譯的意思。這個檔案就是linux核心特有的核心編譯體系需要用到的檔案。

(7)MAINTAINERS
linux維護者資訊。

(8)Makefile
這個是linux核心的總makefile,整個核心工程用這個Makefile來管理的。

(9)mk
是九鼎在移植時自己新增的,不是linux核心本身的東西。九鼎新增這個檔案的作用是用這個檔案來管理kernel目錄的配置和編譯。

(10)README

(11)REPORTING-BUS
bug資訊的上報。