在PC上,Linux内核是以文件形式存在的,也就是所谓的映像文件,最终要烧到目标板的flash里。这映像文件分两种:一种是非压缩版Image,另一种是压缩版zImage。
zImage是由Image压缩而来,所以体积更小。不过要想用zImage,得在开头加一段解压代码,先解压再执行,这样速度自然比Image慢一点。但嵌入式系统的存储空间一般比较紧张,内核还得常驻内存,用zImage能省不少空间,性能上的那点牺牲完全可以接受,所以大多数嵌入式系统都用压缩版的zImage。
zImage是ARM Linux常用的压缩映像文件,而uImage是U-boot专用的。uImage就是在zImage前面加了个0x40长度的头,这个头记录了文件类型、加载地址、生成时间、大小啥的。简单说,如果从uImage的0x40位置开始执行,它和zImage没啥区别。另外,Linux2.4内核不支持uImage,Linux2.6内核增加了不少对嵌入式系统的支持,但生成uImage也需要单独设置。
zImage是由Image压缩而来,所以体积更小。不过要想用zImage,得在开头加一段解压代码,先解压再执行,这样速度自然比Image慢一点。但嵌入式系统的存储空间一般比较紧张,内核还得常驻内存,用zImage能省不少空间,性能上的那点牺牲完全可以接受,所以大多数嵌入式系统都用压缩版的zImage。
zImage是ARM Linux常用的压缩映像文件,而uImage是U-boot专用的。uImage就是在zImage前面加了个0x40长度的头,这个头记录了文件类型、加载地址、生成时间、大小啥的。简单说,如果从uImage的0x40位置开始执行,它和zImage没啥区别。另外,Linux2.4内核不支持uImage,Linux2.6内核增加了不少对嵌入式系统的支持,但生成uImage也需要单独设置。