2009/12/15 00:00
最近,随着数字家电的高功能化,将易于开发的Linux用作OS的情况越来越多。因此,启动时间成为问题。因为OS比较小的RTOS(real-time operating system)尺寸大,所以Linux配备机型启动耗费时间。在这种情况下,从事嵌入软件开发的日本Ubiquitous,于2009年11月10日发布了可非常快速地启动配备美国谷歌基于Linux的“Android”平台终端的“Ubiquitous Quick-Boot”(以下称QuickBoot)技术。该公司用配备飞思卡尔半导体ARM系处理器“i.MX31”的试制机作了演示,通电后约1秒即可启动应用。
该技术采用了笔记本电脑等配备的休眠功能。休眠是指在关闭计算机电源之前将主存的内容和硬件信息(运行程序)暂时保存在外部存储装置(闪存及硬盘),在下次启动时将运行程序复制到内存中,以恢复上次操作时的状态。
此前,Tripeaks及Lineo等公司已在提供以休眠在数秒内启动Linux配备机型的技术。Ubiquitous的QuickBoot虽然还处于试制水平,但快速启动已遥遥领先,值得关注。
先打开启动所需要的数据
以前的快速启动技术大多为,将运行状态以自主格式压缩,同时以软件缩短复制到内存的速度,以实现高速化。但这种方法下的运行状态尺寸越大,启动时间就越长。
而QuickBoot采用的方法是,在将运行状态复制到内存时,只优先处理启动所需要的数据,来缩短表面上的启动时间(图1)。而其余则在启动后由后台读取。这种方法不需要等待运行状态全部打开,因此能够在短时间内启动。试制品演示中使用占内存105M~110MB的Android时,采用普通休眠方式需要十几秒才能启动。而采用QuickBoot,由于优先将运行程序中的约10MB左右读入内存,1秒便启动起来了。
图1:通常的休眠技术与QuickBoot的区别
通常的休眠在将运行程序全部读入内存后启动,因此,程序尺寸越大,启动越费时间。
QuickBoot由三个软件构成。即:独立的自举程序(Boot Loader),将运行状态调往内存的Intelligent Resource Allocator(IRA)和保存运行状态的快照驱动(Snapshot Driver)。启动时的流程是,自举程序调出IRA,IRA从事先用快照驱动保存的运行状态中选出必要程序写入内存,然后回归通常的内核(图2)。当保存有多个运行状态时,如按下某个按钮接通电源,还可以启动特定运行状态。
图2:QuickBoot所包含的软件及其作用
红色部分表示QuickBoot所包含的软件。
IRA将运行状态分解成一定尺寸展开时,要使用处理器的虚拟内存功能MMU(Memory Management Unit)(图3)。因此,使用QuickBoot的条件是处理器带有MMU功能。不过,最近的嵌入用处理器大多都带有MMU。 “QuickBoot不依赖于OS和处理器的种类”(Ubiquitous开发部长桥本健一),能够应用于广泛的嵌入产品。该公司代表董事社长川内雅彦Quick-Boot的投产指出:“最容易应用于上网本等产品。还可应用于电视及DVD录像机等数字家电”。预定2010年度开始以SDK(软件开发套件)等形式提供QuickBoot。看来实际配备QuickBoot的产品将于2010年底以后问世。
图3:IRA的位置
IRA作为Linux内核的一部分嵌入其中。利用处理器的MMU功能打开运行程序。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。