Linux核心之vmlinux與vmlinuz
阿新 • • 發佈:2018-11-13
因為是初次系統的學習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。
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:將一種目標檔案的內容拷貝到還有一種目標檔案裡。