




已阅读5页,还剩58页未读, 继续免费阅读
(计算机系统结构专业论文)嵌入式操作系统裁剪技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要 摘要 本文以提高绘图机数据传输率为目的,通过裁剪普通n i l x 操作系统,最终获 得绘图机需要的嵌入式u n i l 】【操作系统。 本文首先介绍了嵌入式操作系统和嵌入式i j n u x ,然后详细介绍了目前流行的 一些嵌入式u n u x 裁剪方法,并对各种方法的优缺点进行分析,从而得出适合本文 研究应用的裁剪方法皿a l ( em e 叫c o n f i g 内核配置与源代码修改相结合的嵌入式 i j 肌x 内核裁剪法。 本文从提高绘图机数据传输率出发,实质上就是要提高n l u x 操作系统的进程 调度效率,系统的分析了一个普通u n u x 内核的总体结构、源代码目录树、内核编 译与启动过程,得出影响系统进程调度效率的两个关键点:普通的分时进程调度 策略和虚拟内存管理机制。接着就内核中与这两个关键点密切相关的主要子系统, 如进程管理和内存管理子系统的内核源代码进行了详细分析。 本文在源代码分析的基础上提出了一种基于固定优先级的可抢占式进程调度 策略和剔除虚拟内存管理机制的裁剪方案,并采用选定的内核裁剪方法:进行内 核配置、去除多余的内核守护进程、修改源代码等,对普通n n u 内核进行裁剪。 本文给出了裁剪过程中的具体配置选项和修改的主要源代码,如进程调度函数 s c h e d u l e 0 、内存映射函数d o 衄a p o 等。 最后对实验环境:p c 宿主机和j x a r m 9 2 4 1 0 目标机,进行了说明。在实验 平台上验证本文内核裁剪的有效性。 本文详细分析了l m u x 2 6 内核源代码。通过实验证明,裁剪后的数据输出进 程的调度执行时间较裁剪前的调度执行时间缩短了1 5 。 关键字:嵌入式l n u xl i n u x 2 6 内核裁剪进程调度虚拟内存管理源代码分析 a b s t r a c t a b s t i a c t ho r d c rt oi n c r e a s ed a t at r 锄s m i s s i o nf a t e s0 ft h ep l o t t c r t h i sp a p e rt a i l 耐n ga e m b e d d e du 血u xo p e r a t i n gs y s t e m f i r s u vt h j s 口a p e ri n t r o d u c c st h ee m b e d d e do p e m t i n gs y s t e m sa n d 山ee m b e d d e d l i n u x 。t h e ni n t r o d u c e s m eo ft h ep o p u l a re m b e d d e du h u xt a i l o r i n gm e t h o d s , a n a l v z e st h ea d v a n t a g e sa n dd i s a d v a n t a g e so fv a r i o u sm e t l l o d s t h u sd e d u c e sas u i t a b l e t a i l o r i n em e t h o df o rt t l ea p p l i c a t i o no ft h i sp a p e r t h em e t h o di sm a k em e 叫c o n f i g n 】五p :1 1 r a t i o nc o m b i n e dw i t hm o d i f y i n g 山ek e m e ls o u r c ec o d eo f 锄b e d d c d 工j n u x f o rt h ed u r p o s eo fi n c r e a s i n gd a t at i 锄s m i s s i o nm t eo f 山ep l o t t e r e s s e n c i a l l y s 口_ e a k i n gi st oi i i l p r o v et h ep r o c e s ss c h e d u l i n ge 笳c i e n c yo f “n u x ,as y s t e m a t i ca n a l y s i s o ft h eo v e m l ls t r u c t u r eo ft h e “n u xk e m e l ,t h ed i r e c t o r y ”e eo fl i n u xs o u r c ec o d e ,a n d t h ep r o c c s so fs t a r t i i l g 卸dc o m p i l i n gk e m c la r ep r e s e n t e di i lt h i sp a p e r t w ok e yp o i n t s a r ec o n c l u d e dw h i c ha f f e c t st h ee f f i c i e n c vo ft h ep “c e s ss c h e d u l i n e :t h eo r d i n 孤了t i m e s h a r e i n 2 田o c c s ss c h e d u l i n gs t r a t e g y 卸dt h ev i n u a lm e m o r ym a n a g e m e n tm e c h a i l i s m t h e nt h em a j o rs u b s y s t c m sw h i c ha r ed o s e l yr e l a 叫w i t ht h e s et w ok e yp o i n t s ,s u c h 勰 s o u r c ec o d co fp r o c e s sm a n a g e m e n ts u b s y s t e m 粕dm e m o r ym a n a g e m c n ts u b s y s t e m , 缸ed e t a i l e da n a l y z e d b a s e do nt h ea n a l y s i so fs o u r c ec o d e ,a丘x e d - 州吲t yp r e e m p t i v ep i o c e 站 s c h e d u l i n gs t r a t e g ya n dm e t h o do fc u t t i n gt b ev i n u a lm e m o r ym a n a g e m e n tm e c h a n i s m s 缸eg i v e ni nt h i sp a p e lt h e t a i l o r i n gp r o c e s si sk e m e lc o n f i g u r i n g ,r c d u n d a n tp r o c e s s e s d e l e t i n 2 卸ds o u r c cc o d em o d j f t i n g s p e c i f i cc o n f i 皿r eo p t i 0 璐a n dm o d i f i e ds o u 研 c o d c ,s u c ha sf i 】n c t i o ns c h e d u l e 0a n dd om m a p 0 ,a r cp r e s e n t e di nt h i sp a p e r f i n a l l v ,e x p e r i m e n t a l 曲v i r o 姗e n tw h i c hw eu s c dt 0 t e s tt h ee f i c i e n c vo ft h e t a i l 嘶n gi si n t r o d u c e d t h ee x p e r i m e n t a lr e s u l t ss h o wt h a ta f t e rt h ee m b e d d e dl i n u x t a i l 鲥n 如t h es c h e d u l i i l gt i m eo ft h eo u t p u tp r o c c s si ss h o r t e db y1 5 t h a nb e f o r e k e y w o r d :e m b e d d e d - l i n u xt a i l o n gl i n u 心6 p m c 髂s - s c h e d u n g v i r t a i - m e m o r y 呦n a g e m 蚰t u r 伐c o d ea n a i y s i s 西安电子科技大学 学位论文独创性( 或创新性) 声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再攥写的文章一律署名单位为西安电子科技大学。 ( 保密的论文在解密后遵守此规定) 本学位论文属于保密,在一年解密后适用本授权书。 本人签名: 导师签名: 圣鱼鱼日期丝21 :z 醐寥卜如 第一章绪论 第一章绪论 1 1 嵌入式操作系统 随着电子技术的不断创新和发展,嵌入式系统作为计算机应用的一个重要领 域,已深入到社会的方方面面,越来越为人们所关注。嵌入式系统1 1 j 是以应用为中 心,以计算机技术为基础,软硬件可裁剪,适用于对功能、可靠性、成本、体积、 功耗有严格要求的专用计算机的系统。和通用的计算机平台相比,嵌入式系统往 往具有功能单一、可移植、体积小、功耗低、实时性强、可靠性高、剪裁性好、 软硬件集成度高、计算能力相对较低等特点。 嵌入式系统出现于6 0 年代晚期,它最初被用于控制机电设备和电话交换机, 如今己被广泛的应用于工业制造、过程控制、通讯、仪器、仪表、汽车、船舶、 航空、航天、军事装备、消费类产品等众多领域。嵌入式系统在数量上远远超过 了各种通用计算机系统:计算机系统的核心- c p u ,每年在全球范围内的产量 大约在二十亿片左右,其中超过8 0 应用于各类专用性很强的嵌入式系统。 在嵌入式系统发展的初期,其应用相对简单,不需要操作系统;其硬件资源 也相对有限,不足以支持一个操作系统。那时的嵌入式设备中没有操作系统,嵌 入式软件由专门配套的汇编语言甚至机器语言编写,功能主要体现在一些控制流 程上,它们直接面向应用,直接基于系统硬件开发,专用性很强,使得在开发新 的嵌入式系统时,已存在的嵌入式软、硬件资源很少能够被复用,造成巨大的资 源浪费和重复劳动。 随着硬件的发展,嵌入式系统变得越来越复杂,最初的控制程序中逐渐加入 了许多功能,而这些功能中有很多可以由操作系统1 2 j 提供。于是,在7 0 年代末期出 现了嵌入式操作系统,它的出现大大简化了应用程序地设计,并可以有效地保障 软件质量和缩短开发周期。 嵌入式操作系统【3 】是安装于专用系统或设备中、具有通用操作系统的基本功 能、执行计算和数据处理功能的操作系统。与通用操作系统相比,嵌入式操作系 统具有配置专一。结构紧凑、坚固可靠等特点。近年来,嵌入式操作系统得到了 飞速的发展,从仅支持单一品种的微处理器到支持多品种的微处理器;从仅包含 任务调度、内存管理、进程间通讯等基本功能到不仅提供可以与通用操作系统相 比的普通功能外,还提供其他如文件系统、t c ! p ,口网络协议、窗口系统等特殊功 能。 目前,主流的嵌入式操作系统有v x w o r l 【s ,q n x ,w i n d o w s c e ,p s o s 及由u d u x 2 嵌入式操作系统裁剪技术研究 发展起来的嵌入式工j n u x 等。 其中,v x w o r k s 使用最为广泛,市场占有率最高。其突出特点是实时性强( 采 用优先级抢占和轮转调度等机制1 。除此之外,其可靠性和可剪裁性也相当不错。 q n x 是基于p c 的实时多任务、可扩展的操作系统。它具有微内核结构,用户 可根据需要选择其中一些组件来定制操作系统。其核心加上实时p o s i ) ( 环境和一个 完整的窗口系统还不到1 m b 。 相比之下,m i c r o s o f tw i n c e 的核心体积庞大,实时性能也不是很好,但由于 w i n d o w s 系列友好的用户界面和为程序员所熟悉的a p i ,并捆绑、o f ! f i c c 等应用 程序,正逐渐获得更大的市场份额。 嵌入式u n u x ( e m b e d d e du n u x ) 是指对普通u n u x 经过小型化裁剪后,能够固化 在容量只有几百k 字节或几兆字节的存储器芯片或单片机中,应用于特定嵌入式场 合的专用u n u x 操作系统。 随着半导体工业的飞速发展,加上嵌入式应用的多样化需求,要求嵌入式系 统具有合理的体系结构和良好的可用性、可伸缩性、易于移植等特点。嵌入式系 统的多样化特征,使得对操作系统进行面向应用的定制比通用系统更为必要。因 此,研究嵌入式操作系统裁剪定制技术,提高操作系统裁剪的效率就显得非常必 要。 1 2 嵌入式“n 呱 1 2 1l i n u x 作为嵌入式操作系统的优势 据不完全统计,目前世界上有四十多家公司的两百余种嵌入式操作系统。这 些市场上众多的商业性嵌入式操作系统都在努力地为自己争取更多的嵌入式市场 份额。然而,它们不仅价格昂贵、源代码不公开,使得每个系统上的应用软件与 其它系统都无法兼容;而且有的还占用过多系统资源,不适合应用于系统资源相 对紧缺的某些嵌入式系统中。此外,各公司的这种封闭性还导致了商业嵌入式操 作系统在对各种设备的支持方面存在很大的问题,使得对它们的软件移植变得很 困难。比方说,利用v x w o r k s 作为平台来做嵌入式系统开发就相当困难,一系列的 防火墙协议以及w e bs e r v e r 有关协议、t c 肌p 整个体系结构、拨号协议等,不是自 己开发就是要买v x w o r k s 已编译好的库( 不公开源代码的) ,造成成本居高难下。 理想的嵌入式操作系统一方面需要有基于最新硬件的、成熟的、强大的、无 时间限制的操作系统支持,如w i n d o w s 那样的操作系统;另一方面,需要高可靠性 传 续运行、非交互性操作的) 、可裁剪的操作系统以适应应用系统的特定需要。 第一章绪论 l i n u x 提供了成熟的系统管理、丰富的设备支持、更高的可靠性、健壮性以及丰富 的文档。最明显的优势是可免费获得i j n u x 所有的源代码。i j n u x 不像w i n d o w s 那么 大,不需要占用大量的系统资源。它具有模块化的特性,能很容易地被裁剪成紧 缩配置,裁剪后的u n u x 甚至比d o s 大不了多少,能装在一张软盘里面。由于u n u x 源代码是自由获取的,为用户裁剪l j n u x 奠定了良好的基础。嵌入式u n u x 由于代码 开放性以及强大的网络功能,在中低端的嵌入式网络设备中的应用,比起p s o s , v x w o r k s 有许多优势,工j n u x 现在甚至支持蓝牙技术。开发嵌入式i j n l l x 产品,从产 品上市时间到产品系列化,除开发人员以外所需的其他投入均较少。由于嵌入式 系统越来越追求数字化、网络化和智能化,因此,原来在某些设备或领域中占主 导地位的操作系统越来越难以为继。因为要达到上述要求,整个系统必须是开放 的并提供标准的a p i ,并且能够方便地与众多第三方的软硬件沟通。 综上所述,“n u x 作为嵌入式操作系统有如下得天独厚的优势: 1 i j 加x 是开放源代码的,不存在黑箱技术,遍布全球众多的l j 加x 爱好者又 是l j n u x 开发的强大技术后盾。开放源代码意味着对新设计、制造的嵌入式芯片的 快速支持。嵌入式系统的应用领域通常要求系统高度个性化、高度细分,因此, 对新芯片的快速支持是一个好的适合推广的嵌入式操作系统必须具备的能力。目 前几乎没有哪一种系统比开放源代码的u n u x 具备更强大的快速支持能力; 2 n n u x 拥有大量的且不断增加的开发工具,这些工具为嵌入式系统的开发提 供了良好的开发环境。大量的免费工具和网上资源可以利用,节省了用户的开发 投入,也缩短了产品的研发周期; 3 l m u x 的开放源码易于定制和裁剪,灵活的模块化定制方式,保证更快速地 定制出符合客户需求的嵌入式系统。个性化的市场需求、个性化的设计,n u x 先 天的模块化设计提供了无与伦比的定制能力。目前同样的是2 0 0 k b 大小的核心, u 加x 系统比w i n d o w sc e 具备更强大的功能; 4 n n u x 的内核小,功能强大,运行稳定,系统健壮,效率高。u n u x 内核只 占用很小的内存空间,包括虚拟内存和所有核心的操作系统功能在内,只需占用 p 皿t i u mc p u 系统的1 0 0 3 内存。只要有5 0 0 k b 的内存,一个有网络栈和基本实用 程序的l i n u x 系统就可以在一台8 位总线的i n t e l3 8 6 微处理器上运行。i j n u x 系统甚至 可以仅使用2 5 6 k br o m 和5 1 2 k br a m 进行工作; 5 u n u x 不仅支持x 8 6c p u ,还可以支持其它数十种c p u 芯片; 6 【j n 畎以稳定著称,而系统稳定可靠、性能优异是嵌入式产品必不可少的品 质之一; 7 u n u x 沿用了u n i 】【的发展方式,遵循国际标准,可以方便地获得第三方软硬 件厂商的支持; 8 “肌x 在价格上极具竞争力。成本一直是开拓市场的重要因素,嵌入式l m u x 4 嵌入式操作系统裁剪技术研究 继承了这一优点,继续向嵌入式领域的用户提供价廉物美的操作系统; 9 l i n u x 内核的结构在网络方面是非常完整的,它提供了对十兆、百兆、千兆 以太网,无线网络,令牌网,光纤网以及卫星等多种联网方式的全面支持。强大 的网络功能是嵌入式系统的未来发展方向,而l i n u x 号称“网络之子”,正是伴随 着网络一步步发展起来的,其完善的网络功能是其它操作系统所不能比拟的。 此外,在图像处理、文件管理及多任务支持等诸多方面,【血u x 的表现也都非 常出色,因此它不仅可以充当嵌入式系统的开发平台,其本身也是嵌入式系统开 发的好工具。正因为l 岫u x 具有众多的优点,使得l j n u x 嵌入式操作系统备受青睐, 在嵌入式领域中得到了飞速发展。 1 2 2 常见的嵌入式l i u x 操作系统 本文在1 1 节中介绍了嵌入式操作系统。随着l _ u x 的不断发展,它逐渐具有了 作为嵌入式操作系统的许多得天独厚的优势。嵌入式i j n u x 在嵌入式操作系统中所 占的比例也越来越高,将u n u x 用于嵌入式领域成了n 骶研究的一大热点。 下面是常见的嵌入式l j n l l x 的主流版本: 1 u m :基于m 蛐d r a l 【e 6 1 的嵌入式l j n l l x0 s ,可以轻松扩充,以适应用户的 各种需求。 2 u c i 血u x :专为无存储器管理单元( m m 忉的微控制器打造的嵌入式l m u x 操 作系统。 3 e m b e d i 】【:n n e o 公司的e m b c d i x 是基于p c 机的普通桌面l i n u x 的,目前主要 运行在x 8 6 和m o t o m l ap o w c r p c 处理器上。 4 r n 血u x :f i n j t es t a t em a c h i n el a b si c ( f s m l a b s 册发的r t u n u x 是一种硬 实时操作系统。能对大量硬件进行广泛支持,并以其先进的任务调度策略发挥其 优异的实时性能。 5 m o n t a v i s t ai j n u x :m o n t a v i s t a 软件公司推出的嵌入式u n u x 操作平台。 6 u i 血u x :运行在3 8 6 上的微小内核。 7 l o a f :”u n u xo na f 1 0 p p y ”,运行在3 8 6 上。 8 夸克( 0 u a r k ) u n t l 】【:网虎公司的基于i i l u x 的嵌入式操作系统,号称世界 上最小的嵌入式l i 加x 系统。 9 n i n u n u x :面向数字相机、m p 3 播放器等嵌入式设备的体积较小的i j n l l x 发布版本。 1 0 红旗嵌入式l i n l l 】【:国内中科红旗公司开发的嵌入式l 血u x 操作系统。 尽管已有的嵌入式u n u x 操作系统种类繁多,但还是满足不了某些特定应用环 境的需求。如何对现有的l j n u x 操作系统进行裁剪始终是嵌入式研究领域的热点问 第一章绪论 题。 1 3 1 为什么要裁剪“n 畎 1 3l j n 呱裁剪方法 5 普通版本i j n u x 作为一种通用的操作系统,其内核需要具有对硬件平台的广泛 支持能力,往往包括了繁多的功能模块,这些不必要的功能模块不仅会占有系统 的存储资源,而且会影响系统对事件的响应速度和执行速度,因此有必要对原有 的系统进行压缩,删除不必要的模块。 而嵌入式系统是针对具体应用的专用系统,在设计时其硬件平台和软件设计 的目标已经非常明确,且不会轻易变动,所以可以很好地根强软硬件的实际情况 对内核进行定制。对i j n u x 操作系统进行裁剪,要达到的目的主要集中于下列几个 方面: 1 提高实时性:由于普通l j u x 是多任务操作系统,采用分时调度策略,设计 目标是尽量提高系统的整体吞吐率,而不重视系统的实时性,因此u n 呱操作系统 的实时性不是很好。而嵌入式环境往往对n u x 操作系统的实时性要求很高。提高 n n u x 的实时性是嵌入式u n u x 操作系统研究的一个热点,也是对加x 进行裁剪要 达到的主要目的之一。 2 对特殊硬件的支持:嵌入式环境往往使用一些特殊的硬件,为了使嵌入式 u n l l x 操作系统支持特殊硬件,就需要对其进行裁剪和定制。 3 分解l j n 吸操作系统:当前在l i n u x 操作系统的裁剪和定制技术方面的研究, 主要集中于研究具体的裁剪实现算法和裁剪实现技术,如何分离出i j 肌x 操作系统 内核中必要部分和可裁剪部分,根据具体的应用,实现对各个可裁剪部分的定制, 这方面的研究刚刚开始。 要想得到一个较小的i j n u x 内核,可以通过选用专门针对嵌入式应用的n n u x , 不过,即使是这种情况,它也可能包含了你的系统并不需要的功能。因此,最好 的办法还是针对自己的系统平台的硬件特性和所需要的软件功能来确定内核需要 哪些模块的支持,通过裁剪,去除掉内核不需要的模块,对内核进行精雕细凿。 1 3 2l i n 呶裁剪的可行性 对l j d l l 】【进行裁剪的可行性如下所述: 1 u 叫x 的模块化设计 操作系统的内核可能是微内核也可能是单内核( 后者有时称之为宏内核 6 嵌入式操作系统裁剪技术研究 m a c r o k e m e l l 。 在微内核( m i c r o k e m e lk e m e l ) 中,大部分内核都作为独立的进程在特权状态下 运行,它们通过消息传递进行通信。在典型情况下,每个概念模块都有一个进程。 因此,如果在设计中有一个系统调用模块,那么就必然有一个相应的进程来接收 系统调用,并和能够执行系统调用的其它进程( 或模块) 通信以完成所需的任务。 在这些设计中,微内核部分经常只不过是一个消息转发站:当系统调用模块要 给文件系统模块发送消息时,消息直接通过内核转发。这种方式有助于实现模块 间的隔离( 某些时候,模块也可以直接给其它模块传递消息。) 。在一些微内核的设 计中,更多的功能,如等,也都被封装在内核中了。但是最根本的思想还是要 保持微内核尽量小,这样只需要把微内核移植到新的平台上。其它模块都只依赖 于微内核或其它模块,并不直接依赖硬件。 微内核设计的一个优点是在不影响系统其它部分的情况下,可以更高效、更 容易地替代现有的系统模块。我们甚至可以在系统运行时将开发出的新系统模块 或者其它任何需要替换的模块直接而迅速地加入系统。另外的一个优点是系统不 需要的模块将不会被加载到内存中,因此微内核就可以更有效的利用内存。 单内核( m o n 0 1 i t h i c k 锄e i ) 是一个很大的进程。它的内部又可以被分为若干模块 ( 可以是层次型或无序型) 。但是在运行的时候,它是一个独立的二进制映象。其模 块间的通信是通过直接调用其它模块中的函数实现的,而不是消息传递。 单内核的支持者声称微内核的消息传递开销引起了效率的损失。微内核的支 持者则认为因此而增加的内核设计的灵活性和可维护性可以弥补任何损失。 l i n u x 基本上是单内核的,i j n u x 为什么要是单内核的呢? 在i 血u x 创始人的观点 看来,通过把内核以单一的方式进行组织并在最初始的空间中运行是相当容易的 事情。这种决策避免了有关消息传递体系结构,计算模块装载方式等方面的相关 工作,所以,l 缸u s 一开始就把l 抽u x 设计成单内核的。另外,从u n l l 】【的发展过程 来看,u n u x 既没有开发时间的限制,也没有深受市场压力的发行进度的限制,所 有的限制只有并不过分的对内核的修改与扩充。内核的单一设计在内部实现了充 分的模块化,在这种条件下的修改或增加都并不怎么困难。 u n u x 先天的模块化设计提供了无与伦比的定制能力,保证更快速地定制出符 合客户需求的嵌入式系统。 2 u u x 源代码公开 源代码公开是l i n l l 】【深受众多电脑爱好者喜爱的最主要原因。也正因为其公开 源代码,使得对其在更低层面的裁剪成为可能。 3 u n l l 】【内核重编译命令 l i n u x 内核经修改和重新配置后,可通过重编译命令生成新的内核映像。引导 新内核启动运行,即可得到新u n u x 操作系统。 第一章绪论 7 m u x 内核的编译必须以超级用户的身份登录,进入内核解压缩后生成 u s r ,7 s r 虮i i l u x ( 或u s r s r c ,l i 肌x 版本号) 目录下才能进行。 u n u x 内核的编译主要是靠g n um a k e 工具来实现的,主要步骤如下: ( 1 ) m a l em r p r o p c r 清理环境; ( 2 ) m a l 【ec o n f i 咖a k cm e n u n f i 咖a l 【ex c o n f i g :配置核心; ( 3 ) m a l 【ed e p ;设置附属文件依赖关系( 此命令在l j n u x 2 6 版本编译时不需要) ; ( 4 ) m a l 【ed e 明:清除旧内核文件; ( 5 ) m a l 【ez i i n a g e m a k ez d i s 蜘a k ez i j l o :编译核心; ( 6 ) m a k em o d u l e s :编译系统模块, m a k em o d u l e si m t a l l :安装系统模块; ( 7 ) m a l 【ei n s t a l l :从新内核启动 此时,一个全新的l i 肌x 操作系统开始工作。 1 3 3l i n l l 】| 【内核主要裁剪方法 嵌入式u n u x 内核裁剪主要有三种方法: 1 使用i 血l l 】【自身的配置工具,编译定制内核。u n u x 内核能够很好的支持 模块化,内核有许多可以独立增加删除的功能模块可以设置为内核配置选项。嵌 入式i j n u x 内核支持很多的硬件,如果在编译的时候把这些选上,编译出来的内核 会很大,编译时应根据系统平台特点和应用需求配置内核,添加需要的功能、删 除不必要的功能,这样可以显著减小内核的大小。但这种裁剪方法的缺点是内核 裁剪的粒度较大,精度较小。 基于自身配置工具编译定制【4 1 ,采用以下几种方法是可行且较简单的。 ( 1 ) 定制安装法。在安装时选择需要的软件,选择自定义方式,并且选中每一 个具体软件包,就能够详细地裁剪l i n u x ,在为防火墙定制时经过这样安装占用硬 盘空间2 5 0 m b 。 ( 2 冲m 裁剪法。虽然经过以上定制安装可以实现一定的裁剪,但对于特定的应 用仍然有许多无用的软件包,此时应再使用r p m 命令“r p m q a ”查看所有的软件包 信息。对于无用的包使用命令“r p m 软件包”卸载( 注意有些包因为存在其它包的 关系依赖去不掉) ,最后卸载r p m 工具。经过这样卸载安装占用硬盘空间约1 2 0 m b 。 ( 3 ) 手工删除法。对于一个软件包,有些文件不是系统所必需的,这时要手工 删除无用的文件,例如u s r m 卸、u s r s h a r e 文档,最后剩余约5 0 m b 。这时的系统 基本保持l j n u x 原貌,如系统运行级别、启动方式、用户管理、日志系统和系统必 要的服务,等等。现有的电子盘已经可以装下印m b 的数据。 2 修改内核源代码进行系统裁剪。通过分析系统平台和应用需求,结合对内 嵌入式操作系统裁剪技术研究 核代码的理解,在内核源代码的适当位置加入一些条件编译语句,使用c m u 菜单 定制语言1 定制内核选项。基于内核源码的方法裁剪粒度更小,裁剪出来的内核体 积更小,更适合嵌入式系统的需求。 3 基于系统调用关系进行内核裁剪。内核是操作系统运行的核心,内核函数 在系统调用、异常产生和中断发生时被调用。分析清楚系统调用关系,可将不需 要的内核函数裁剪。 本文的裁剪l i n u x 内核的方法是上述几种方法的综合。先用系统配置命令裁掉 不需要的大模块,然后再分析系统内函数调用关系,在此基础上对n u x 源代码进 行修改,实现小粒度的裁剪和定制,最后得到满足应用需求的新内核。 1 4 本文主要研究内容及组织结构 现有的绘图机工作时会出现因数据传输率达不到要求而在所绘图纸上出现空 白的情况。本文针对这种情况,研究如何对普通u 叫x 2 6 内核进行裁剪,将裁剪 后的操作系统应用到绘图机上,能使绘图机的数据传输率有所提高,不再出现不 该有的空白。 本文首先介绍了嵌入式操作系统和嵌入式i j n u x ,然后详细介绍了目前流行的 一些嵌入式i j n u x 裁剪方法,并对各种方法的优缺点进行分析,从而得出适合本文 研究应用的裁剪方法如a l ( em e 叫c 0 面g 内核配置与源代码修改相结合的嵌入式 u n u x 内核裁剪法。 本文从提高绘图机数据传输率,实质上就是要提高u u x 操作系统的进程调度 效率出发,系统的分析了一个普通l j n u x 内核的总体结构、源代码目录树、内核编 译与启动过程,得出影响系统进程调度效率的两个关键点:普通的分时进程调度 策略和虚拟内存管理机制。接着就内核中与这两个关键点密切相关的主要子系统, 如进程管理和内存管理子系统的内核源代码进行了详细分析。 本文在源代码分析的基础上提出了一种基于固定优先级的可抢占式进程调度 策略和剔除虚拟内存管理机制的裁剪方案,并采用选定的内核裁剪方法:进行内 核配置、去除多余的内核守护进程、修改源代码等,对普通u n u x 内核进行裁剪。 本文给出了裁剪过程中的具体配置选项和修改的主要源代码,如进程调度函数 s c h e d u l e 0 、内存映射函数d o 咖a p 0 等。 最后对实验环境:p c 宿主机和j 幔m 9 2 4 1 0 目标机,进行了说明。在实验 平台上验证本文内核裁剪的有效性。 本文对n l l 】【内核源代码进行了较清晰、透彻的分析,为今后其他基于i j n u x 内核的应用开发打下了基础。 本文后续内容组织:第二章叙述了几种常用的u n u x 内核裁剪方法;第三章分 第一章绪论 9 析了n n u x2 6 1 4 操作系统中与本文裁剪相关的内核源代码,其中主要分析的是 l i n u x 进程管理和内存管理模块;第四章描述了基于实际应用对【j n u x 内核进行的 具体裁剪,通过实现固定优先级可抢占式进程调度策略和剔除虚拟内存管理机制, 提高了嵌入式l i n u x 的进程调度效率,达到了实际应用中的提高数据传输率的目 的;第五章记录了整个实验的环境、实验过程和实验结果:第六章是通过本文的 研究得出的结论和对今后进一步研究工作的展望。 第二章u n u x 内核裁剪方法 第二章l j n u x 内核裁剪方法 2 1 条件编译内核裁剪法 u n u x 内核要考虑支持极为广泛的硬件平台,如支持的c p u 从最早的i 3 8 6 系 列( 包括h l t c l 3 8 6 4 8 6 ,p e n t i u m ,p p r o ,p 2 ,p 3 ,对某些如p e n t i u m 的浮点运算错误都有 专门处理) 到p h a ,s p a r c ,m i p s ,p c l w e r p c ,m o t o r o l a6 8 x 瓢各个系列,支持的存储设 备板卡、外设更是应有尽有。系统中板卡外设之类的驱动程序由于通用字符或块 设备接口和动态加载模块技术的应用,根本不会涉及到内核的本质改变。而c p u 芯片体系的不同,则会极大地影响着内核的设计和代码的细节。i j n u x 操作系统的 条件编译系统就是为了方便系统管理员对内核的裁剪而设计的。l j n u x 的一套代码 即可编译产生不同体系平台的代码,这当然是靠广泛分布于各处的条件编译设置 和一些方便编译的脚本实现的。 条件编译内核裁剪主要依靠m a l 【em e 卟n f i g ( 另外还有m a l 【e n f i 舀m a l 【e x c 0 血g ) 产生c o n 丘g 文件,同时写i c l u d e l i n u x a u t o c o n f j g h 文件,并在每一个c 源 文件中加有 ,使d e f i e 的宏c 0 n f i gx x x 起全局性作用。m a l 【e m e n u c o n 丘g 命令的选项众多,将在3 2 3 节中详细介绍。如何选定适合系统的配 置选项是条件编译法裁剪内核的重点,也是难点。 条件编译裁剪内核法与后面将要介绍的其他方法相比,最大的优点就是简单。 它只需要弄清楚各配置选项的含义和它们之间的关联关系,就可以根据实际需要 对内核进行裁剪。然而,仅仅利用这种内核条件编译系统所得到的裁剪率是比较 低的。对于u n k e m e lv e r s i o n 2 6 ,仅能得到大约2 0 0 k b 的内核映像文件z l m a g e , 安装后核心大约4 0 0 k b 。这对于许多嵌入式应用来说并不是一个理想的数字。 该内核裁剪方法的缺陷有: 1 裁剪粒度过大,裁剪的单元是整个功能模块; 2 在1 i n u x 内核中安插了过多条件编译语句,损害了源代码的可读性和可维 护性,导致调试和测试的复杂性。 条件编译内核裁剪法需与其它内核裁剪方法结合使用。 2 2 基于调用图的l j n u x 内核裁剪方法1 5 】 l i n u x 和其他类u n 操作系统都是单内核操作系统。u n u x 由大量的进程组成, 这些进程通过相互调用来协同完成任务。i j n u x 内核可以动态的装卸模块,结构是 嵌入式操作系统裁剪技术研究 不固定的,这与结构固定的典型程序不同。因此,准确预测i j n u x 内核就更加复杂。 图2 1 :o s 在整个系统中的位置 如图2 1 所示,操作系统处于硬件层和应用层之间,对它的裁剪将牵涉到另外 两层的一些内容。尽管内核是u 叫x 的主要部分,但并不是唯一的组成成分。几乎 所有的现代操作系统都是分层结构的,“n u x 也不例外。内核是u n u x 的中间层,其 它层如应用程序、库、硬件驱动程序也是可重用的。另外,l i n u x 内核不存在根进 程。因此,l i n 呱内核中进程之间的调用关系是错综复杂的。调用图就是解决这一 难题的方法,因为它能够很好地描绘一个程序的调用结构。 调用图的作用是提取进程调用的调用关系。目前,调用图己经应用到软件重 规划和软件维护上。我们采用调用图技术来抽象一个l m u x 内核,目的是构造一个 内核调用结构,并且根据具体应用删除不必要的代码。 利用调用图来裁剪l i n u x 的方法分为六个步骤,下面就进行详细介绍。 1 构造应用程序调用图 目前,u n l 】【上运行的应用程序几乎都是用c 语言编写的,因此很容易构造出 应用程序的调用图。 程序的调用图定义为有向图c = f v ,r ) ,其中v 表示程序中所有函数的集合,每 个函数是调用图中的一个顶点;r 表示函数之间调用关系的集合,即 r = ( v l ,v 2 ) l v l ,v 2 v 且v 1 调用v 2 一次以上) 。 由此可见,调用图反映了程序的静态结构。举例说明,根据如下所示的一段 应用程序代码, m a i n ( )d ( ) a ( ) ;b ( ) ;c ( ) ; ) a ( ) e ( ) ) f ( ) ;) b ( )f ( ) d ( ) ;) ) “) d ( ) ; 可以得到如图所示的调用图: 第二章“n u x 内核裁剪方法 图2 2 :简单应用程序调用图 定义s ( m a i n ) = p i p v 且从顶点m a i l l o 到顶点p 存在一条路径 ,显然s ( m a i n ) v 。因此,如果存在一个函数q 不属于s ( m a i n ) ,那么q 就是此应用程序不需要的函 数,应该将函数q 从该程序中删除。尽管函数q 不会在该程序中引起任何错误,但 也无法肯定将其移植到嵌入式系统上是安全的,所以最好将其删除。在图2 2 所示 的例子中,函数e ( ) 和“) 是可以删除的 2 构造共享库调用图 l m u x 也是一个基于层的操作系统。l _ u x 应用程序在最上层,并且通过库调用 向操作系统发送服务请求( 如图2 3 ) 。在u n u x 中,象加函数、数学函数、串函数等 这样的库通常占用大量的空间。多数嵌入式u n u x 厂商都想开发新库,但是基于软 件重构的概念,我们相信有许多可重用的库调用。如果以高效的方式重用它们, 就可以缩减开发时间。 茎黧嗍一 库调用、- :内援调度函致 库调用。 s y 硝枷c b i i ( ) 茎:乡 内校函数 内核函数 内核函数 内核函数 内核函教 图2 3 :u n u x 程序调用层次圈 共享库对于u l l 】【非常重要,几乎所有的应用程序都要调用共享库。共享库包 含了大量的基本函数供程序使用,如打开文件,在屏幕上打印信息,从使用者得 到反馈等等。然而,共享库文件通常有几兆字节大,必须对其进行裁剪,才能满 足嵌入式系统的要求。 因此,第二步就是要构造库调用图,这个库调用图可以代表库的调用结构, 但是它没有根。换句话说,它为应用程序提供了多个入口( 如图2 4 ) 。分析库调用结 构的目的是找出哪个库调用可以重用,当然也可以预测出哪个是不必要的库调用。 9 嵌入式操作系统裁剪技术研究 图2 4 :简化的共享厍调用图 3 构造内核调用图 内核是l i n u x 的核心部分,它控制并协调所有的指令操作。由于内核的重要性 及其庞大的结构,多数嵌入式u n u x 都没有改写它,主要是考虑到确保内核的安全 执行。因此,仍然有许多不必要的代码保留在内核中。构造内核调用图的方法与 构造共享库调用图的方法类似。u 加x 是中断驱动系统。当有事件通过中断或异常 向c p u 提出服务请求时,内核就启动相应的处理程序。因此,要构造内核调用图 必须首先弄清内核函数将在何时执行。通常,内核函数会在下列三种情况下执行: ( 1 ) 应用程序调用系统调用; ( 2 ) 发生异常; ( 3 ) 发生中断。 前两种情况是针对应用程序的,第三种情况是针对硬件设备的。为了找出不 必要的内核函数,可以从上述三种情况的内核调用图入手。对于前两种情况,可 以再结合应用程序调用图和共享库调用图,这样将产生一个s ( m a i n ) ,不在这个集 合中的过程就可以删除。 4 删除不必要的硬件驱动程序 第四步是根据嵌入式系统所需的硬件设备,删除不必要的硬件驱动程序。标 准u n u x 支持多种硬件设备,但嵌入式系统是面向特定硬件平台的,有许多硬件设 备是不需要的。例如,键盘和鼠标不是p d a 的标准设备。因此,要使u n u x 适用于 嵌入式系统,必须找出嵌入式系统不需要的硬件驱动程序的相关代码,并将其删 除。 5 提取出应用程序所需要的库函数和内核函数 第五步是综合应用程序调用图、共享库调用图和内核调用图,提取出应用程 序所需要的库函数和内核函数。如上所述,共享库调用图没有初始顶点,因此, 我们把应用程序调用图与共享库调用图合并。这样,应用程序的初始节点m a i l l ( ) 就成了整个混合调用图的入口了。根据s ( m a i n ) 就能够提取出不必要的库函数。 由于共享库是连接应用程序和l i n u x 内核的通道,所以合并内核调用图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广西pcr上岗证考试题及答案
- 2025年北师大专业测试题及答案
- 2025年餐饮三级教育试题及答案
- 2025年测绘专业卓越班面试题及答案
- 村民开路协议书
- 杨超越的协议书
- 林地种植协议书
- 果然婚前协议书
- 架电线杆协议书
- 柴油代储协议书
- 隧道工程施工劳务分包合同
- Excel常用函数公式及技巧
- 学校心理健康教育合作协议书
- 2024-2030年中国军用滑环行业市场发展趋势与前景展望战略分析报告
- 部编版高中语文必修上第六单元任务群教学设计
- 线上线下教学衔接北师大版数学三年级下册口算脱式计算、应用题复习、期中、期末检测试卷(含部分答案解析)
- 人教版七年级上册英语UNIT 4 My Favourite Subject单元测试卷
- 光明乳销售合同范本
- (正式版)JTT 1497-2024 公路桥梁塔柱施工平台及通道安全技术要求
- ISO15614-1 2017 金属材料焊接工艺规程及评定(中文版)
- 企业项目规划书样本
评论
0/150
提交评论