Linux内核映像vmlinux、Image、zImage、uImage区别

💡 原文中文,约2700字,阅读约需7分钟。
📝

内容提要

本文介绍了Linux内核映像的几种常见类型:vmlinux、Image、zImage和uImage,它们分别是未压缩的原始内核文件、处理后的二进制映像、使用gzip压缩后的映像和增加头信息的引导映像。文章还提到了它们的用途和生成过程。

🎯

关键要点

  • 本文介绍了几种常用的Linux内核映像的区别。
  • vmlinux是未压缩的原始内核文件,采用elf格式,无法直接用于引导启动Linux系统。
  • Image是通过objcopy处理vmlinux生成的二进制内核映像,未压缩,可直接引导Linux系统。
  • zImage是使用gzip压缩Image后生成的内核映像,通常作为uboot的引导映像文件。
  • uImage是在zImage前增加64字节头信息的引导映像,专用于老版本uboot。
  • zImage和uImage的生成过程有所不同,主要用于32位内核。

延伸问答

vmlinux是什么?

vmlinux是Linux内核编译生成的未压缩原始内核文件,采用elf格式,无法直接用于引导启动Linux系统。

Image和vmlinux有什么区别?

Image是通过objcopy处理vmlinux生成的二进制内核映像,未压缩且可直接引导Linux系统,而vmlinux无法直接引导。

zImage的生成过程是怎样的?

zImage是使用gzip压缩Image后生成的内核映像,通常作为uboot的引导映像文件。

uImage与zImage有什么不同?

uImage是在zImage前增加64字节头信息的引导映像,专用于老版本uboot,而zImage没有这个头信息。

如何生成Image映像?

Image映像是通过objcopy处理vmlinux生成的,具体过程包括编译和链接vmlinux后使用objcopy命令。

zImage和uImage主要用于什么?

zImage和uImage主要用于32位内核的引导映像,zImage通常作为uboot的引导映像文件。

➡️

继续阅读