參考資料:
https://blog.csdn.net/weixin_52622200/article/details/135411217
https://www.bilibili.com/video/BV12E411h71h?p=35&vd_source=432ba293ecfc949a4174ab91ccc526d6
linux核心官網:https://mirrors.edge.kernel.org/pub/linux/kernel/
Linux核心原始碼目錄:
arch/arm/boot 這個目錄,Linux核心編譯完成以後,在此目錄生成image,zImage
arch/arm/boot/dts 裝置樹部分
block 塊裝置
Documentation/devicetree/bindings 此目錄下文件用來描述裝置樹
crycto 加密模組
firmware 韌體
fs 檔案系統
include 標頭檔案相關
init 初始化相關
ipc 程序間通訊
kernel 核心相關的程式
lib 庫檔案
mm 記憶體管理相關
net 網路相關
sound 音訊相關驅動
virt 虛擬化相關
vmlinux、Image,zImage、uImage 的區別:
1、vmlinux是編譯出來的最原始的核心檔案,是未壓縮的
2、Image是Linux核心映象檔案,但是Image僅包含可執行的二進位制資料。Image就是使用objcopy取消掉vmlinux中的一些檔案資訊,比如符號表什麼的
3、zImage是經過gzip壓縮後的Image
4、uImage是老版本uboot專用的uboot專用映象檔案,uImage是在zImage前面加了一個長度為64位元組的頭部資訊,這個頭部資訊描述了該映象檔案的型別、載入位置、生成時間、大小等資訊。新的uboot已經支援了zImage啟動,所以現在新的Uboot均使用的是zImage