1. 程式人生 > >Linux內核之vmlinux與vmlinuz

Linux內核之vmlinux與vmlinuz

遇到 就是 image rfi gunzip 幾句話 csdn linu fix

因為是初次系統的學習Linux內核,過程中遇到了一些常常出現的名詞。似曾相識,但對他們的含義又不是非常清楚。因此,將搜索到的內容進行一下匯總。

1.vmlinux

vmlinux是一個包括linux kernel的靜態鏈接的可運行文件。文件類型是linux接受的可運行文件格式之中的一個(ELF、COFF或a.out)。

2.vmlinuz vmlinuz是可引導的,壓縮的linux內核,“vm”代表的“virtual memory”。

vmlinuz是vmlinux經過gzip和objcopy(*)制作出來的壓縮文件。vmlinuz不僅是一個壓縮文件,並且在文件的開頭部分內嵌有gzip解壓縮代碼。所以你不能用gunzip 或 gzip –dc解包vmlinuz。

vmlinuz是一個統稱。有兩種詳細的表現形式:zImage和bzImage(big zImage)。
zImage和bzImage的差別在於本身的大小和載入到內存的地址不同。zImage是0~640KB,bzImage是1M以上。假設內核比較小。那麽能夠採用zImage 或bzImage之中的一個,兩種方式引導的系統運行時是同樣的。大的內核採用bzImage。不能採用zImage。


3. 綜述 總結起來就是例如以下的幾句話: vmlinux 是ELF文件。即編譯出來的最原始的文件。


vmlinuz應該是由ELF文件vmlinux經過OBJCOPY後。並經過壓縮後的文件
zImage是vmlinuz經過gzip壓縮後的文件,適用於小內核
bzImage是vmlinuz經過gzip壓縮後的文件,適用於大內核


*objcopy:將一種目標文件的內容拷貝到還有一種目標文件裏。

Linux內核之vmlinux與vmlinuz