(控制理论与控制工程专业论文)嵌入式linux内核研究.pdf_第1页
(控制理论与控制工程专业论文)嵌入式linux内核研究.pdf_第2页
(控制理论与控制工程专业论文)嵌入式linux内核研究.pdf_第3页
(控制理论与控制工程专业论文)嵌入式linux内核研究.pdf_第4页
(控制理论与控制工程专业论文)嵌入式linux内核研究.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着计算机技术、通信技术和控制技术的进步,嵌入式技术得到了飞速的发展,而选 择一个合适的嵌入式操作系统将显著提高系统的性能和开发速度。嵌入式l i n u x 操作系统 的内核高效稳定、可移植性强,再加上其源代码公开、资料丰富,因此在嵌入式领域得到 了广泛应用。 a r m 是当前应用最广的3 2 位微处理器,而把l i n u x 应用到a r m 处理器上是嵌入式 领域的热点之一,所以在此选择了三星公司的a r m 9 处理器s 3 c 2 4 1 0 和l i n u x 2 6 2 0 内核 作为研究对象。本文是作者在对嵌入式l i n u x 进行了大量研究和实践的基础上,对嵌入式 l i n u x 的核心技术从内核层次上进行的探索。 b o o t l o a d e r 是在操作系统运行之前执行的一段小程序,主要完成硬件的初始化和为操 作系统的运行准备一个正确的环境。一个操作系统内核的主要功能就是管理硬件资源和对 硬件进行抽象,l i n u x 作为一个通用的操作系统,其内核是由内存管理、进程控制、文件 系统、设备驱动等基本部分构成的。在嵌入式系统中,内存是一种十分稀缺的资源,是每 个操作系统都应该考虑的基本问题,其具体实现严重依赖于硬件的体系结构,在s 3 c 2 4 1 0 处理器中有对内存管理进行支持的m m u 部件,主要提供虚拟内存映射和内存保护功能。 进程的管理和控制功能,基本上可以作为区分一种软件是否可以称为操作系统的依据,进 程的运行方式直接决定了一种操作系统的实时性能,是操作系统设计成败的最关键因素。 文件系统是数据存储和管理在操作系统上的实现,是对存储介质操作的一种抽象,其底层 是存储介质的驱动程序,也是一些大型操作系统的必须成分。而设备驱动程序是计算机和 外部世界进行通信的桥梁,计算机如果没有输入输出和各种各样的外设就失去了其存在的 意义,因此,设备驱动程序在操作系统设计中占有重要的地位。在l i n u x 中,设备驱动程 序是以模块的形式存在的,可以被动态的安装和和卸载,也可以静态的和内核编译在一起。 因此,为了探索嵌入式l i n u x 的实现原理,本文在介绍了嵌入式l i n u x 的发展历史和 未来趋势之后,从u b o o t 的代码出发深入研究了b o o t l o a d e r 的概念、功能和主要框架。接 着,从内核层次而不是应用层次上研究了l i n u x 的内存管理、进程管理、系统调用、中断 处理和设备驱动程序在a r m 处理器上的实现机理,并提出了改进内核的一些具体措施和 应用嵌入式l i n u x 的一些关键技术,对于研究操作系统原理和l i n u x 应用程序的开发都有 重要意义。 蓝牙是一种无线短距离通信技术,近年来得到了很快的发展,在研究了嵌入式l i n u x 内核主要部分的基础上,基于a r m l i n u x 平台设计了一款蓝牙局域网接入点,已经成功 实现了基本的功能,其性能表明了l i n u x 用于嵌入式系统是合理而可行的。 关键词:嵌入式l i n u xb o o t l o a d e rm m u 进程管理设备驱动程序 蓝牙 a b s t r a c t a l o n gw i t ht h ed e v e l o p m e n to fc o m p u t e rt e c h n o l o g y , c o m m u n i c a t i o nt e c h n o l o g ya n d c o n t r o lt e c h n o l o g y , t h ee m b e d d e dt e c h n o l o g yi sd e v e l o p i n gr a p i d l y t h ec h o i c eo fa l la p p r o p r i a t e e m b e d d e do p e r a t i n gs y s t e mc a l lg r e a t l yi m p r o v et h ep e r f o r m a n c eo ft h es y s t e ma n ds p e e du pt h e d e v e l o p m e n to fp r o j e c t e m b e d d e dl i n u xk e r n e l i ss t a b l ea n de 硒c i e n t a l s ob e c a u s eo fi l so p e n s o u r c ea n da b u n d a n tm a t e r i a l s ,i ti sw i d e l yu s e di nt h ef i e l do fe m b e d d e ds y s t e m a r mi st h em o s tw i d e l yu s e d3 2 b i tm i c r o p r o c e s s o r , a n dt h ea p p l i c a t i o no fl i n u xo na r m i so n eo ft h em o s tp o p u l a rf i e l di ne m b e d d e ds y s t e m ,s ot h er e s e a r c ho b je c to ft h ep a p e ri st h e s 3 c 2 410p r o c e s s o ra n dl i n u x 2 6 2 0k e r n e l a f t e ral o to fr e s e a r c ha n dp r a c t i c a lw o r k , t h ea u t h o r e x p l o r e ss o m ek e yt e c h n o l o g i e sa b o u tl i n u xa tk e m e l l e v e l b o o t l o a d e ri sas m a l ls e c t i o no fc o d et h a tr u n sb e f o r et h ek e m e lo ft h eo p e r a t i n gs y s t e m i t s m a i nf u n c t i o na r eh a r d w a r ei n i t i a l i z a t i o na n dp r e p a i r i n gar i g t he n v i r o n m e n tb e f o r et h er u n n i n g o ft h eo sk e r n e l t h em a i nf u n c t i o no fao p e r a t i n gs y s t e ma r eh a r d w a r er e s o u r c em a n a g e m e n t a n dh a r d w a r ea b s t r a c t i o n ,a sag e n e r a lo p e r a t i n gs y s t e m ,t h el i n u xk e m e lc o n s i s t so fm e m o r y m a n a g e m e n t ,p r o c e s sm a n a g e m e n t , f i l es y s t e ma n dd e v i c e d r i v e r s i ne m b e d d e ds y s t e m s , m e m o r yi sas c a r c er e s o u r c e ,t h em e m o r ym a n a g e m e n ti sab a s i ct h i n gf o rd e s i g n i n gao p e r a t i n g s y s t e m ,a n di t sr e a l i z a t i o nd e p e n d so nt h eh a r d w a r ea r c h i t e c t u r eh e a v i l y t h es 3 c 2 4 10p r o c e s s o r h a sam m u ,w h i c hp r o v i d e st h ef u n c t i o no fv i r t u a la d d r e s st r a n s l a t i o na n dm e m o r yp r o t e c t i o n t h ep r o c e s sc o n t r o la n dm a n a g e m e n ti sa l la c c o r d a n c eo fd e t e r m i n i n gw h e t h e ras o f t w a r ei sa l l o p e r a t i n gs y s t e m ,t h er u n n i n gm a n n e ro fp r o c e s sd i r e c t l yd e t e r m i n e st h er e a lt i m ep e r f o r m a n c eo f a l lo p e r a t i n gs y s t e m ,a n di t st h em o s ti m p o r t a n tf a c t o rf o rt h ed e s i g no fa no p e r m i n gs y s t e m f i l e s y s t e mi st h er e a l i z a t i o no fd a t as t o r a g ea n dm a n a g e m e n ti no p e r a t i n gs y s t e m a l s oi ti sa n a b s t r a c to ft h es t o r a g em e d i a ,i t sl o w e rl a y e ri st h ed e v i c ed r i v e ro ft h es t o r a g em e d i a ,s o ,i ti st h e n e c e s s a r ye l e m e n to fa l lo p e r m i n gs y s t e m t h ed e v i c ed r i v e ri sac o m m u n i c a t i o nb r i d g eb e t w e e n ac o m p u t e ra n dt h eo u t s i d ew o r l d ,w i t h o u ti n p u ta n do u t p u ta n da l lk i n d so fe x t e r n a ld e v i c e s ,a c o m p u t e rw i l ll o s et h em e a n i n go fi i sb e i n g s od e v i c ed r i v e r sh a sa ni m p o r t a n ts t a t u si nt h e d e s i g no fa no p e r a t i n gs y s t e m i nl i n u x ,d e v i c ed r i v e r sb e h a v ea sm o d u l e s ,t h e yc a l lb ei n s t a l l e d a n du n i n s t a l l e dd y n a m i c a l l y , a l s ot h e yc a nb ec o m p i l e dw i t ht h el i n u xc o r ea saw h o l e s o ,t oe x p l o r et h ep r i n c i p l eo fe m b e d d e dl i n u x ,a f t e rt h ei n t r o d u c t i o no ft h eh i s t o r ya n dt r e n d o fe m b e d d e dl i n u x ,t h ea u t h o rs t u d i e dt h ec o n c e p t ,f u n c t i o na n dt h em a i nf e a t u r eo f b o o t l o a d e r ,b a s e do nt h ec o d eo fu - b o o t n e x t ,t h er e a l i z a t i o np r i n c i p l eo n 锄o fl i n u x s m e m o r ym a n a g e m e n t ,p r o c e s sm a n a g e m e n t ,s y s t e mc a l l ,i n t e r r u p tp r o c e s s i n ga n dd e v i c ed r i v e r s a r es t u d i e da tk e r n e ll e v e ir a t h e rt h a na ta p p l i c a t i o nl e v e l a tt h es a m et i m e m a n ym e t h o d st o i m p r o v et h el i n u xk e m e la n ds o m ek e yt e c h n o l o g i e sa b o u te m b e d d e dl i n u xa r eb r o u g h t u p ,w h i c hh a si m p o r t a n tm e a n i n g st ot h er e s e a r c ho fo p e r a t i n gs y s t e ma n dt h ed e v e l o p m e n to f l i n u xa p p l i c a t i o n s b l u e t o o t hi sas h o r t d i t a n c e w i r e l e s sc o m m u n i c a t i o nt e c h n o l o g y , w h i c hi s d e v e l o p i n g r a p i d l y a f t e rt h er e s e a r c ho ft h eb a s i sf o rl i n u xk e r n e l ab l u e t o o t hw i r e l e s sl a n i sd e s i g n e d s u c c e s s f u l l yb a s e do na r m l i n u xp l a t f o r m a n di t sp e r f o r m a n c ep r o v e st h a ti ti sr e a s o n a b l ea n d f e a s i b l ef o rl i n u xt ob eu s e di ne m b e d d e ds y s t e m s k e y w o r d s :e m b e d d e d l i n u xb o o t l o a d e rm m up r o c e s sm a n a g e m e n td e v i c e d r i v e r sb l u e t o o t h l i 曲阜师范大学博士硕士学位论文原创性说明 ( 在口划“4 ) 本人郑重声明:此处所提交的博士口硕士圈论文嵌入式l i n u x 内 核研究,是本人在导师指导下,在曲阜师范大学攻读博士口硕士囝学位 期间独立进行研究工作所取得的成果。论文中除注明部分外不包含他人已经 发表或撰写的研究成果。对本文的研究工作做出重要贡献的个人和集体,均 已在文中己明确的方式注明。本声明的法律结果将完全由本人承担。 作者签名:孑j ,荐莠 日期:歹护。9 ,石二 曲阜师范大学博士硕士学位论文使用授权书 ( 在口划“ ) 嵌入式l i n u x 内核研究系本人在曲阜师范大学攻读博士口硕士留 学位期间,在导师指导下完成的博士口硕士囱学位论文。本论文的研究成 果归曲阜师范大学所有,本论文的研究内容不得以其他单位的名义发表。本 人完全了解曲阜师范大学关于保存、使用学位论文的规定,同意学校保留并 向有关部门送交论文的复印件和电子版本,允许论文被查阅和借阅。本人授 权曲阜师范大学,可以采用影印或其他复制手段保存论文,可以公开发表论 鬻? 群襄穷 作者签名:水3 。侈易 导师签名:务i 苁毛 日期:7 们彦。 日期:2 ,一矿易卜 绪论 1 1 课题的背景和意义 近年来,“嵌入式l i n u x ”这个词变得越来越流行,可是当b u i l d i n ge m b e d d e dl i n u x s y s t e m s ) ) 的作者在1 9 9 7 年第一次建议把l i n u x 操作系统用于嵌入式系统的时候,却遭到 了不同程度的质疑。之所以遭到质疑是因为,按照传统的观点,嵌入式系统的应用领域决 定了作为通用操作系统的l i n u x 不适合或者根本不能满足嵌入式系统的需要,而l i n u x 在 嵌入式领域的应用推广如此之快也表明,随着计算机应用领域和功能的扩展,嵌入式计算 机系统和通用计算机系统之间的差别越来越小,这从根本上要求有一种功能强大、稳定、 安全性能高的操作系统用到嵌入式系统当中,l i n u x 正好迎合了这种发展趋势,自然的就 被人们越来越多的用到了工程领域中,实际上也产生了很好的效果。目前,许多大公司如 摩托罗拉,三星电子等都在积极的对l i n u x 进行一些改造来满足自己产品的需求。 嵌入式l i n u x 是指应用于嵌入式系统的l i n u x ,与通用系统的差别虽然存在但已经越 来越模糊,其区分的依据主要是看其运行的处理器所应用的领域,而不是看其是否具备某 些通用系统所不具备的特点。其实,嵌入式处理器也是个相对的概念,因为将通用处理器, 如x 8 6 系列处理器用于工业控制来构成嵌入式系统并非少见。 到目前为止,对于嵌入式系统严格而统一的定义并没有出现。广义的讲,一个嵌入式 系统就是一个具有特定功能或用途的计算机软硬件的集合体。同时,嵌入式也代表一种软 硬件互相融合的计算机技术。现在人们普遍接受的一个定义是,以应用为目的、以计算机 技术为基础、软硬件均可裁剪,适用于对功能、可靠性、成本、体积、功耗等严格要求的 计算机系统。嵌入式技术发展的最高形式是片上系统s o c ( s y s t e mo nc r o p ) 。 现在,各种针对嵌入式l i n u x 的书籍和资料已经非常丰富,互连网上针对此领域的讨 论和技术文章也非常繁多,基本能满足实际应用的需求,但大多是针对具体的问题从应用 层面上进行的探讨。在这种情况下,从更深的层次上对l i n u x 在嵌入式处理器上的实现机 理进行研究显得十分必要,对于深刻揭示应用程序的运行规律和实际的开发工作有重要意 义。本文的主题在于,根据具体的软硬件环境,在概括嵌入式系统和l i n u x 的特点的基础 上,从内核层次上对l i n u x 操作系统的实现机理进行研究,并提出改造内核的一些有效措 施,同时设计实现了一款基于a r m l i n u x 平台的蓝牙局域网接入设备。 本章在阐述普通嵌入式系统软硬件基础的同时,简单介绍完成本研究所用到的具体软 硬件资源。因为一种操作系统的实现依赖于具体的处理器及其相关资源,每一种硬件体系 结构都有其自身的特点,l i n u x 用于嵌入式处理器时,在保留其基本功能的基础上一般需 要经过不同程度的改造,包括移植、裁剪和配置等。 1 2 嵌入式系统的硬件 嵌入式系统实际上是嵌入式计算机系统的简称,这就决定了其硬件的核心部件就是各 种各样的c p u ,加上与外围器件协同工作就构成了嵌入式系统的基本构架。根据前面的定 义,我们可以根据构成嵌入式系统的核心部件来将其分为以下几类: a5 1 单片机或其他微处理器构成的计算机系统 ba r m 系统 cd s p 系统 ds o c 系统 e 其他专用处理器芯片构成的系统 以上只是根据处理器的不同进行的简单分类,事实上,一些大型的嵌入式设备上可能 存在着不止一种处理器在协调工作,甚至在一个处理器芯片中就集成了a r m 和d s p 的功 能。本研究所基于的处理器就是三星公司生产的基于a r m 9 核的s 3 c 2 4 1 0 处理器,只对其 他嵌入式处理器进行简单介绍。 a r m 几乎成了嵌入式技术的代名词,这是因为在3 2 位的高端处理器领域,a r m 已经成 为了主流,同时也越来越多的向低端微控制器领域扩展,已经被广泛应用于工业控制、无 线通信、网络应用、消费电子、成像和安全产品等领域,这也是本文选择a r m 处理器作 为研究对象的主要原因。 a r m 是a d v a n c e dr i s cm a c h i n e 的简称,它不仅代表着一个公司的名字,同时也代表 着一种技术,其诞生的过程以及a r m 公司的成功模式给人们带来了深刻的启迪。a r m 公 司并不生产相关的处理器芯片,只是向其他半导体公司出售其一整套的设计,包括电路图、 布线图、分层掩膜图等,通过得到a r m 公司的授权,一些半导体公司就可以生产基于a r m 核的处理器芯片,同时也可以集成一些外围控制器,形成自己的面向市场应用的芯片,甚 至可以设计出针对特定应用领域的专用处理器芯片,如i n t e l 生产的i x p 系列网络处理器。 本文不是研究a r m 体系结构的专著,也不是某种芯片的使用手册,况且本文的主题是研 究嵌入式l i n u x 内核的实现机理,所以下面只是把a r m 体系结构里一些较特殊( 相对通 用处理器和其他体系结构的处理器) 的地方进行一些探讨。 可以说,a r m 体系结构的特点里始终蕴涵着辨证的哲学,其设计人员往往是吸取一 种体系结构的有益成分,而把其缺点进行一些改进,从而形成一种较为独特的体系结构。 首先,a r m ( 含m m u 的版本) 是一种“半哈佛结构”。历史上,“冯诺一曼”结构的计 算机是做出过突出贡献的,其基本思想就是把程序也看作数据,一种特殊的数据,而和数 据存储在同一物理存储器中,但是这并不意味着数据总线和地址总线是共用的。在“冯诺 一曼”体系结构中,计算机是由指令流驱动的,而数据流则处于被动的地位。这种结构看起 来合理,但对处理器的性能有严重影响。现在对此结构进行改进的一些探索已经取得了许 多重要成果,主要有流水线技术和并行计算机。在对处理速度要求很高的处理器中,如d s p 处理器,大都采用了另一种体系结构,即哈佛结构。这种体系结构在物理上有两个存储器 分别存放数据和程序,地址和数据线也是分开的,这在有些应用领域,例如有频繁i o 操 作的应用中是有益的。之所以说a r m 处理器是一种“半哈佛结构”是因为,a r m 处理器并 2 不是真正的有两个物理内存,而是指其指令和数据t l b ( t r a n s l a t i o nl o o k a s i d eb u f f e r ) , 即地址转换搜寻缓存,以及数据和指令c a c h e 是分开的。关于t l b 的工作原理,在后面阐 述l i n u x 的内存管理时会有详细的论述。当然。没有m m u 的a r m 核,如a r m 7 t d m i 也是典型的冯诺一曼”体系结构。 其次,a r m 处理器是r i s c ( 精简指令集计算机) 结构的,但仍保留了c i s c ( 复杂指令集 计算机) 的一些成分。r i s c 的设计思想是,这种计算机的指令结构不追求全面和复杂,而 只是实现那些经常被执行的指令。r i s c 的研究最初在i b m 开始,后来加州大学伯克利分 校和斯坦福大学也都进行了独立的研究,各自产生了自己的r i s c 体系结构,如p o w e r p c 、 m i p s 等。下面的列表对r i s c 和c i s c 进行了简单对比。 c i s ci u s c 指令条数 多 只选取最常见的指令 指令复杂度 古 低 同 指令长度 变化 短、固定 指令执行周期随指令变化大大多在一个机器周期内完成 指令格式与寻址方式复杂、多简单、少 访问主存指令多很少 通用寄存器数量一般大量 译码方式微程序控制硬件 对编译系统要求低局 图1 由r i s c 的一些固有属性决定了,在a r m 处理器中大量的使用寄存器,并且大都使 用缓存技术,因为对寄存器和缓存的访问速度比内存要快的多,这种减少访问内存次数的 做法提高了s c 计算机的效率。可以看到,a r m 处理器中实际的寄存器数是4 0 个,比 典型的r i s c 要少,比一些c i s c 则要多。 a r m 的指令系统除了少数的部分指令大都是整齐的3 2 位,执行时间也是可以预见的。 复杂指令集系统的计算机,其指令大都是长度和执行时间不一的,x 8 6 的有些汇编指令实 际上是由很多的基本操作完成的,其执行也会占用很多个机器周期,甚至比高级语言的一 些指令执行起来还要复杂。 再次,和通用处理器相比,含有a r m 核的芯片大都集成了丰富的外围设备控制器, 通常被称为微控制器,这样就方便了产品的设计和实现,整体上可以降低系统的成本和故 障率。而通用处理器一般只包含c p u 本身,像x 8 6 ,奔腾等系列处理器,一般称为微处理 器。a r m 处理器还有一个特点就是没有专门的i o 指令,其i o 口地址都映射到内存区域 内,通过写内存就可实现对i o 口的操作,像x 8 6 处理器是有专门的i o 指令的,如i n 、 o u t 等,一般是特权指令。 另外,嵌入式系统一般要求体积较小,没有和通用处理器那样的大容量存储设备,其 存储系统大都由f l a s h 存储器和不同容量的r a m 组成。f l a s h 是一种特殊的存储设备,掉 电后信息不丢失,其写操作必须通过向f l a s h 控制器发送一系列指令来实现,进行写操作 的基本单位是块( b l o c k ) 或页( p a g e ) ,而f l a s h 存储器的读操作和普通r a m 没有什么区别。 当系统启动后,计算机会在某固定地址开始执行指令,首先把一些需要在r a m 中运行和 一些其他信息( 数据和指令) 拷贝到r a m 中,然后跳转到主程序入口处开始运行。其具体情 景会因不同的操作系统和启动代码的不同而有差别,后面将结合具体处理器专门研究 l i n u x 下系统启动的详细过程。 1 3 嵌入式系统的软件 嵌入式系统的设计工作主要集中在软件上,因为硬件一般有相对固定的设计电路, 旦完成,系统的价值和差别就主要体现在其软件上,在一个开发团队中,嵌入式软件工程 师的数量也一般要多于硬件工程师的数量。 嵌入式系统的软件是指运行在嵌入式处理器上的处于不同层次和具有不同功能的软 件集合。从上到下一般可分为,应用层、操作系统层和设备驱动层,设备驱动层之下是嵌 入式系统的硬件接1 3 资源。其中,起桥梁作用的就是设备驱动程序,没有设备驱动程序硬 件设备就不能发挥其作用,一个良好的设备驱动程序应该能够合理的利用硬件的丰富功 能,并具有一定的健壮性,在出现一些错误的操作时不至于使系统瘫痪。因此,为一个新 设备编写驱动程序成为一项很有挑战性的工作。在l i n u x 中,设备驱动程序是操作系统内 核和机器硬件之间的接口,本质上是一些特殊的、常驻内存的低级硬件处理程序的共享库。 后面将专门研究l i n u x 的设备驱动程序理论和在a r m 体系结构中的具体实现。 对于嵌入式操作系统,应该首先明确,各种不同的嵌入式操作系统虽都有自身的特点。 但随着计算机技术的迅猛发展,通用计算机的相关技术在嵌入式系统中有了越来越广泛的 应用和体现,一些嵌入式系统几乎成了小型的p c ,因此很难说哪种东西是嵌入式系统所独 有的,它们之间的差别正变得越来越小。当然,在嵌入式微控制器刚开始发展的时代,嵌 入式系统的应用领域也几乎被限制到了如工业控制、军事、航空航天等一些特殊的系统中, 这就使得人们一提到微控制器就会自然的把一些特点归入嵌入式系统的范畴,如实时性、 高可靠性、低功耗、价格、物理尺寸等,似乎不具备这些特点就不是嵌入式系统,事实上, 现在的有些嵌入式系统许多已经不受这些条件的限制。例如,很多手持计算设备、移动设 备并不具有很强的实时性,一些高性能的大型嵌入式设备价格昂贵,也没有物理尺寸上的 限制,从处理器性能上来看,现在有些嵌入式处理器及其存储器也大大超越了之前通用处 理器的水平。所以,要区分嵌入式系统和通用计算机系统关键还是看其具体的用途,对于 嵌入式操作系统的区分也应遵循这种原则。例如,对于l i n u x 操作系统而言,把它用在p c 机上就是通用计算机操作系统,用到a r m 处理器上就变成了嵌入式操作系统。 对于不同的嵌入式操作系统,其内核结构有很大的差异,也几乎看不到哪些特征归嵌 入式操作系统所独有。我们只能以某种具体的、并成功应用于嵌入式系统的操作系统为例 来研究其具体实现。根据内核的规模不同,可以把嵌入式操作系统大致分为微内核和宏内 核两种。微内核的操作系统,只是把作为操作必须的部分放在内核中。例如,进程管理及 4 通信、中断处理、存储管理、文件系统等( 有的小型操作系统内核没有对文件系统的支持) , 例如j e a nj l a b r o s s e 写的实时内核u c o s ,就只包含操作系统最基本的成分,可以说u c o s 是最小的微内核的操作系统。其实微内核和宏内核也是个相对的概念,基本上也只是从量 的角度来区分。其实并没有绝对的标准说那些成分必须放在内核里或者内核外,综观具体 操作系统的实现,大都有各自的特点。说u c o s 是典型的微内核,是因为其中只包含了进程 管理及其通信、中断管理以及简单的存储管理( 并没有页面映射机制) 。而对设备的操作也 是结合与其配套的软件包,或者由用户直接实现设备驱动程序。并且,其进程管理和中断 管理的能力也非常有限。而象l i n u x 这样的宏内核操作系统,不仅进程管理、中断处理、 文件管理以及安全性方面的功能比较强,在内核代码中也支持了对许多设备的驱动。 一般来说,微内核比较短小的特点使其变得容易理解和维护,并且c p u 在内核运行的 时间很短,从这个角度来看,微内核几乎天生就是可剥夺的操作系统。另外,微内核的设 备驱动、中断管理等都可以由用户根据自己的需要独立开发,其调试和模拟都相对简单, 扩充也很灵活,对于商业的操作系统,很多模块也可作为可选项来出售。所以,微内核比 较适合嵌入式系统,很多嵌入式系统大都采用了微内核的操作系统。 当然,微内核也有其自身的一些缺点。比如安全性,如果把文件系统移到内核外面, 对于攻击的防御能力就会降低。不过,很多嵌入式系统根本就没有文件系统,即使有了文 件系统,如果不用来上网,一般安全性也不存在什么问题。但是,现在的一些嵌入式设备 越来越接近小型的p c ,其连网能力( 有线或无线) 也很强大,因此其安全问题也必须加以考 虑。本文研究的软件环境就是l i n u x 2 6 2 0 ,对于宏内核的一些特点在分析l i n u x 时会具体 讨论。 1 4lir h x 操作系统适合于嵌入式系统的特点 l i n u x 在其诞生之初是针对i 3 8 6 体系结构的计算机而写的,并且也采用了所谓的宏内 核( m a c r o k e r n e l ) 结构,是一种非实时性的通用计算机操作系统,再加上其开发难度比较大, 周期长,一直以来很多人都认为l i n u x 根本不适合用于嵌入式系统。然而,一个新生事物 的发展速度和趋势往往是超出人们的预见范围的,在短短的十几年内,尤其是最近几年, l i n u x 被广泛的用于多种嵌入式系统中,甚至被一些商业化的大公司所采用,已经取得了 显著的经济效益,这就使得人们不得不研究,l i n u x 为什么在嵌入式领域能够取得如此巨 大的成功。k a r i my a g h m o u r 写了一本书叫b u i l d i n ge m b e d d e dl i n u xs y s t e m s ,展示了在一个 嵌入式l i n u x 系统中所采用的技术及其上运行的软件,使我们感觉到,现在的有些嵌入式 系统简直就是一个可与p c 机相媲美的掌上电脑,无论从其操作系统的功能,应用软件的 丰富程度还是系统的安全性方面都越来越接近,并且其源代码是公开、免费的。可见,l i n u x 用于嵌入式系统几乎是一种必然,那么l i n u x 用于嵌入式系统究竟有哪些独特的优势呢? 3 2l i n u x 的优点 第一,l i n u x 是源代码公开且免费的,这对于嵌入式系统尤其重要。如果采用商用的 操作系统用户不仅要付出一大笔的版权费,而且在技术上也会受制于人,费用对于一些资 5 金不足的公司是一个很大的障碍,而代码不公开对于一些安全级别要求很高的领域则存在 不少的隐患。而l i n u x 则不存在上述问题,任何人都可以下载、复制、修改其源代码,并 且可以嵌入到自己的产品中进行出售,而不需要向其他人付费,只要遵循相关条款即可。 着对于一些公司具有很大的吸引力,现在一些计算机巨头都纷纷采用l i n u x 作为其产品开 发之用。这种开源模式还有其独特的好处,那就是在开源社区里聚集了一大批优秀的公司 和人才,能够形成解决问题的最佳方案,这是单个的公司无法与其相比的。著名嵌入式 l i n u x 专家m a t tm a c k a l l 就曾预言,在新的移动终端操作系统争夺战中l i n u x 的这种开源模 式将顽胜微软。l i n u x 在手机操作系统中的市场份额也证明了这种趋势( 据l i p s 联盟总经理 b i l lw e i n b e r g 之说,现在l i n u x 手机销量远在s y m b i a n 和w i n d o w sm o b i l e 之上) 。 第二,可移植性和可扩展性强。现在,l i n u x 几乎能够运行于绝大多数的流行处理器 之上,象x 8 6 、a r m 、m i p s 、p o w e r p c 等,并且能够非常容易的进行移植,从桌面l i n u x 到嵌入式l i n u x 只需要很简单的过程,像火狐的搜索引擎,无论是桌面上还是手机上或者 平板电脑上,差别都不明显,而有些操作系统在不同系统间的移植则相当复杂。l i n u x 特 别出色的地方就是做到很好的扩展性、跨平台性而没有牺牲其性能和很好的设计,要增加 一个新的c p u 或者新的应用都非常简单,而不会影响到其核心的稳定性。l i n u x 的基础是 非常稳固扎实的。 第三,高度可裁剪性和模块化。现在有非常多的l i n u x 版本,都是在l i n u x 内核的基 础上进行了某些适当的删剪,最重要的是,l i n u x 的驱动程序是作为模块可以被动态的安 装和卸载的,这就使得l i n u x 的体积可大可小,对于用在嵌入式领域的l i n u x 经编译生成 的可执行映象可保持在几十k 甚至十几k 的大小。在l i n u x 的内核中有非常丰富的针对具 体设备的驱动程序,稍加修改即可运行在目标处理器上。 第四,网络支持。可以说,没有网络就没有现在的l i n u x ,更没有l i n u x 现在如此强 大的网络功能,有人甚至说l i n u x 是一种网络操作系统。l i n u x 支持众多的网络协议栈, 使得在实现一个嵌入式系统的网络功能变得简单而可靠。 6 二嵌入式系统的引导与启动 2 1 嵌入式lin u x 的引导 一个嵌入式l i n u x 系统可以从软件的角度把其分为:引导加载程序、l i n u x 内核、文 件系统、应用程序。可见,引导加载程序( b o o t l o a d e r ) 在计算机系统中占有重要的地位,特 别是在一些运行有大型操作系统的嵌入式系统中,一般都有b o o t l o a d e r 的存在。b o o t l o a d c r 本质上就是- d , 段底层的程序,主要完成硬件的初始化,为操作系统的运行准备好一个合 适的环境。在p c 系统中,开机后操作系统运行之前执行的- d , 段程序就是b i o s 和位于 硬盘m b r 中的o sb o o t l o a d e r ,b i o s 在完成硬件的初始化之后,就把o sb o o t l o a d e r 复制 到r a m 中并跳转到其入口运行,然后o sb o o f l o a d e r 就把操作系统的映象从硬盘复制到内 存中并启动操作系统的运行。b o o t l o a d e r 是严重依赖硬件而写的代码,因此对于嵌入式系 统就不可能有一个像通用计算机中那样的引导装入程序。我们在此所基于的硬件平台是武 汉创维特技术有限公司的j x a r m 9 2 4 1 0 教学实验系统,而研究的软件则是功能强大的 b o o t l o a d e ru b o o t1 1 4 。 a r m 处理器在系统上电之后默认的程序执行地址是0 x 0 ( 有的a r m 芯片通过一条高向 量引线,使系统设计人员可以选用o x f f i f 0 0 0 0 作为入口) ,而在此系统上o x o 地址处的存储 器是3 2 mn o rf l a s h 存储器,其地址范围是o x 0 0 0 0 0 0 0 0 0 x 0 1 m 箭,主要存储b o o t l o a d e r 、 l i n u x 内核映象、i i s 声音测试文件等,另外还8 m 的n a n df l a s h 存储器,主要存放e r a m f s 文件系统。6 4 m 的s d r a m 存储器地址空间为:o x 3 0 0 0 0 0 0 0 - 0 x 3 3 f t t t f f 。 我们注意到u b o o t b o a r d s m d k 2 4 1 0 u - b o o t i d s ( 编译器所需要的连接文件) a e 有如下内 容: o u t p u a r c h ( a r m ) e n t r y ( _ s t a r t ) s e c t i o n s = o x 0 0 0 0 0 0 0 0 ; = a l i g n ( 4 ) ; t e x t e p u a r m 9 2 0 t s t a r t o ( t e x t ) ( t e x o = a u g n ( 4 ) ; b s ss t a r t = ; 7 b s s : 幸( b s s ) 一e n d = ; ) 然而,实际上通过查看m a k e f i l e 文件和连接u b o o t 后产生的m a p 文件可以知道,产生 的地址都是从t x e t b a s e 开始计算的,因此在u - b o o t 的s t a g e l 阶段代码的执行用的都是 相对地址,实际上在编译连接u b o o t 时产生的可执行映象是和位置无关的代码,指令地址 在编译时已经确定了,如果不把程序下载到0 x 0 处,只要在o x o 处放一条跳转指令仍可以 正常执行u - b o o t 。下面是s t a r t 的内容: g l o b l _ s t a r t s t a r t :b r e s e t l d r p c ,_ u n d e f i n e d _ i n s t r u c t i o n l d r p c s o f t w a r e _ i n t e r r u p t l d r p c ,_ p r e f e t c h _ a b o r t l d rp c ,_ d a t a a b o r t l d rp c ,n o t u s e d l d rp c ,j r q l d r p c ,一f i q 可见,从地址0 x 0 开始,第一条指令之后就是中断向量表,不难算出,普通中断的地 址就是0 x 1 8 ,此地址存放的是一条给p c 赋值的指令,会直接跳转到相应入口执行,而实 际运行中a r m 的p c 是指向当前指令的下两条指令。 r e s e t 的代码也在s t a r t s 里,这是c p u 一开始就执行的代码,对于u - b o o t ,其完成的主 要功能有:把c p u 设置成s v c 3 2 模式,c p s r 中的i 、f 位设置为l ,禁止普通和快速中 断,t 位设置为0 ,即把c p u 设为a r m 模式;关闭看门狗,屏蔽中断,并且设置c p u 的 工作频率等。在r e s e t 的最后调用了函数c p u i n i t _ c f i t 。其代码同样是在s t a r t s 里。 c p u _ i n i t c r i t : m o v r 0 ,稃o m c r p l5 ,0 ,r o ,c 7 ,c 7 ,0 m c r p l 5 ,0 ,r 0 ,c 8 ,c 7 ,0 m r c p l 5 ,0 ,r 0 ,c l ,c 0 ,0 b i c r 0 ,r 0 ,# 0 x 0 0 0 0 2 3 0 0 b i cr 0 ,r 0 ,# 0 x 0 0 0 0 0 0 8 7 o r r r 0 ,r 0 ,# 0 x 0 0 0 0 0 0 0 2 o r r r 0 ,r 0 ,# 0 x 0 0 0 0 10 0 0 m c r p l 5 ,0 ,r 0 ,e l ,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论