一. Linux內核源碼目錄分析
arch | 包含與體系結構相關的代碼,用于支持不同硬件體系結構的實現。這個目錄下會根據不同的架構(如x86、arm、mips等)進一步細分。 |
block | 用于處理塊設備的子系統,包含與塊設備驅動和I/O調度相關的代碼。 |
crypto | 實現各種密碼學功能的子系統,包含對稱加密、非對稱加密、哈希函數等算法的實現代碼。 |
drivers | 包含各種設備驅動程序的源代碼,是內核與硬件設備進行交互和管理的重要部分。該目錄下會根據設備類型(如字符設備、塊設備、網絡設備、USB設備等)進一步細分 |
firmware | 用于存放一些硬件設備所需的固件文件,這些固件文件包含了驅動設備所需的指令、數據和配置信息。 |
fs | 包含與文件系統相關的代碼,是文件系統層次結構的核心部分。該目錄下會根據不同的文件系統類型(如ext2、ext4、FAT、NTFS等)進一步細分。 |
include | 包含大量的頭文件,這些頭文件定義了內核中使用的結構體、函數原型、常量等,是開發者編寫內核代碼時需要引用的重要資源。 |
init | 包含內核初始化相關的代碼,是內核啟動過程中執行的重要部分 |
kernel | 包含內核的核心代碼,如進程調度、系統調用接口等。 |
mm | 包含內存管理相關的代碼,如頁面分配、內存映射等。 |
net | 包含網絡子系統相關的代碼,如協議棧、網絡設備驅動等。 |
scripts | 包含用于編譯內核的輔助腳本和工具。 |
sound | 包含聲音子系統相關的驅動程序和代碼。 |
virt | 包含虛擬化相關的代碼,如KVM(Kernel-based Virtual Machine)的實現。 |
二.?Linux頂層 Makefile 詳解
Linux 的頂層 Makefile 和 uboot 的頂層 Makefile 非常相似.
2.1?版本號
2.2?MAKEFLAGS 變量
2.3?命令輸出
2.4?靜默輸出
2.5?設置編譯結果輸出目
2.6?代碼檢查
2.7?模塊編譯
2.8?設置目標架構和交叉編譯器
2.9?調用 scripts/Kbuild.include 文件
2.10?交叉編譯工具變量設置
2.11?頭文件路徑變量
2.12?導出變量
三. Linux內核啟動流程
四. 同胞鏈接
一. UBOOT-CSDN博客
三. 根文件系統構建-CSDN博客