linux执行bz文件,Linux下解压bzImage为vmlinux
一、首先,簡單介紹 幾種linux內核文件的區別
vmlinux--編譯出來的最原始的內核文件,未壓縮。
zImage--是vmlinux經過gzip壓縮后的文件。
bzImage--bz表示“big zImage”,不是用bzip2壓縮的,而是要偏移到一個位置,使用gzip壓縮的。兩者的不同之處在于,zImage解壓縮內核到低端內存(第一個 640K),bzImage解壓縮內核到高端內 存(1M以上)。如果內核比較小,那么采用zImage或bzImage都行,如果比較大應該用bzImage。
uImage--U-boot專用的映像文件,它是在zImage之前加上一個長度為0x40的tag。
vmlinuz--是bzImage/zImage文件的拷貝或指向bzImage/zImage的鏈接。
initrd --是“initial ramdisk”的簡寫。一般被用來臨時的引導硬件到實際內核vmlinuz能夠接管并繼續引導的狀態。
注意:zImage 是ARM Linux常用的一種壓縮映像文件,uImage是U-boot專用的映像文件,它是在zImage之前加上一個長度為0x40的“頭”,說明這個映像文 件的類型、加載位置、生成時間、大小等信息。換句話說,如果直接從uImage的0x40位置開始執行,zImage和uImage沒有任何區別。另 外,Linux2.4內核不支持uImage,Linux2.6內核加入了很多對嵌入式系統的支持,但是uImage的生成也需要設置
二、然后,開始切入正題bzImage->vmlinux:
1. 查找bzImage文件中'1f8b08'所在的偏移,剔除之前所有的二進制字符,保存為.gz文件。(其中剔除的過程可以自己實現,windows下有winhex工具可以直接編輯,Linux下可以使用命令腳本完成)。
2. 將此.gz文件放進Linux系統內,使用root帳戶權限執行gzip -d xxx.gz。執行完成后即得到解壓后的二進制內核文件vmlinux。
轉自:http://peipengshuai.blog.163.com/blog/static/19012266201231214035559/
總結
以上是生活随笔為你收集整理的linux执行bz文件,Linux下解压bzImage为vmlinux的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 魅蓝android底层是什么,集体去Yu
- 下一篇: linux 其他常用命令