Linux內核 -- 內核源碼結構


Linux 內核源代碼的目錄結構
Linux 內核源代碼包含如下目

● arch :包含和硬件體系結構相關的代碼,每個架構的CPU都對應一個目錄,如i386、arm、
    arm64、powerpc、mips 等。Linux 內核目前已經支持30 種左右的體系結構。在arch
    目錄下,存放的是各個平台以及各個平台的芯片對Linux 內核進程調度、內存管理、
    中斷等的支持,以及每個具體的SoC 和電路板的板級支持代碼。


● block:塊設備的通用函數,驅動程序I/O 調度。


● crypto:常用加密和散列算法(如AES、SHA 等),還有一些壓縮和CRC 校驗算法。


● documentation:內核文檔:各部分的通用解釋和注釋。

 

● drivers :所有的設備驅動程序,每一類的驅動對應一個子目錄,如drivers/block為塊設備驅動

     、drivers/char為字符設備驅動程序、driver/mtd為NOR Flash /Nand Flash 等存儲設備       的驅動


● fs:所支持的各種文件系統,如EXT、FAT、NTFS、JFFS2 等。


● include:內核頭文件,與系統相關的基本頭文件放置在include/linux 子目錄下,各種驅動及功       能部件的頭文件(如:include/media/ , include/mtd/ , include/net/ )、各種體系相關      的頭文件(如:include/asm-arm/ , include/asm-i386),配置內核后,include/asm、      是某個include/asm-xxx的鏈接。


init:內核初始化代碼。內核引導后運行的第一個函數start_kernel() 就位於init/main.c 文件中。


ipc進程間通信的代碼。

 

kernel :內核最核心的部分,包括進程調度、定時器等,而和處理器相關的部分代碼放在          arch/*/kernal目錄下。

lib庫文件代碼,與處理器相關的庫函數代碼位於arch/*/lib目錄下。


mm:內存管理代碼,和處理器相關的一部分代碼放在arch/*/mm 目錄下。


● net:網絡相關代碼,實現各種常見的網絡協議。


● scripts:用於配置內核的腳本文件。


● security:主要是一個SELinux 的模塊,安全、秘鑰相關代碼。


● sound:ALSA、OSS 音頻設備的驅動核心代碼和常用設備驅動。


● usr:實現用於打包和壓縮的cpio 等。


  對於ARM架構的s3c2440,其體系相關的代碼在 arch/arm目錄下,在進行linux移植時,最先修改的就是此目錄下的文件。通過下圖了解一下內核代碼的層次結構:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM