【Linux快速启动】UBoot中加速kernel解压

为提升嵌入式系统启动速度,文章探讨了Linux Kernel的常见格式,如vmlinux、Image、zImage、bzImage和uImage。在衡量压缩/解压算法时,关注压缩率、解压速度和内存占用。通过对比,发现LZ4在解压速度上有显著优势,尽管压缩率较低。在UBoot中,将默认的GZIP解压替换为LZ4,解压时间减少了约4倍,实现快速启动。文中提供了生成Image.lz4的Makefile修改和UBoot解压方式的调整方案。
摘要由CSDN通过智能技术生成

背景说明

为了满足嵌入式系统更快的启动速度需求,需要对uboot进行优化,保证原有功能的情况下,减少系统启动时间。

kernel的常见格式:

在uboot中使用boot命令时,会启动kernel,其中涉及到kernel的压缩与解压。

  • vmlinux:vmlinuz是可引导的、可压缩的内核镜像,vm代表 Virtual Memory。是由用户对内核源码编译得到,实质是elf格式的文件,内含符号表,可用于调试。
  • Image:Image是经过objcopy处理的只包含二进制数据的内核代码,未经过压缩。
  • zImage或Image.gz:zImage是ARM linux常用的一种压缩镜像文件,它是由vmlinux加上解压代码经gzip压缩而成,命令格式是#make zImage,这种格式的Linux镜像文件多存放在NAND上。
  • bzImage:bz表示big zImage,其格式与zImage类似,但采用了不同的压缩算法,都是使用了gzip压缩成,bzImage的压缩率更高,适用于大内核。
  • uImage:uImage是uboot专用的镜像文件,它是在zImage之前加上一个长度为0x40的头信息(tag),在头信息内说明了该镜像文件的类型、加载位置、生成时间、大小等信息.换句话说,若直接从uImage的0x40位置开始执行,则zImage和uImage没有任何区别.命令格式是#make
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值