(计算机应用技术专业论文)嵌入式实时操作系统zertlinux的设计及实现.pdf_第1页
(计算机应用技术专业论文)嵌入式实时操作系统zertlinux的设计及实现.pdf_第2页
(计算机应用技术专业论文)嵌入式实时操作系统zertlinux的设计及实现.pdf_第3页
(计算机应用技术专业论文)嵌入式实时操作系统zertlinux的设计及实现.pdf_第4页
(计算机应用技术专业论文)嵌入式实时操作系统zertlinux的设计及实现.pdf_第5页
已阅读5页,还剩101页未读 继续免费阅读

(计算机应用技术专业论文)嵌入式实时操作系统zertlinux的设计及实现.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文第1 页 摘要 嵌入式实时操作系统是嵌入式实时系统中的关键部分,它的稳定性和效 率直接影响到整个系统的性能,在现代操作系统的理论指导下,设计开发具 有自主知识产权的嵌入式实时操作系统对我国嵌入式应用产业和国家安全 具有重要的意义。 论文就是基于上述考虑而撰写的,本文在深入分析了l i n u x2 0 3 0 版内 核源代码的基础上,结合实时操作系统的原理,参考微内核结构的思想,成 功设计开发了一种可用于嵌入式应用的实时操作系统z e r t l i n u x 。 论文首先对嵌入式系统和实时系统作了必要的介绍,并分析了l i n u x 用 于嵌入式系统的优势及存在的问题。 为了实现z e r t l i n u x ,论文主要做了以下几方面的工作: ( 1 ) 用汇编语言实现了z e r t l i n u x 的引导装入程序z h hl o a d ,这是一个 基于引导扇区的具有密码保护的可从实模式操作系统d o s 中引导 z e r t l i n u x 的程序,并给出了它在软盘上的安装方法; ( 2 ) 采用双内核的思想解决了z e r t l i n u x 的实时调度问题,实现了真正 的硬实时,它是通过在标准的经过改进的l i n u x 内核中形成一个实时内核, 完成中断处理、实时任务以及两个内核间的通信控制来实现的; ( 3 ) 为了使z e r t l i n u x 更加适合嵌入式应用,重写了l i n u x 内存管理的 部分源代码; ( 4 ) 提出了嵌入式文件系统的设计方案,并对l i n u x 的文件系统进行了 改造以使其更加适合嵌入式应用; ( 5 ) 设计了操作系统内核的调试方法,并利用开源工具g d b 及k g d b ,采 用交叉调试的方法调试了z e r t l i n u x 内核,成功开发了z e r t l i n u x 内核: 针对目前嵌入式系统开发中应用系统和目标硬件同步开发的情况,根据当前 软件仿真开发的思想设计了z e r t l i n u x 的仿真开发工具集e 0 2 s d k 的通用 模型; ( 6 ) 为了使z e r t l i n u x 具有更多的功能和更加容易移植。提出了利用 l i n u x 的l k m 机制和安装附加包的方式在启动时动态加载实时应用程序的 方法;为了能够方便地编写z e r t l i n u x 下的实时应用程序,利用l i n u x 的 l k m 机制,提供了z e r t l j n 畎的编程及控制a p i ; 通过以上各步的工作就可以形成一个完整的嵌入式实时操作系统 l 谣南交通大学硕士研究生学位论文 第1 i 页 z e r t l i n u x 。 在这篇论文的最后,作者还论述了如何使用z e r t l i n u x 开发一个中小 企业路由器或者实验用的路由器。 关键词:嵌入式l i n u x 实时调度;内存管理;虚拟文件系统;路由器 西南交通大学硕士研究生学位论文第1 i i 页 a b s t r a c t e m b e d d e dr e a l t i m e o p e r a t i n gs y s t e m i st h e k e yp a r t o fe m b e d d e d r e a l t i m es y s t e m i t ss t a b i l i t ya n de f f i c i e n c ya f f e c td i r e c t l yt h ep e r f o r m a n c eo f t h ew h o l e s y s t e m w h a t m o r e ,i t i s e x t r e m e l yi m p o r t a n t f o re m b e d d e d a p p l i c a t i o ni n d u s t r yi no u rc o u n t r ya n d f o rt h es a f e t yo fo u r c o u n t r y ,t or e s e a r c h a n d d e v e l o po u r o w l le m b e d d e dr e a l - t i m e o p e r a t i n gs y s t e mw i t ht h et h e o r yo f m o d e r n o p e r a t i n gs y s t e m r f o rt h ei m p o r t a n c el i s t e da b o v e ,if i x e dm yt h e s i so i ls u c hs u b j e c t i nm y t h e s i s ,i h a v e s u c c e s s f u l l yd e s i g n e dz e r t l i n u x ,o n ek i n do fr e a l ,t i m e o p e r a t i n gs y s t e mw h i c hc a nb eu s e di ne m b e d d e ds y s t e m ,m a i n l yb yd e e p l y a n a l y z i n gl i n u x2 0 3 0 k e r n e la n di nc o m b i n e dw i t ht h et h e o r yo fr e a l t i m e o p e r a t i n gs y s t e m t o g e tz e r t l i n u x ,ih a v ed o n es u c ht h i n g sa sf o l l o w s ( 1 ) w i t ha s s e m b l el a n g u a g eih a v ed e s i g n e dz h h _ l o a dw h i c hi st h ep r o g r a m o fz e r t l i n u xt oc o n d u c tl o a d i n g t h i sp r o g r a mi sd e v e l o p e do nt h eb a s i so f b o o ts e c t o ra n dh a si t s c i p h e r , a s w e l la s b o o t i n g z e r t l i n u xf r o m d o s m e a n w h i l e 。ia l s og a v et h ew a y o f s e t t i n gu pz h h _ l o a di nf l o p p y ( 2 ) w i t ht h ei d e ao fd o u b l e - k e r n e l ,s e t t l i n gu p o nt h ep r o b l e mo fr e a l t i m e s c h e d u l ei nz e r t l i n u xa n dr e a l i z e dr e a lh a r dr e a l t i m e t h i sh a sb e e nd o n eb y t h ef o l l o w i n gs t e p s :f o r m i n gar e a l - t i m ek e r n e li nt r a d i t i o n a l i m p r o v e dl i n u x k e r n e l ,o b t a i n i n gt h eh a n d l eo fi n t e r r u p t i o n ,f u l f i l l i n gt h er e a l t i m et a s ka n d s u c c e s s f u l l yc o n t r o l l i n g t h e c o m m u n i c a t i n g b e t w e e nt w ok e r n e l ( 3 ) f o rm a k i n g z e r t l i n u xm o r et o a d a p t t oe m b e d d e d a p p l i c a t i o n ,i r e p r o g r a mp a r t so f t h el i n u xm e m o r y m a n a g e m e n t s o u r c ec o d e ( 4 ) p u t t i n gf o r w a r dt h ed e s i g n i n gp l a no fe m b e d d e df i l es y s t e m ,ir e f o r m t h el i n u xf i l es y s t e mt om a k ei ta d a p t i v et oe m b e d d e d a p p l i c a t i o n ( 5 ) d e s i g n i n gt h em e t h o d t od e b u g o p e r a t i n gs y s t e mk e r n e la n dd e v e l o p i n g s u c c e s s f u l l yz e r t l i n u x k e r n e lb ym e a n so f c r o s s d e b u gw i t ho d b a n dk g d b d e s i g n i n g ac o m m o nm o d e lo f b u i l d i n gu p z e r t l i n u x ss i m u l a t i o n d e v e l o p m e n tk i te 0 2 s d k ,a c c o r d i n g t ot h et h e o r yo f l a t e s ts o f t w a r es i m u l a t i o n d e v e l o p m e n t 西南交通大学硕士研究生学位论文第1 v 页 ( 6 ) f o rt h er e a s o no fa d d i n gm o r ef u n c t i o nt oz e r t l i n u xa n dm a k i n gi t e a s i e rt o t r a n s p l a n t ,i p u tf o r w a r dt h em e t h o dt ol o a d d y n a m i c a l l yr e a l t i m e a p p l i c a t i o np r o g r a ma f t e rb o o t i n gb yu s i n gl i n u x l k ma n di n s t a l l i n ge x t r a p a c k e t f o rt h ea i mo fp r o g r a m m i n gr e a l - t i m ea p p l i c a t i o np r o g r a mb a s i n go n z e r t l i n u xm o r e c o n v e n i e n t l y , ig i v et h ep r o g r a m a p ib yl i n u x sl k m t h ee m b e d d e dr e a l - t i m e o p e r a t i n gs y s t e m ,z e r t l i n u x ,i sd e v e l o p e d w i t ha l lt h o s e s t e p sa b o v e 。 i nt h ee n do ft h et h e s i s ,id i s c u s s e dh o wt o d e v e l o par o u t e ru s e di n l - c o m p a n y o rl a b o r a t o r yw i t hz e r t l i n u x k e yw o r d s :e m b e d d e dl i n u x ;r e a l t i m e s c h e d u l e ;m e m o r ym a n a g e m e n t ; v f s ;r o u t e r 西南交通大学硕士研究生学位论文第j _ 耍 1 1 引言 第1 章绪论 嵌入式操作系统是操作系统领域的一个重要分支。由于l i f l u x 的独特优 势,使越来越多的企业和科研机构把目光转向嵌入式l i n u x 的开发和研究 上。 嵌入式系统是以应用为中心,以计算机为基础,软硬件可裁剪,适用于 系统对功能、可靠性、成本、功耗严格要求的专用计算机系统。高实时性是 嵌入式系统的基本要求,其次,还要求代码尽可能小,运行速度尽可能快, 可靠性尽可能高。嵌入式l i n u x ( e m b e d d e dl i n u x ) 是指对l i i u x 经过小型化 裁剪后,能够固化在容量只有几十万字节的存储器芯片或单片机中,应用于 特定嵌入式场合的专用l i n u x 操作系统。嵌入式l i n u x 的开发和研究是目前 操作系统领域的一个热点。 随着微处理器的产生,价格低廉、结构小巧的c p u 和外设为嵌入式系统 提供了稳定可靠的硬件架构。那么限制嵌入式系统发展的瓶颈就突出表现在 了软件方面。尽管从八十年代末开始,陆续出现了一些嵌入式操作系统,比 较著名的有v x w o r k s 、p s o s 、n e c u l e u s 和w i n d o w sc e 。但这些专用操作系 统都是商业化产品,其高昂的价格使许多低端产品的小公司望而却步:而且, 源代码封闭性也大大限制了开发者的积极性。另外,结合国内实情,当前国 家对自主操作系统的大力支持。也为源码开放的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 对厂商不偏不倚而且成本极 低,能够很快成为用于各种设备的操作系统。如今,业界已经达成共识:即 嵌入式1 i n u x 是大势所趋,其巨大的市场潜力与酝酿的无限商机必然会吸引 众多的厂商进入这一领域。 l i n u x 为嵌入式操作系统提供了一个极有吸引力的选择,它是个和u n i x 西南交通大学硕士研究生学位论文 第2 页 j - _ - ,_ ,h _ - h _ _ _ - _ _ _ - _ _ - _ _ 一 相似、以核心为基础的、完全内存保护、多任务多进程的操作系统。支持广 泛的计算机硬件,包括x 8 6 、a l p h a 、s p a r c 、m i p s 、i d 6 8 k 、m o t o r o l a 等现有 的大部分芯片。程序源码全部公开,任何人可以修改并在g n u 通用公共许可 证g p l ( g e n e r a lp u b li cl i c e n s e ) 下发行,这样,开发人员可以对操作系统 进行定制,再也不必担心像m sw i n d o w s 操作系统中“后门”的威胁。同时 由于有g p l 的控制,大家开发的东西大都相互兼容,不会走向分裂之路。 l i n u x 用户遇到问题时可以通过i n t e r n e t 向网上成千上万的l i n u x 开发者 请教,这使最困难的问题也有办法解决。l i n u x 带有u n i x 用户熟悉的完善的 开发工具,几乎所有的u n i x 系统的应用软件都已移植到了l i n u x 上。l i n u x 还提供了强大的网络功能,有多种可选择窗口管理器( 例如xw i n d o w s ) 。 其强大的语言编译器g c c 、g + + 等也可以很容易得到。不但成熟完善、而且 使用方便。 本论文的选题正是基于嵌入式系统研究这个热点领域,运用操作系统理 论和软件工程思想设计了一个小型的嵌入式实时操作系统内核r t l k e m e l , 和原有的经过改进的l i n u x 内核融合成一个嵌入式实时操作系统:z h h e m b e d d e dr e a l t i m el i n u x ,简称z e r t l i n u x ,它是基于2 0 1 3 0 版核心的,并 参照2 4 版核心扩展了其部分功能,而且它有自己的文件系统,以r a m d i s k i m a g e 的形式存在,还有一些应用程序。例如e w e b ,它是一个基于文本方式 的w e b 浏览器。核心可支持n e 2 0 0 0 ,3 c o m3 e 5 x 9 及其兼容网卡,并且可支 持c r a m f s 文件系统,还有强大的z h hl o a d ,这是我编写的基于引导扇区 ( b o o ts e c t o r ) 的引导程序,可从d o s 引导这个嵌入式l i n u x 系统。 进一步开发适合自己应用的组件后可以商用。 z e r t l i n u x 的普通内核为一个扩展了功能的普通l i n u x 内核,路由转发 是其支持的基本功能之一,而且它的网络性能卓著,稳定性好,安全性高, 通过适当配置可配置成个性能优良的实验用的路由器,灵活满足多种需 要。z e r t l i n u x 遵守g p l ,源代码开放,升级方便。传统的路由器都是使用 专用的r t o s ( r e a lt i m eo p e r a t es y s t e m 实时操作系统) 开发的,在开发 t c p i p 、o s p f 协议等时都只能自己去实现,产品上市的周期非常长,对新 协议、新接口的支持以及设备升级的周期也很长,因为专用的r t o s 有关内 容都要自己开发,而对于z e r t l i n u x 来说,这些都可以直接从网上获得源代 码,针对应用系统的要求作必要的改动即可,对新协议、新接口的支持也是 如此。不需要自己从头去开发。 西南交通大学硕士研究生学位论文 第3 页 在表1 一】中,分别对利用v x w o r k s 专用操作系统和嵌入式l i n u x 操作系 统来开发路由器作了详细地比较和分析。 表卜1 开发路由器情况表 使用专用操作系统使用嵌入式l i n u x 操作系统 产品上市时间长达9 个月仅需3 个月 投入开发的人力多达6 人以上只需3 人 每台路由器需要交一份版 产品的附加成本没有任何附加费 权费,成本大大提高 一般,增加功能要向原厂家丰富,可利用自由软件的大量 产品功能的丰富性 购买模块公开代码移植 另外购买网络模块,如o s p f免费获得自由软件代码,只需 动态路由协议库。很昂贵:移植,由于来自桌面l i i i u x 平 网络特性 若自行开发贺g 稳定性较差台,继承性好、稳定性好,开 且开发时间长发时间短 产品升级以及对新厂家反映慢,支持慢,不利用全世界l i n u x 自由软件开 网络协议的支持定能支持新特性发团体的力量,支持迅速 因此,作为本系统的一个直接应用我开发了一个基于z e r t l i n u x 的路由 器,可用于教学与实验,并且可进一步验证z e r t l i n u x 内核的稳定和可靠。 1 2 嵌入式系统概述 1 2 1 实时系统 随着计算机的发展和应用的普及,实时计算机系统( 以下简称实对系统) 已经在工业、交通、能源、科学研究和科学试验、国防等各个领域发挥了极 其重要的作用。 实时系统是对外来事件在限定时间内能做出反应的系统。限定时间的范 围很广,可以从微秒级( 如信号处理) 到分级( 如联机查询系统) 。 在实时系统中主要有三个指标来衡量系统的实时性:响应时间 ( r e s p o n s et i m e ) 、生存时间( s u r v i v a lt i m e ) 和吞吐量( t h r o u g h p u t ) 。 实时系统强调的是实时性和可靠性,这两方面除了与计算机硬件有关 ( 如c p u 的速度,访问存贮器的速度等) 外,还与实时系统的软件密切相关。 西南交通大学硕士研究生学位论文第4 页 硬件是实时的,丽软件往往不一定是实时的。可以通过以下的途径实现实时 的应用系统:使用硬件的功能、微处理器的中断机制、简单的单线程循环程 序以及基于实时操作系统的复杂多线程程序。 这种实时系统的软件是实时应用软件和实时操作系统r t o s ( r e a l t i m eo p e r a t i n gs y s t e m ) 两部分的有机结合,其中r t o s 起着核心作 用,由它来管理和协调各项工作,为应用软件提供良好的运行软件环境及开 发环境。 1 2 2 嵌入式系统的定义及应用 大多数实时系统都是嵌入式应用( e m b e d d e da p p l i c a t i o n s ) 系统,嵌入 式计算机是一种智能部件内装于专用设备系统的高速计算机。它的主要功 能是作为一个大型工程系统中的信息处理部件,来控制专门的硬件设备的。 嵌入式计算机系统的典型应用有: 1 过程控制( p r o c e s sc o n t r 0 1 ) : 2 通讯设备( t e e e o m m u n i e a t i o n ) :如程控交换机、路由器、集线器等; 3 。智能仪器( i n t e l l i g e n ti n s t r u m e n t ) :如示波器、医疗仪器等; 4 消费产品( c o n s u m e rp r o d u c t s ) :如洗衣机、微波炉、电视机等: 5 机器人( r o b o t s ) : 6 计算机外设设备( c o m p u t e rp e r i p h e r a l s ) :打印枧、磁盘驱动器等; 7 军事电子设备和现代武器:如雷达、电子对抗、坦克、战机等。 1 2 3 嵌入式实时系统软件的基本特征 嵌入式实时软件是应用程序和操作系统两种软件的一体化程序,需要根 据应用系统的配置,在系统总设计目标指导下。采用相应配置的操作系统和 应用程序链接装配成统一的运行软件系统。对这种实时软件的主要要求是: 实时性、有处理异步并发事件的能力、快速启动并有出错处理和自动复位功 能。 嵌入式实时软件的开发需要独立的开发平台 由于嵌入式实时应用系统的软件开发受到时问、空间开销的限制,常常 需要在专门的开发平台上进行软件的交叉开发。其交叉开发环境如图卜l 西南交通大学硕士研究生学位论文第5 页 所示。 图卜1 交叉开发环境 开发平台称为宿主机,应用系统称作目标机。宿主机可以是与目标机相 同或不相同的机型。这种不同机型的开发平台又称作交叉式开发系统。显然, 在这种独立的实时软件开发系统上,应配备完整的实时软件开发的工具,如 高级语言、在线调试器和在线仿真器等。 1 2 4 嵌入式实时系统的分类 可按速度:系统响应时间( r e s p o n s et i m e ) 或吞吐量( t h r o u g h p u t ) 、确 定性及软件结构分类。 速度分类 按实时性的强弱( 即根据系统响应时间的长短) 可将嵌入式实时系统大 致分为以下几种:强实时系统、一般实时系统及弱实时系统。 确定性 按确定性来分,可分为硬实时和软实时: ( 1 ) 硬实时,系统对系统响应时间有严格的要求,如果系统响应时间不 能满足,就要引起系统崩溃或致命的错误: ( 2 ) 软实时,系统对系统响应时间有要求,但是如果系统响应时间不能 满足,不会导致系统出现致命的错误或崩溃。 软件结构分类 1 单线程程序( s i n g l e t h r e a d e dp r o g r a m ) ,也称为顺序程序 ( s e q u e n t i a lp r o g r a m ) ,最简单的软件结构是循环轮询,程序依次检查系 统的每一个输入条件,一旦条件成立就进行相应的处理。 2 事件驱动系统( e v e n t - d r i y e ns y s t e m ) 事件驱动系统是能对外部事件直接响应的系统,它包括前后台、实时多 任务、多处理器三个系统,是嵌入式实时系统的主要形式。 西南交通大学硕士研究生学位论文第6 页 ( 1 ) 前后台系统( f o r e g r o u n d b a c k g r o u n d ) 又叫中断驱动系统。 后台是一个循环轮询系统,它一直在运行,前台是由一些中断处理过程 组成的。当有一前台事件( 外部事件) 发生时,引起中断,中断正在运行的后 台程序,进行前台处理,处理完成后又回到后台( 通常又称主程序) 。 ( 2 ) 实时多任务系统( m u l t i t a s k i n g ) 对于一个复杂的嵌入式实时系统来说,当采用中断处理程序加个后 台主程序这种软件结构难以实时地、准确地、可靠地完成时,或存在些互 不相关的过程需要在一个计算机中同时处理时,就需要采用实时多任务系 统。其主要特点是多个顺序执行的程序并行运行。 宏观上看,所有的程序同时运行,每个程序运行在自己独立的c p u 上。 实际上,不同的程序是共享同一个c p u 和其它硬件。因此,需要r t o s 来对 这些共享的设备和数据进行管理。 ( 3 ) 多处理机系统 在单处理机系统中,多个任务在宏观上看是并发的,但在微观上看实际 是顺序执行的;在多处理机系统中,多个任务可以分别在不同的处理机上执 行,宏观上看是并发的,微观上看也是并发的。前者称为伪并发性,后者称 为真并发性。 1 2 5 嵌入式实时操作系统( e r t o s ) 的要求 ( 1 ) 足够的快( 上下文切换和系统调用等) ( 2 ) 可确定的性能( 切换时间和中断延迟时间等) ( 3 ) 体积小 ( 4 ) 多任务处理且任务调度机制是基于优先级的抢占式调度 ( 5 ) 最小的中断延迟 ( 6 ) 内存锁定、连续文件 ( 7 ) 可伸缩、可配置的体系结构 ( 8 ) 可靠、健壮 实时多任务系统的实现必须有实时多任务操作系统的支持,操作系统主 要完成任务切换。任务调度,任务问通信、同步、互斥,实时时钟管理,中 断管理等。 西南交通大学硕士研究生学位论文第7 页 1 2 6嵌入式实时操作系统的发展动向 近十年来,嵌入式实时操作系统得到飞速的发展,从支持8 位微处理器 到1 6 位、3 2 位甚至6 4 位,从支持单品种的微处理器芯片到支持多品种 微处理器芯片,从只有实时内核到除了内核外还提供其他功能模块,如:文 件系统、t c p i p 网络系统及g u i 图形系统等。 目前,嵌入式实时操作系统及其应用开发环境的发展动向是: 1 嵌入式实时操作系统正向实时超微内核( n a n o k e r n e l ) 、开放发展 八十年代后期,国外提出了微内核( m i c r o k e r n e l ) 的思想,即将传统操 作系统中的许多共性的东西抽象出来,构成操作系统的公共基础,即微内核, 真正具体的操作系统功能则由构造在微内核之外的服务实现。这是一种机制 与策略分离的开放式设计思路。 近几年,国外发展了一种基于微内核思想设计的精巧的嵌入式微内核, 即实时超微内核( n a n o k e r n e l ) 。超微内核是一种非常紧凑的基本内核代码层, 为嵌入式应用提供了可抢占,快而确定的实时服务,在它的基础上可以灵活 地构造各种类型的、与现成系统兼容的、可伸缩的嵌入式实时操作系统。因 此能满足应用代码的可重用和可伸缩性( s c a l a b i l i t y ) 的需求。 2 开发环境向开放的、集成化的方向发展 由于嵌入式应用软件的特殊性。往往要求应用程序设计者具有一定的实 时操作系统的专门知识,能合理地划分任务,合理地配置系统以及目标联机 的调试。因此,要设计实现一个高性能的实时应用软件,需要强有力的交叉 开发工具系统的支持。与实时操作系统配合的嵌入式应用的集成开发环境, 应以客户一服务器的系统结构为基础,具有运行系统的无关性、连接的无关 性、开放的软件接口( 与嵌入式实时操作系统、与开发工具、与目标环境的 接口) 、环境的一致性、宿主机上的目标仿真的特点。 3 完整的解决方案 为典型应用提供解决方案,如:p d a 、机顶盒、路由器等。 综上所述,嵌入式实对操作系统及其应用开发环境正向开放、集成发展。 1 3 l i n u x 用于嵌入式操作系统的优势及存在的问题 与其他的嵌入式操作系统相比,l i n u x 具有一些独特的优势。首先, 西南交通大学硕士研究生学位论文第8 页 l i n u x 系统是层次结构且内核完全开放。在内核代码完全开放的前提下,不 同领域和不同层次的用户可以根据自己的应用需要很容易地对内核进行改 造,在低成本的前提下,设计和开发出真正满足自己需要的嵌入式系统。其 次,强大的网络支持功能。l i n u x 诞生于因特网并具有u n i x 的特性,这就 保证了它支持所有标准因特网协议,并且可以利用l i n u x 的网络协议栈将其 开发成为嵌入式的t c p i p 网络协议栈。第三,l i n u x 具备一整套工具链, 容易自行建立嵌入式系统的开发环境和交叉运行环境,使用l i n u x 系统做 z e r t l i n u x 原型的时候,可直接使用内核调试器来做操作系统的内核调试和 查错。第四,l i n u x 具有广泛的硬件支持特性。l in u x 最通常使用的微处理 器是i n t e lx 8 6 芯片家族,但它同样能运行于m o t o r o l a 公司的6 8 k 系列c p u 和i b m 、a p p l e 、m o t o r o l a 公司的p o w e r p cc p u 以及i n t e l 公司的s t r o n g a r m c p u 等处理器系统,这意味着嵌入式l i n u x 将具有更广泛的应用前景。 但就目前的技术面言,嵌入式l i n u x 的研究成果与市场的真正需求还有 一段差距。因此,要开发出真正成熟的嵌入式l i f l u x ,还需要从以下几个方 面进行努力: 1 扩充l i n u x 的实时性能 我们知道,高实时性是嵌入式操作系统的基本要求。由于l i n u x 是一种 通用操作系统,而不是一个真正的实时操作系统,内核不支持事件优先级和 任务抢占等实时特性。所以,在开发嵌入式l i n u x 的过程中,首要问题是扩 展l i i u x 的实时性能。一般来说,对l i n u x 实时性的扩展可以从两方面进行: 向外扩展和向上扩展。向外扩展是从范围上扩展,让实时系统支持的范围更 广,支持的设备更多。目前的开发所面向的设备一般仅艰于较筠单的有实时 要求的串并口数据采集、浮点数据计算等。而像实时网络这样实时系统的 高级应用还需进步的发展。向上扩展是扩充l i n u x 内核,从功能上扩充 l i n u x 的实时处理和控制系统。如嵌入式实时操作系统z e r t 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 的内核模块( l o a d a b l e k e r n e lm o d u l e ,l k m ) 的形式存在的,需要运行实时任务的时候,将这个实 时任务的内核模块插入到内核中去,实时任务和l i n u x 般进程之间的通信 通过共享内存或者f i f o 通道来实现。 亘壹奎堕奎兰堕主堑塞竺兰堕笙窒 兰! 蔓 2 改变l i n u x 内核的体系结构 l i n u x 的内核体系采用的是宏内核( m a c r ok e r n e l ) 或称一体化内核 ( m o n o i i t h i ck e r n e l ) ,在这种体系结构中,内核的所有部分都集中在一起, 而且所有的部件在一起编译连接。这样虽然能使系统的各部分直接沟通,有 效地缩短任务之间的切换时间,提高了系统的响应速度,实时性好并提高了 c p u 的利用率,但在系统比较大的时候体积也比较大,与嵌入式系统容量小、 资源有限的特点不符合。而且内核每一层的变化都会影响整个系统,层间安 全性较低,可移植性较差。而另外一种内核体系结构微内核( m i c r ok e r n e l ) , 在内核中只包括了一些基本的内核功能如创建和删除任务、任务调度、内存 管理和中断处理等部分,而文件系统、网络协议栈等部分都是在用户内存空 间运行。这种结构虽然执行效率不如m o n o l i t h i c 内核,但大大减小了内核 的体积,同时也极大地方便了整个系统的升级、维护和移植,因此更能满足 嵌入式系统的特点需要。为此,为使嵌入式l i n u x 的应用更加广泛,可以考 虑将l i n u x 目前的m o n o l it h i c 内核结构中的部分结构改造成m i c r o k e r n e l 体系结构。通过这种折中办法,可以使得到的l i n u x 既具有很好的实时性, 又能满足嵌入式系统体积小的要求。 3 完善l i n u x 的集成开发环境 提供完整的集成开发环境是每一个嵌入式系统开发人员所期待的。一个 完整的嵌入式系统的集成开发环境一般需要提供的工具是编译连接器、内 核调试跟踪器和集成图形界面开发平台。其中的集成图形界面开发平台包 括编辑器、调试器、软件仿真器和监视器等。在l i n u x 系统中,具有功能强 大的g c c 编译器工具链,使用了基于g n u 的调试器g d b 的远程调试功能,一 般由一台客户机运行调试程序调试宿主机运行的操作系统内核;在使用远程 开发时还可以使用交叉平台的方式,如在w i n d o w s 平台下的调试跟踪器对 l ir l u x 的宿主系统做调试。但是,l i n u x 在基于图形界面的特定系统定制平 台的研究上,与w i n d o w s 操作系统相比还存在差距。因此,要使嵌入式l i n u x 在嵌入式操作系统领域中的优势更加明显,整体集成开发环境还有待提高和 完善。 1 4 实现z e r t l i n u x 的意义 l i n u x 最初是芬兰一个大学生l i n u st o r v a l d s 开发的一个操作系统,之 西南交通大学硕士研究生学位论文 第l0 页 -_-h_一 后他把这个操作系统的源代码公开,然后有成千上万的训练有素的程序员利 用自己的业余时间为l i d u x 系统创建了许多重要的系统组件并把l i n u x 系统 与各种硬件平台进行连接( 在 1 2 可找到各种l i n u x 核心) 。现在按照l i n u x 开发者的说法,l i n u x 已经是一个遵循p o s i x 标准的免费操作系统,具有b s d 和s y s v 的扩展特性。 l if l u x 一个最吸引人的优点在于。它不是商业化的操作系统,它遵循g n u 公共许可证( g p l ) ,源代码全部开放,任何人都可以获得源代码并研究它。 从技术角度说,尽管l i n u x 是个真正的u n i x 内核,但它不是完整的u n i x 操作系统,因为以下几方面的应用程序没有全部包括l i n u x 中:如文件系统 实用程序、窗口系统、图形化桌面、系统管理员命令、文本编辑程序及编译 程序等。然而,因为以上大部分应用程序都可在g n u 许可证下免费获得, 因此,可以把它们安装在任何一l i n u x 支持的系统中。 设计开发z e r t l i n u x 是对系统软件开发工作的一次尝试,它要求我们 修改和裁减l i n u x 内核源代码,这项工作有一定的难度。它的意义有以下几 点: 1 开发适合自己应用的嵌入式l i n u x 系统,可以不受源代码的困扰,既可 以借助网上免费的软件升级补丁程序和内核演迸版本。也可以在现有代码的 基础上进行二次甚至多次开发,且永远不受知识产权的困扰; 2 在z e r t l i n u x 的设计过程中引入了m i c r o k e r n e l 的思想,这是因为 整个系统常常放在e p r o m 中,要受到存储空间的限制,而所需的服务又比 较单一和简单,可将这些服务的提供都放在进程层次上,再通过进程闯通信 提供服务; 3 通过这项设计可以较全面地深刻了解l i n u x 这个先进的操作系统,这 个系统的设计中有很多很好的思想,如模块( 允许动态地在运行时安装设备 驱动程序和自己编写的模块程序) 、v f s ( 虚拟文件系统,可以使我们很方 便地开发适合自己应用的嵌入式文件系统) 等,掌握之后可以应用于应用软 件的开发; 4 微内核体系结构的操作系统对分布式应用的支持可以比传统结构的 操作系统做得更好,可为分布式路由器的开发提供基础; 5 在z e r t l i n u x 的基础上开发适合自己应用的组件,并集成一定的应 用软件可以形成完整的商业发行版本,当然亦可以用于教学实验,来验证新 的网络协议和自己设计的路由选择算法,因为可以很方便地将它们加入内核 西南交通大学硕士研究生学位论文 第ii 页 中。 1 5 本文的主要工作目标和工作内容 本文的工作目标是以l i n u x2 0 3 0 版核心为基础,参考当前流行的嵌入 式实时操作系统,设计开发一个可做嵌入式应用的实时操作系统 z e r t l i n u x ,并在其上做了一些应用,构筑一个可做为中小企业用的路由器。 l i n u x 是作为一个通用的多用户多任务的操作系统开发的它的调度程 序和虚存管理机制决定了它不可能满足一般的实时性,z e r t l i n u x 设计工 作的重心是从进程调度、内存管理及文件系统上来改动l i n u x 源代码,并采 取双核心的方法来解决实时性问题。 本文的主要工作内容有: 1 深入分析l i n u x ,掌握l i n u x 的工作原理; + 2 阅读和理解l i n u x2 0 3 0 版的内核源代码,了解l i n u x 源代码的组成, 为改造l i n u x 打下基础: 3 z e r t l i n u x 的启动设计; 4 z e r t l i n u x 在实时调度、内存管理及文件系统等方面的改进; 5 。利用g d b k g d b ,采用远程调试方法调试了z e r t l i n u x 内核,成功 开发了z e r t l i n u x 内核; 6 编译内核、创建z e r t l i n u x 的文件系统,在软盘上形成了一个模拟 嵌入式系统z e r t l i n u x ,并利用它配置了一个中小企业的路由器, 用p i n g 工具及t r a c e r o u t e 工具测试了它,进一步验证了 z e r t l i n u x 内核的稳定和可靠。 西南交通大学硕士研究生学位论文第12 页 第2 章z e r t l if l u x 的引导程序z h h f o a d 的设计 现代计算机系统的内存都是“挥发性”的:一旦关机断电,存储在内存 中的信息、连同操作系统本身的映像就丢失了。所以,必须把操作系统( 内 核) 的映像存储在某种不挥发的介质中,使得开机加电时从一种不挥发介质 装入操作系统、并转入运行的映像过程,这个过程就称为“引导”( b o o t s t r a p 或b o o t ) ,也称为“自举”。这里,所谓不挥发介质通常是指硬盘或软盘,但 也可以是e p r o m 或f l a s h 存储器,还可以是网络中别的节点。一般从 e p r o m 或f l a s h 存储器装入映像是很简单的,因为这些存储器本来就是内 存的一部分,访问这些存储器与访问普通的内存空间并无不同,相比之下, 从磁盘等外部设备装入操作系统映像就复杂多了。如果我们在软盘上成功引 导了z e r t l i n u x ,那么稍作修改同样亦可在e p r o m 或f l a s h 中引导它,所 以本章我主要以z e r t l i n u x 作为一个磁盘操作系统为背景,编写一个具有 密码保护的基于引导扇区的程序z h hl o a d 。 虽然目前有很多可引导l i n u x 的程序,如l i l o 、s y s l i n u x 等,但我还是决 定开发具有自主版权的引导程序,原因有几点:其一,l i l o 、s y s l i n u x 功能强 大,而嵌入式不需这么强的功能;其二,可根据需要定制自己的引导程序, 例如当把z e r t l i n u x 作为一个磁盘操作系统肘,可加入密码保护、防病毒 程序等;其三,我们可在引导时加入自己的一些信息,如版本信息。 2 1 预备知识 2 ,1 1 主引导扇区与引导扇区 主引导扇区( m a s t e rb o o ts e c t o r ) ,硬盘的第一扇区,位于硬盘 第0

温馨提示

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

评论

0/150

提交评论