嵌入式Linux系统中的快速启动技术研究

摘要 Linux在消费电子类产品中得到了广泛应用,由于嵌入式用户对于系统启动速度较为敏感,因此快速启动技术逐渐成为研究和应用中的一个重点。本文通过对嵌 入式 Linux的启动时序和主要延时因素的分析,针对性地探讨了在各个启动阶段降低时耗的技术,重点分析了XIP技术和XIP文件系统,并给出了主要的实现过 程。
关键词 Linux 快速启动 XIP Prelink CRAMFS AXFS
  嵌入式Linux系统主要特点在于使用Bootloader替代了桌面系统的BIOS,同时对系统进行了规模上的裁剪,但硬件上的劣势往往导致系统启 动速度较慢,而嵌入式产品使用者又对系统的开机速度比较敏感,这样就产生了对于提高嵌入式Linux系统启动速度的需求。本文对系统启动时执行哪些阶段的 操作,以及缩短这些操作时间的方法进行了探讨。
1 嵌入式Linux系统启动时序
  目前,嵌入式系统的硬件平台和应用方向区别很大,但总体启动流程是一致的。这里的系统启动是指从用户执行上电/复位操作,到系统开始提供用户可接收的服务水平所需要的过程。典型的上电/复位时序如表1所列。
表1 嵌入式Linux系统启动时序


2 Linux快速启动方法
  目前,一些Linux的发行版本已经对启动速度进行了优化。如果利用标准Linux进行开发,则启动速度的提高主要是通过内核配置和各种补丁包来实现的。下面分析快速启动的一些关键技术。
2.1 Firmware和Bootloader阶段
  目标板一旦确定,Firmware运行的时间就无法改变了,Flash和RAM的读写速度也就随之确定了。但如果复位时能够绕过Firmware和 Bootloader,即允许运行中的内核加载以及运行另一个内核,可以缩短启动的时间。典型的实现有Kexec,它有2个组件,即用户空间组件 kexectools和内核补丁。另外一种办法是在内核命令行中加入reboot=soft参数,同样可以跳过Firmware,但是缺点在于无法从用户 空间调用。
  对于正常启动,可以选择速度比较快的Bootloader,并对内核进行小型化处理;还可以使用高速的映像复制技术(如DMA2RAM),从而缩短复 制的时间。为了缩短解压消耗的时间,可寻求比较高效的压缩算法。但一般情况下,压缩比越高,算法越复杂,解压速度就越慢,从而造成复制时间(与压缩比成反 比)和解压时间(一般与压缩比成正比)之间的矛盾。
2.2 内核阶段
  内核初始化时要对RealTime Clock (RTC)进行同步。此过程要占用1 s的时间,可去掉以节约时间,但这样CPU会与正确的时间有1 s的偏差,如果关机时CPU时钟又要保存在RTC中,偏差就会不断累积。但对于使

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值