https://www.cntofu.com/book/46/linux_tools/README.md
https://elixir.bootlin.com/linux/latest/source/drivers
幾種linux內核檔的區別(vmlinux、zImage、bzImage、uImage、vmlinuz、initrd )
zImage是ARM Linux常用的一種壓縮映像檔, uImage是U-boot專用的映像檔,它是在zImage之前加上一個長度為0x40的“頭”,說明這個映像檔的類型、載入位置、生成時間、大小等資訊。換句話說,如果直接從uImage的0x40位置開始執行,zImage和uImage沒有任何區別
1、vmlinux 編譯出來的最原始的內核檔,未壓縮。 vmlinuz是可引導的、壓縮的內核。“vm”代表“Virtual Memory”。Linux 支持虛擬記憶體 Linux能夠使用硬碟空間作為虛擬記憶體,因此得名“vm”
2、zImage 是vmlinux經過gzip壓縮後的檔。 make zImage
copy imx6-4.1.15_2.0.0/build-imx-qsip2/tmp/deploy/images/imx6dlsabresd_qsip2 path/to/local
3、bzImage bz表示“big zImage”,不是用bzip2壓縮的。兩者的不同之處在于,zImage解壓縮內核到低端記憶體(第一個640K),bzImage解壓縮內核到高端記憶體(1M以上)。如果內核比較小,那麼採用zImage或bzImage都行,如果比較大應該用bzImage。
4、uImage U-boot專用的映射檔,它是在zImage之前加上一個長度為0x40的tag。
5、vmlinuz 是bzImage/zImage檔的拷貝或指向bzImage/zImage的連結。
6、initrd 是“initial ramdisk”的簡寫。一般被用來臨時的引導硬體到實際內核vmlinuz能夠接管並繼續引導的狀態。