《加快嵌入式Linux系统启动速度的方法及应用.pdf》由会员分享,可在线阅读,更多相关《加快嵌入式Linux系统启动速度的方法及应用.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、3 期 后勤T 文章编号:1 6 7 2 7 8 4 3(2 0 0 5)0 3 0 0 5 4 0 5 加快嵌入式 L i n u x系统启动速度的方法及应用 陈 军,涂亚庆(后勤工程学院 后勤信 息工程 系,重庆4 0 0 0 1 6)摘要嵌入式系统面向应用,提高系统在配置较低 的嵌入式设备上的启动速度对嵌 入式 L i n u x的推广应用具有重要的意义。针对嵌入式 L i n u x系统,分析 了从开机直到启动完 成的整个启动过程;以i3 8 6平台为例,提 出了各个启动阶段中加快启动速度的解决方法;并 结合一个具体的应用实例,对构建快速启动的嵌入式 L i n u x系统进行 了应
2、用测试,结果达到 了预期 目的,对类似嵌入式系统的研 究也有借鉴作用。关键词L i n u x;嵌入式系统;启动速度 中图分类号:T P 3 1 6 8 9;T P 3 0 2 7 文献标识码:A L i n u x 操作系统是一个高效、可靠、稳定的开放性系统,适用于多种 C P U和硬件平台,提供很好的网 络支持,由于其源代码的完全开放和免费,通过研究 L i n u x 其内核代码,对它的可移植性、可裁剪性、良 好的稳定性和可靠性有比较透彻的了解,可根据实际需要,对 L i n u x 进行必要的裁减、修改和优化,以开 发出满足实际应用的系统。因此,L i n u x 在服务器、嵌人式系统
3、以及个人桌面 P C等领域得到 了越来越 广泛的应用。但是从开机到 L i n u x 启动装载完毕,进人用户登录界面会花费很长的时间,如果要启动 XWi n d o w s 界面,花费的时间就更长了。这么长的启动时间对用户来说是难以容忍的。由于嵌人式 系统面向 应用,因此过长的启动时间将令用户无法接受。本文在分析了L in u x的启动过程的基础上,从几个方面 探讨了缩短 L i n u x 启动时间的方法。L i n u x 的启动过程与硬件平台(8 0 x 8 6 C P U系列、S P A R C和 M 6 8 0 0 0等)相关,本文所涉及系统是 I n t e l 8 0 x 8
4、6平台。1 L i n u x启动过程分析 L i n u)【启动流程如图 1 所示。(1)开机。当 P C打开 电源 以后,I n t e l 系列 的 C P U首先进人实模 式,开始执行位于地址 0 x F F F F 0处的代码,即 B I O S的起始位置。(2)B I O S。B I O S主要 由两部分组成:P O S T(P o w e r o n S e l ft e s t)进行一系列的系统硬件 自检测试,另一部分对硬件进行一些初始化 工 作,如检测硬件、即插即用和设置中断向量表等。然后依据 B I O S 设置 的引导顺序将启动盘的第一个扇区(b o o t s e c
5、t o r)装人到0 x 7 C 0 0,即B o o t L o a d e r,并将控制权交给它。(3)B oot Loa d e r。软盘为b o o t b o o t s e c t S 汇编文件,硬盘为引导程序 l i l o 或 g r u b。它首先把 自己移到内存地址 0 x 9 0 0 0 0,并跳转 到这里执行 然后把系统初始化代码(b o o t s e t u p s)载人到内存 的 0 x 9 0 2 0 0处,L i n u x图1 嵌入式L i u x 系统启动流程 收稿 日期:2 0 0 5 0 3 3 1 作者简介:陈 军(1 9 7 4 一),男,重庆市綦
6、江人,硕士生,讲师,主要从事计算机应用技术研究。维普资讯 http:/ 3 5 5 内核 z lma g e(或 b z I m a g e)装到O x l O 0 0 0(或O x l 0 0 0 0 0)处。(4)L i n u x 内核。系统控制权转到 s e t u p s 开始系统设置,其主要功能是通过 B I O S中断获取系统参 数并保存到从地址 O x 9 0 0 0 0到地址 O x g O 1 F F的安全区,然后将系统转换为保护模式,跳转到地址 O x l O 0 0 0 0的内核引导代码处执行。内核启动以后,即转向 s t a r t k e r n e l()函数,完
7、成调度设置、文件系统 初始化、网络初始化等设置,接下来执行 i n i t 程序。(5)I n it 进程。它的具体工作 e t c i n i tt a b 文件决定,进行激活 s w a p分区、加载硬件模块等初始化 工作,然后执行 e t c r c d 下面的脚本文件以加载所需的系统服务。(6)S h e H。启动 m i n g e t ty,打开终端供用户登录系统,用户登录成功后进人了控制台。(7)应用程序。嵌入式系统中通常没有登录过程,而是直接进入应用程序,根据实际应用可能还需 要 G U 1 支持。在实际测试中,发现系统启动时在 B I O S、L i n u x内核和 i n
8、 i t 启动服务进程三个过程是最耗时的(占 9 0 以上),因此对这三部分的修改应是重点。2 缩短 L i n u x启动时间方法 根据前述的 L i n u x 启动过程分析,按启动顺序可分为几个部分,下面针对各个部分提出一些加快启 动时间的方法。2 1 B I OS 嵌入式系统 B I O S 体积小,硬件配置相对稳定,因此并不需要具有桌面 P C B I O S的灵活性,只需处 理一种硬件配置,初始化代码比较简单。例如 G e n e r a l S o f t w a r e 公司已经开发出世界上最快的B I O S 2】。他们通过取消B I O S 的一些特性,包括禁用了图标和P
9、O S T 状态的显示、使用了快速内存自检、停止搜索 软盘和硬盘以及一些 B I O S 代码的优化。在 I n t e 14 4 0 B X主板和 4 0 0 M h z P e n t i u m l I I 处理器的平台上,它 从开机到把控制权交给 uL O只需要0 8 s。这部分的修改有两种方式。(1)在现有的B I O S 上面进行优化,对设置进行修改,使系统跳过某些 自 检选项,可加快系统 自检的 速度。禁用不必要的功能。嵌入式系统的功能单一,硬件配置不会更改,因此即插即用等功能都可以 禁用。-禁用多余的设备。如软驱、光驱和闲置的 I D E接口等冗余设备都予以屏蔽以尽量减少 B
10、I O S的硬 件检测时间。利用 L i n u x自身的设备驱动层。L i n u x内核只使用一部分 B I O S 提供的信息,并不使用 B I O S 提供的 设备驱动,而从硬件寄存器和中断响应开始实现自己的设备驱动层,重新检测和初始化硬件,因此可以 在 B I O S中屏蔽相关设备,例如系统中的几个 I D E硬盘,可以只保留一个 L i n u x的启动盘,其它都设为 N o n e,这样可以减少 B I O S的硬件检测时间,而不影响L i n u x 检测和正常使用其它的 I D E硬盘。(2)更新为专用 B I O S。这种方式的最大优势是可以彻底挖掘B I O S的潜能,去
11、掉不必要的代码以及 对代码尽量进行优化以得到最佳的性能。目 前已经发展有几种 b i o s 替代方案用以缩短系统启动时间,例如 L i n u x b i o s J 和 T i n y b io s J。L i n u x B I O S是一个专用于嵌入式 L i n u x系统,尽量减少不必要的硬件初 始化以加快启动速度的开源项目。L in u x B I O S 通过激活 L in u x内核来控制尽可能多的芯片初始化,具有 快速的引导过程和极小的闪存消耗,可以有效的减少启动时间。本系统采用了第一种方法,直接对 B I O S 进行优化设置,例如:Ha l t o n:No Er r
12、o r s o Dr i v e ADr i v e B:No n e。Vi re s W a r n i n g An t iVi r u s Pr o t e c ti o n:Di s a bl e。Q u i c k P o w e r o n S e l f t e s t:E n abl e d 维普资讯 http:/ 5 6 后勤工程学院学报 2 o o 5年 B o o t S e q u e n c e:设为直接进入主引导盘。2 2 引导装载程序 B oot l o a d e r 常用的L i n u x 的引导程序有G r u b,L I L O和S y s L i n
13、u x 等,其中后两者在嵌入系统中应用较多。这个 阶段所花费时间很少(少于 1 s),对整个启动时间的影响可 以忽略不计。在本文所讨论系统 中,采用小 巧灵活的 S y s L in u x 作为引导程序。2 3 L i n u x内核 L in u x 的默认安装内核相当庞大,为了保证系统的兼容性和灵活性,支持即插即用等特性,内核启动 时要进行大量硬件检测和初始化工作,而这些特性在一个嵌入式系统中完全没有必要,嵌入式系统通常 硬件设备是固定不变的,只需要系统所具备的硬件驱动即可,因此用户可以根据需求进行定制来满足实 际应用需要,去掉不必要的模块来减小内核体积。本系统核心采用了L in u x
14、 2 4 8 版本,所需功能都直接编译进内核,因此不需要模块支持,对核心进 行配置,去掉所有不需要的选项:F lo p p y、S C S I、U S B、红外线和蓝牙等等,保留 T C P I P网络支持、F r a m e b u ff e r 和必要的驱动程序等。编译生成的a r c h i 3 8 6 b o o t b z l m a g e 文件即为新内核。由于新核心启动时 只负责了所需设备的初始化,内核的启动时间明显减少,但在本系统的硬件环境下仍然很耗时,还需要 进行进一步的处理。(1)在启动过程中可以测试各个内核模块启动所使用的时间,对耗时长的部分可对源代码进行分 析,修改以减
15、少不必要的时间消耗。例如,笔者在启动测试中,发现有大量时间消耗在 I D E接口的初始 化上面。经过对源代码的分析,发现核心对 I D E接口的定义在 in c l u d e a s m i 3 8 6 i d e h中:#i f d e f C ONF I GBLK_DEV_I DE P C I 撑d e f i n e MAXHWI F S 1 0#e l s e#d e fi n e MAX_HWI F S 6#e n d i f 即系统在启动时会搜索6 或 1 0 个 I D E接口(根据配置而定),耗时开销比较大,将之修改为 1,即启动时 只检测一个 I D E接口。类似的,如果系
16、统中包括有 D O C等设备,则修改相应的源代码文件,修改 D O C 设备的宏定义值即可。这样启动时只搜索所需的硬件设备,避免耗费时间在不必要的设备接口检测上,从而减少启动时间。(2)由于现在缺省的 L i n u x 版本都是采用的压缩内核(z l m a g e b z I m a g e),不支持未压缩内核启动,启动时会自动执行解压缩操作。在桌面 P c的硬件条件下,这个解压缩过程很快,但是在嵌入式系统环 境中,由于硬件条件的限制,这个过程耗费很多时间。本系统 C P U为 3 8 6 S X,无数学协处理器,解压缩 会持续十秒以上,因此可以直接采用未压缩内核以节约解压缩的时间。在本系
17、统环境下,L in u x内核(b z I m a g e)的加载、解压缩过程如下:B I O S 将第一个扇区(s y s li n u x)加载到实模式地址 0 x 7 c 0 0上,然后将控制转交给它。S y s l i n u x 启动 代码将 se t u p 拷贝到 0 x 9 0 2 0 0,将内核代码拷贝到 O x l O 0 0 0 0。直接跳转到 0 x 9 0 2 0 0处执行 se t u p程序,s e t u p将系统转换到保护模式,并跳转到 O x l O 0 0 0 0的内核引导代码,此处为 a r c h i 3 8 6 b o o t c o m p r e
18、 s se d 目录下的h e a d S和m i s c C 程序,它调用 m i s c C 中定义的 d e c o m p r e s s _ k e m e l()函数,使用”l ib i n f l a t e C”中定义的 g u n z i p()将真正的内核解压到 O x l O 0 0 0 0,再转到其上执行”a r c h i 3 8 6 k e m e l h e a d S”中的代 码。此时系统 的控制权就完全交给了 L i n u x内核执行。根据上述分析,可以在编译内核时修改相关的 M a k e fi l e文件来达到从未压缩内核启动的目的。即 去掉内核的压缩过
19、程,去掉内核头部的h e a d 和 m i s c 部分以及为解压缩所添加的一些冗余信息,这样生 成的内核即为未压缩内核,如图2所示,由 s y s l i n u x 直接加载到 O x l O 0 0 0 0处,从而去除了内核的解压缩 过程。2 4 服务配置修改 L i n u x 完成内核引导后,启动 i n i t 进程,进入默认的运行级别,并启动相应的系统服务。未经优化的 维普资讯 http:/ 5 7 系统在这个过程中会默认启动很多系统服务,而其中大多数 对嵌入式系统来说毫无用处,反而会造成系统资源的浪费和 启动时间的延长(1 m in以上)。因此我们要根据实际需要,改 写服务配
20、置文件,定制系统服务。如果需要服务较多,则可 以并行运行各种服务进程 以达 到加速的目的。L i n u x默认启动服务是串行队列进行的,即:服务逐个启动,前一个启动完毕以后再启动后一个,在服 务较多的情况下,这样的方式所耗费的时间是很可观的。而 并行启动则可 以节约大量时间。在采用这种方法的时候,一 定要注意服务间的依赖性。有些系统服务存在依赖性,即必 须在其依赖 的服务启 动之后 才能正常启动,例如:h t t p d 芝 竺:!:s、mi s e Ke rne l (c 咖叩豫 Ma k e fil e 广-J L ,(修改前)(修改后)图2 b z l m a g e的构成示意图(S
21、8 5 h tt p d)提供 WW W 服务,它依赖于 n e t w o r k 服务(S 1 0 n e tw o r k),同理,n e ff s($2 5 n e ff s,负责装载网络文 件系统)和n a m e d(S 5 5 n ame d,域名服务器)等网络相关服务都必须依赖 n e t w o r k服务。因此,要先启动 n e t w o r k,然后就可 以并行启动 h t t p d、n e t f s 和 n am e d服务 以缩短启动时间。本系统由于所需服务较少,因此直接改写 i n i tt a b 和 113 s y s in i t 文件,内容如下:i n
22、 i t a b:r e s y s i n i t:s y s i n i t:e t c r c d r e s y s i n i t#!b i n s h t t y l :r e s p a w n:s b i n g e t t y 9 6 0 0 t t y l mo u n tn o r e mo u n t,r w :c t r l a h d e l:s b i n r e b o o t P AT H=b i n:s b i n:u s r b i n:u s r s b i n :s h u t d o wn:b i n s y n c e x p o P AT H:s
23、 h u t d o wn:b i n u mo u n ta r i f e o n fi g e t h O 1 9 2 1 6 8 0 1 0 0 u p 2 5 S h e U控 制 台 L in u x 的系统命令行操作界面,用以显示命令行提示,提供用户与操作系统的交互性操作接口。常 用的 B o u r n e s h e U、C s h e U 等功能强大,但是体积也很庞大,不太适合于对空间要求较高的嵌入式系统。因此本系统采用 b u s y b o x r 作为操作界面。B u s y b o x是一个可配置编译的单个独立执行程序,它可以根 据配置执行所需的s h e ll 功
24、能。2 6 G U I(图形用户界面)X Wi n d o w是 L i n u x 以及其它类 U N I X系统的标准 G U I。X Wi n d o w系统采用标准的客户 服务器体 系结构,具有可扩展性好、可移植性好等优点。但由于体积庞大、累赘和低效率,因此很少在嵌入式系统 中应用。应用较多的适合嵌入式系统的 G U I 有 M ic r o w i n d o w s 和 M i n i G U I L 9 等。本系统采用后者。M i n i G U I 是一个轻量级的G U I,具备小巧、高性能和高效率的特点,是运行在 L i n u x 控制台上的多窗口图 形用户界面支持系统,可
25、以应用于机顶盒、实时控制系统、掌上电脑等诸多场合。3 应用测试 本文研究结合了一个油料灌装控制系统项目的实际应用,该系统采用嵌入式 L i n u x 作为现场管理 分机,其应用平台如下:硬件:主板:I C O P 6 0 2 7 V E 芯片组:D M&P(A L i)M6 1 1 7 D C P U:E mb e d d e d C P U 3 8 6 S X 一4 0 内存:8 MB E D O D R A M 显示器:L C D A G一3 2 0 2 4 0 F 维普资讯 http:/ 5 8 网卡:R e al t e k 8 0 1 9 软件:B I O S:AWOR D B I
26、 O S B oot L o a d e r:S y s l i n u x 2 0 8 K e r n e l:L i n u x 2 4 2 0 G UI:Mi n i GUI 1 2 2 S h e U:B u s y B o x 1 o o 经过上述修改前后系统启动时间 如图 3所示。构建的嵌入式系统可以在较短时 间内完成整个启动过程,从实际运行 效果来看达到了预期 目的,取得了较 为满意 的结果。4 结 语 I B i。s L in u x 内 棱l系 统 屐务 图 3启动时间比较 嵌入式 L in u x 系统发展迅速,得到了越来越多的重视和广泛应用。嵌入式系统针对具体应用,软硬
27、件必须高效率地设计,量体裁衣以满足实际应用。在实现嵌入式系统基本功能的前提下,还必须根据需 要对系统进行优化。本文基于i 3 8 6平台,对 L in u x的启动过程进行了分析,提出了一些改善 L i n u x 启动 速度的思想和方法,对嵌入式 L i n u x 系统的相关应用可以提供一定的借鉴和参考。参考文献 1 陈莉君 深入分析 L i n u x 内核源代码 M 北京:人民邮电出版社,2 O O 2:4 7 7 4 9 9 2 J o n e s S E m b e d d e d B I O S 2 0 0 O E B O L h t l p:w w w g e n s w c
28、o m ,2 0 0 5 0 3 3 We b s t e r D,H e n d r i e k s J L i n u x b i o s E B O L h t t p:w i k i 1 i n u x b i o s o r g ,2 0 0 5 0 3 4 D o m i e r P T i n y b i o s E B O L h t t p:w w w r c er n es e h t i n y b i o 6 h t m,2 0 0 1-0 2 5 A n v i n H S y a l i n u x E B O L h t t p:s y s l i n u x z
29、 y t 0 r c o rn ,2 0 0 3一 l 2 6 H u n t J P a r a l l e l i z e L i n u x s y e m s e r v i c e s t o i m p r o v e b o o t g p t 划 E B O L h t t p:w w w一 1 0 6 i b m e o m d e v e l o p e r w o r k s ,2 0 0 3 0 9 7 A n d e r s e n E B u s y B o x E B O L h t t p:w w w b u s y b o x n e t ,2 O O 4 1
30、 0 8 H a er r G M i e ro Wi n d o w s E B O L h t t p:w w w m i e r o w i n d o w s o r g,2 0 0 3 0 5 9 魏永明 M i n i G U I E B O L h t t p:w w w m i n i g u i o r s ,2 0 0 4 0 5 A n a l y s i s a n d A p p h c a ti o n o f A c c e l e r a ti n g t h e B o o t P T o c e s s f o r A n E m b e d d e d L
31、 i n u x S y s t e m C HEN J u n,T U Ya q i n g (D e p t o f L o g i s t i c a l I n f o r m a t i o n E n gin e e r i n g,L E U,C h o n g q i n g 4 0 0 0 1 6,C h i n a)ABS TRACT E mb e d d e d s y s t e ms a r e d e s i g n e d f o r a p p l i c a t i o n s I t i s i mp o r t a n t f o r pop u l a
32、r i z i n g e mb e d d ed L i n u x s t e m t o a c c e l e r a t e b o o t p r o c e s s o ft h e s y s t e m i n l o w p e r f o r ma n c e e q u i p me n t T h i s p a p e r a n a l y z e s the b o o t p r o c ess f o r a n e mb e d d ed L i n u x s y s t e m f r o m pow e r-o n t o s h e l l p r
33、 o mp t a n d p u t s f o r w anl s o me s o l u t i o n s f o r a c c e l e r a t i n g b o o t p r o c ess i n e a c h b o o t p h a s e t l l a l l e mb e d d ed s Dt e mT a k e a J l i 3 8 6 C P U p l a tf o r m a s a J l e x a mp l e a L i n u x e mb e d d ed s y s t e m i n 8 1 1 o i l d e l i v e r y c o n t r o l s y s t e m i s C O n-s t r u e t ed a n d t e s t e d T h e r e s u l t i s s a t i s f act o ry,and i t ma y b e a r e f e r e n c e t o s o me s i mi l a r e mb e d d ed s y s t e ms Ke y wo r d s L i n u x;E mb e d d ed s y s t e m;b o o t p r o c e s s 维普资讯 http:/
限制150内