(控制理论与控制工程专业论文)嵌入式linux及其在船舶运动控制中的应用.pdf_第1页
(控制理论与控制工程专业论文)嵌入式linux及其在船舶运动控制中的应用.pdf_第2页
(控制理论与控制工程专业论文)嵌入式linux及其在船舶运动控制中的应用.pdf_第3页
(控制理论与控制工程专业论文)嵌入式linux及其在船舶运动控制中的应用.pdf_第4页
(控制理论与控制工程专业论文)嵌入式linux及其在船舶运动控制中的应用.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

中文摘要 摘要 嵌入式系统的应用与开发是当今的热点研究课题。l i n u x 操作系统作为最主要 的开发源码软件之一,具有性能稳定、内核源码公开、兼容u n i x 、支持多种处理 器、安全性高、网络功能强、内核可以裁减等优点,在嵌入式领域得到广泛的应 用。 本文分析了l i n u x 操作系统,针对船舶运动控制仿真平台的功能需求,设计和 实现了嵌入式l i n u x 系统。首先,为了解决嵌入式l i n u x 操作系统在p c m 9 3 4 0 上 的实现问题,深入分析了其引导过程、文件系统、内核裁减等技术;其次,研究 了l i n u x 操作系统中字符设备的驱动程序开发方法,并且实现了c a n 总线接口卡 的驱动程序;最后,利用q t e m b e d d e d 开发软件,实现了嵌入式l i n u x 系统中的 软件功能模块和人机界面。 本文为船舶运动控制仿真平台设计和实现了嵌入式l i n u x 系统,为系统设计了 c a n 总线接口卡,实现了部分仿真平台的c a n 网络化。实验结果表明,该系统 使用操作方便,具有稳定可靠、通讯正确、速度可以达到实际应用要求、人机界 面友好等特点,也表明了本文所设计的成果的有效性,并且体现了其系统的实用 价值。 关键词:嵌入式l i n u x ;c a n 总线;q t e m b e d d e d ;l i n u x 驱动程序;s j a l 0 0 0 英文摘要 a b s t r a c t ni sah o t s p o tr e s e a r c hs u b j e c tt h a tt h ea p p l i c a t i o na n dd e v e l o p m e n to fe m b e d d e d s y s t e mt o d a y a so n eo ft h em o s ti m p o r t a n ts o u r c ec o d e s ,i th a so p e n e ds o f t w a r et i m e s , l i n u xi su s e df r e q u e n t l yi nt h er e a l - t i m ec o n t r o l l i n gf i e l d 、) l ,i ma d v a n t a g e sa sf o l l o w s : k e m e ls o u r c ec o d e so p e n e d ,s t a b l ep e r f o r m a n c e s ,c o m p a t i b i l i t y 丽t hu n i x ,a p p l i c a b l e f o rm u l t i p l ep r o c e s s o r s ,g r e a tn e t w o r kc a p a b i l i t i e s ,h i g hs e c u r i t ya n dc u s t o m i z e d k e r n e l t h es h i pm o t i o nc o n t r o ls y s t e mi sd e s i g n e di nt h ep a p e r , w h i c hb a s e do n e m b e d d e dl i n u xu s e df o rs h i p m o t i o ns i m u l a t i o np l a t f o r m a n dt h ed a t ai st r a n s m i t t e d b yc a nb u s f i r s t l y , t h es c h e m eo fs h i pm o t i o nc o n t r o l l i n gs y s t e mi s b a s e do f p c m - 9 3 4 0a n de m b e d d e dl i n u xi s d e s c r i b e d s e c o n d l y , w es h o u l dt r a n s p l a n t e m b e d d e dl i n u xo p e r a t i n gs y s t e mo np c m 一9 3 4 0 ,l i n u xk e r n e lr e d u c i n g ,f i l es y s t e m r e d u c i n ga n dt h ec h o i c eo fb o o t l o a d e re t ci sa n a l y z e d t h i r d l y , t h ep r o g r a mm e t h o do f c h a rd e v i c ed r i v e ro i ll i n u xi sr e s e a r c h e di nt h i sp a p e r 、析t hf i n i s h i n gc a nd e v i c e d r i v e r , f i n a l l y , i ti sm e n t i o n e d 、枋n 1t h ed e v e l o p m e n to fs o f t w a r ef o rq t e m b e d d e d s e r i e s i n t e r f a c e ,a n dt h e f u n c t i o n a lm o d u l e sa n dh u m a n - c o m p m e ri n t e r f a c e i n e m b e d d e ds y s t e mi sd e v e l o p e db yt h eq v e m b e d d e d t h i sp a p e rr e s e a r c h e st h es h i pm o t i o nc o n t r o l l e r 、 ,i t l lt h ec a nb u sa n dt h e s i m u l a t i o np l a t f o r mf o rc o m m u n i c a t i o n t h er e s u l ti st e s t i f i e dt h a tt h es y s t e mh a st h e g o o dp o i n ts u c ha sf r i e n d l ym a n - m a c h i n ec o n v e r s a t i o ni n t e r f a c e ,e a s i l yu s i n g ,r e l i a b l e c o m m u n i c a t i o n ,h i 曲r e l i a b i l i t y w e c a na l s o g e t t h ea c h i e v e m e n tt h a tt h e c o m m u n i c a t i o n ss p e e di si m p r o v e d ,i ta l s oi n d i c a t e st h ev a l i d i t ya n da p p l i c a t i o nv a l u e o ft h er e s e a r c hr e s u l t k e yw o r d s :e m b e d d e dl i n u x ;c a nb u s ;q t e m b e d d e d ;l i n u xd r i v e r ;s j a l 0 0 0 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果,撰写成博硕士学 位论文 :送式l i n 坚拯墓在魈舶运动蕉剑虫的应用:。除论文中已经注明引用的内容外, 对论文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本论文中不包含任 何未加明确注明的其他个人或集体已经公开发表或未公开发表的成果。本声明的法律责任由 本人承担。 学位论文作者签名:姑, 学位论文版权使用授权书 本学位论文作者及指导教师完全了解大连海事大学有关保留、使用研究生学位论文的规 定,即:大连海事大学有权保留并向国家有关部门或机构送交学位论文的复印件和电子版, 允许论文被查阅和借阅。本人授权大连海事大学可以将本学位论文的全部或部分内容编入有 关数据库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学位论文。同意将本 学位论文收录到中国优秀博硕士学位论文全文数据库( 中国学术期刊( 光盘版) 电子杂志 社) 、中国学位论文全文数据库( 中国科学技术信息研究所) 等数据库中,并以电子出版物 形式出版发行和提供信息服务。保密的论文在解密后遵守此规定。 本学位论文属于:保密口在年解密后适用本授权书。 不保密一( 请在以上方框内打“一) 论文作者签名:彳嗽:导师签名:玄旧 1 日期:叠p 年月云7 日 嵌入式l i n u x 及其在船舶运动控制中的应用 第1 章绪论 1 1 研究课题的背景 嵌入式系统的应用与开发是当今的一个热点研究课题。嵌入式软件的应用与 开发领域主要为:电子通讯、办公自动化、掌上电脑、手机、工业控制、信息家 电、国防等领域。随着嵌入式应用的深入,嵌入式应用系统的开发和定制也变得 越来越重要,而嵌入式操作系统又是嵌入式系统的核心。从上世纪八十年代起, 国际上就开始进行一些商用嵌入式操作系统的开发,如w i n d o w sc e ,v x w o r k s 等 等。这些开发商开发嵌入式操作系统已经有二十多年的经验,目前的应用范围也 比较广泛,但是由于商业软件的版权等因素,这些操作系统的价格很昂贵,并且 在代码开放上受到限制。因此l i n u x 操作系统凭着免费开源的特点脱颖而出。 l i n u x 是类u n i x 系统,以内核为基础,具有完全的内存访问控制、支持大量硬 件( 包括a l p h a ,m o t o r o l a 、a r m 、x 8 6 等现有的大部分中央处理器芯片) 等特征 的种通用操作系统。普通版本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 】。 对于船舶运动控制,大部分的研究都是面向于控制算法,而其算法实现的硬 件环境一般没有操作系统,或是d o s ( d i s ko p e r a t i n gs y s t e m ) 操作系统。d o s 操 作系统是一种单任务的操作系统,而且对于界面开发也没有便利的开发环境,并 且它是一种商业操作系统,需要交付版权费。这些问题可以通过使用l i n u x 操作系 第1 章绪论 统可以很好的解决。首先,针对与那些没有操作系统的船舶运动控制环境,l i n u x 操作系统完成了硬件的管理,将应用软件和硬件的监控程序分开,方便各部分的 调试和维护。其次,与d o s 操作系统相比,l i n u x 操作系统为应用程序提供了稳定 的环境,而且可以实现多任务,为以后增加功能提供了方便( 可以创建新任务, 不必去修改原有程序) 。 1 1 1 嵌入式l it l u x 系统简介 嵌入式l i n u x 系统就是以l i n u x t 勾核为基础的嵌入式作业系统【3 0 1 。嵌入式系统 出现于6 0 年代晚期,它最初被用于控制电话交换机,如今已被广泛的应用于工业 制造、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消 费类产品等众多领域。计算机系统核心c p u ( 中央处理单元,c e n t r a lp r o c e s s i n g u n i t ) ,每年在全球范围内的产量大概在二十亿颗左右,其中超过8 0 应用于各类 专用性很强的嵌入式系统。一般的说,凡是带有微处理器的专用软硬件系统都可 以称为嵌入式系统。嵌入式l i n u x 系统就是利用l i n u x 其自身的许多特点,把它应用 到嵌入式系统里。嵌入式系统结构如图1 1 所示。 嵌入式应用软件 嵌入式操作系统 嵌入式硬件平台 图1 i 嵌入式系统结构 f i g 1 1e m b e d d e ds y s t e ms t r u c t u r 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 3 4 k b ) ;第三,l i n u x 是免费的操作系统,在价格上极具竞争力。l i n u x 还有 嵌入式l i n u x 及其在船舶运动控制中的应用 着嵌入式操作系统所需要的很多特色,突出的就是l i n u x 适应于多种c p u 和多种硬 件平台,是一个跨平台的系统。到目前为止,它可以支持二三十种c p u ,而且性 能稳定,裁剪性很好,开发和使用都很容易。同时,l i n u x 核的结构在网络方面 是非常完整的,l i n u x 对网络中最常用的t c p i p 协议有最完备的支持。提供了包括 十兆、百兆、千兆的以太网络,以及无线网络,t o k e rr i n g ( 令牌环网) 、光纤甚至卫 星的支持。l i n u x 的诸多优点使得它可以运用到嵌入式这个领域中1 2 】。 1 1 2 其它嵌入式操作系统介绍 w i n d o w sc e 是微软公司制作的嵌入式平台【3 l 】。w i n d o w sc e 是一款开放的和 可升级的3 2 位嵌入式操作系统,它主要面向于掌上型电脑类的电子设备,它相当 于精简的w i n d o w s9 5 ,而且w i n d o w sc e 的图形用户界面相当出色。 其中w i n d o w sc e 中的c 代表消费( c o n s u m e r ) 、袖珍( c o m p a c t ) 和通信能 力( c o n n e c t i v i t ) ;e 代表的是电子产品( e l e c t r o n i c s ) 。与通用计算机所用的w i n d o w s 系统不同的是,w i n d o w sc e 是运用于嵌入式系统,w i n d o w sc e 操作系统是基于 w i n 3 2a p i 重新开发的信息设备平台。w i n d o w sc e 具有:结构化、模块化和应用 程序接口与处理器无关等特点。w i n d o w sc e 不只是继承了传统的w i n d o w s 图形 界面,而且在w i n d o w sc e 平台上可以使用w i n d o w s9 5 9 8 上的编程工具( 如v i s u a l c + + 、v i s u a lb a s i c 等) 、使用相同的a p i 函数、使用相同的界面风格,使得大多 数的应用软件只需简单的修改就可以移植在w i n d o w sc e 平台上使用。w i n d o w s c e 操作系统的产品大致分为三种:p o c k e t p c ( 掌上电脑) 、h a n d h e l dp c ( 手持设 备) 及a u t op c 。 v x w o r k s 是美国w i n dr i v e rs y s t e m 公司( 以下简称:风河公司) 推出的一 款实时嵌入式操作系统。t o r n a d o 是风河公司推出的一套开发环境,类似于 m i c r o s o f tv i s u a lc + + 。 v x w o r k s 操作系统有以下部件组成:内核( w i n d ) 、i o 系统、文件系统、 板级支持包、网络支持。内核为多任务调度,采用基于优先级抢占方式,同时支 持同优先级任务间的时间片调度算法。v x w o r k s 提供了一个与a n s ic 兼容的i o 系统,包括u n i x 标准的b a s i ci o ,b u f f e ri o ,以及p o s i x 标准的异步i 0 。 3 第1 章绪论 v x w o r k s 的驱动程序包括:管道驱动、网络驱动、s c s i 驱动、r a m 盘驱动、显 示驱动、键盘驱动、并口驱动、磁盘驱动等。v x w o r k s 支持四种文件系统:d o s f s 、 r t l1 f s 、r a w f s 和t a p e f s 。板级支持包向v x w o r k s 操作系统提供了硬件功能操作 的统一软件接口,它是保证v x w o r k s 操作系统的可移植性。每个板级支持包都有 一个r o m 启动( b o o tr o m ) 或其它启动机制。网络支持提供了对其它v x w o r k s 系统和t c p i p 网络系统的访问,包括与套接字兼容的编程接口,远程过程调用和 远程文件访问等。v x w o r k s 网络机制都遵循标准的i n t e r a c t 协议【3 】。 l i n u x 操作系统与w i n d o w sc e 操作系统的比较:第一,l i n u x 是开源的操作 系统。w i n d o w sc e 目前6 0 内核全部开放,而用户界面不开放;第二,l i n u x 的 内核小、效率高。w i n d o w sc e 比l i n u x 对r a m 占用较多;第三,l i n u x 是免费的 操作系统,w i n d o w sc e 需要版权费用;第四,l i n u x 操作系统不仅支持x 8 6 芯片, 还是一个跨平台的系统;第五,l i n u x 内核的结构在网络方面非常稳定。 v x w o r k s 作为专业的商用实时操作系统,提供b s p 开发方式,开发资源都非 常适宜于嵌入式应用。而l i n u x 操作系统作为从通用操作系统发展而来的,在嵌入 式应用的b s p 开发方面,需要多做一些工作,但是它却有更丰富的资源。由于 v x w o r k s 也是一款商用操作系统,因此也需要版权费用。 1 1 3c a n 总线简介 c a n 是拥有国际标准的现场总线之一,与一般的通信总线相比,c a n 的数据 通信具有突出的可靠性、时实性和灵活性。其特点可以概括如下1 4 : 首先,c a n 总线可以工作在多种方式下,采用c s m a c a ( c a r r i e rs e n s em u l t i p l e a c c e s s c o l l i s i o na v o i d a n c e ) 仲裁的方式,c a n 网络中的各节点都可根据访问优先 权,采用无损的仲裁方式向c a n 总线发送数据。c a n 协议改用对通信数据进行编 码,这样可以使得不同的节点同时刻接收到相同的数据,这些特点使得c a n 网络 中的各节点之间的数据通信实时性增强,并且可以容易的构成冗余结构,可以提 高系统的灵活性和可靠性。 其次,c a n 收发器8 2 c 2 5 0 的两个输出端c a n h 和c a n l 与c a n 总线相连, c a n h 端的状态只能是悬浮或高电平状态,c a n l 端的状态也只能是悬浮或低电 4 嵌入式l i n u x 及其在船舶运动控制中的应用 平状态。使得不会出现当网络系统出现错误时,或是多节点同时发送数据时,导 致总线短路和损坏接口硬件的现象。而且c a n 节点本身错误严重的情况下,为了 使得总线上其它节点可以正常工作,而不受其影响,它会自动关闭出错c a n 节点 的输出功能。从而可以保证不会因为c a n 网络中的个别节点出现问题,使整个 c a n 网络处于“死锁 状态。 而且,c a n 具有完善的通信协议,c a n 网络接口可由c a n 控制器芯片来实 现,从而降低了系统开发的难度和缩短了系统开发的周期,这些优点是其他 ( r s 4 8 5 ) 通讯方式所无法比拟的。由于c a n 总线诸多的优点,其应用范围已不 再局限于汽车行业,而是逐渐扩展到了纺织机械、农用机械、机械工业、数控机 床、机器人、医疗器械、传感器及家用电气等领域。c a n 已经形成为一种国际标 准,并且成为最有前途的现场总线之一。 1 2 研究课题的研究内容 课题研究的内容主要分为两部分:第一部分是l i n u x 操作系统的研究;第二部 分是设计嵌入式l i n u x 系统,并运用到船舶运动控制平台上。研究l i n u x 操作系统的 内核版本为2 6 2 2 。研究主要从内核的结构、驱动程序的框架、应用程序等方面进 行。嵌入式l i n u x 系统的设计可以分为三个步骤:首先是硬件设计;其次是l i n u x 操作系统的定制;最后是应用程序的设计。第一部分的研究内容是第二部分的理 论基础。第二部分是整个论文中的重点部分。 实验室提供设备说明:船舶运动仿真平台,主要由二维平动机械架构实验台、 驱动机构、控制台以及其它附属设备构成,实验台上的中心平台用来模拟船舶的 小范围平面运动。中心平台可以沿实验台水平面作任意方向平动和转动,并能给 出精确的多种位置信号和角度信号。整套装置的构造如下图1 2 所示: 第1 章绪论 图1 2 船舶运动仿真平台结构 f i g 1 2 t h es t r u c t u r eo ft h es h i pm o t i o ns i m u l a t i o np l a t f o r m 研究的内容是:嵌入式l i n u x 系统的设计与制作,船舶运动仿真平台c a n 网络 的搭建。因为仿真平台主要是为了试验使用,所以为仿真平台设计了试验计算机 接入端口。嵌入式l i n u x 系统在整个c a n 网络中属于上位机,对船模型控制计算机 和环境控制计算机进行实时监控和参数( 如:海况参数设置,舵角设置等等。) 设置。整个船舶运动仿真平台的系统结构如图1 3 所示。 图1 3 系统结构图 f i g 1 3t h es y s t e ms n - u c t i l r e 嵌入式l i n u x 及其在船舶运动控制中的应用 第2 章l in u x 操作系统 l i n u x 是一套可以自由传播和免费使用的类u n i x 操作系统。然而严格的来讲, “l i n u x 这个词开始只是表示l i n u x 内核,但是在实际中人们已经习惯用l i n u x 来形容整个基于l i n u x 内核,并且使用g n u 等各种工具和数据库的操作系统。本 章主要介绍了l i n u x 操作系统,主要内容有l i n u x 内核构成、g r u b 介绍、l i n u x 下驱动程序的编写、q t e m b e d d e d 等内容。 2 1 嵌入式l in u x 介绍 嵌入式l i n u x 是以l i n u x 为基础的嵌入式作业系统【2 】。嵌入式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 被广泛应用到个人数字助理( p d a ) 、移动电话、消费性电子产品、媒 体播放器以及航空航天等领域中。嵌入式l i n u x 系统就是利用l i n u x 其自身的诸多 特点,把它应用到嵌入式系统里。 l i m t 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 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 对网络中最为常用的t c p i p 协议具有最完备 的支持。 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 的出现,包括:e m b e d i x ,e t l i n u ) ( ,l e m ,l i n u xr o u t e r 7 第2 章l i n u x 操作系统 e r o j e c t ,l o a f ,u c l i n u x ,m u l i n u x ,t h i n l i n u x ,f i r e p l u g ,l i n u x 和p i z z a b o xl i n u x 。 相对其他操作系统,l i n u x 的图形界面还相对较弱,但近年l i n u x 的图形界面发展 也很快,这也就不是问题【2 1 。 2 2g r u b 介绍 g r u b ( g r a n du n i f i e db o o t l o a d e r ) 是一个多操作系统启动程序。g r u b 允许 用户可以在计算机内同时拥有多套操作系统,并且在计算机启动时可以选择希望 运行的操作系统。g r u b 可以使用户选择分区上的不同内核,并且可以向选择的 内核传递启动参数。 g r u b 中的重要文件: 第一个是s t a g e l :它被安装在硬盘的m b r 扇区( 0 面0 磁道的第1 扇区) ,大 小为5 1 2 字节( 4 4 6 字节代码+ 6 4 字节分区表+ 2 字节标志) ,s t a g e l 负责加载存放 于硬盘的0 面0 道第2 扇区的s t a r t 程序。 第二个是s t a g e l - 5 :它负责识别文件系统和加载s t a g e 2 程序,所以s t a g e l 一5 往往有多个,以支持不同文件系统的读取。在安装g r u b 的时候,它会根据当前 b o o t 的分区类型,加载相应的s t a g e l 一5 到0 面0 磁道的第3 扇区。s t a g e l - 5 是由 s t a r t 程序加载的。 第三个是s t a g e 2 :它负责显示启动菜单和提供用户交互接口,并根据用户选择 或默认配置加载操作系统内核。同前两个文件不同,s t a g e 2 是存放在硬盘上 b o o t g r u b 下。 第四个是m e n u 1 s t ( 是文件b o o t g r u b g r u b c o n f 的链接) :g r u b c o n f 是一个基于 脚本的文本文件,其中包含菜单显示的配置和各个操作系统的内核加载配置。 g r u b 根据文件g r u b c o i l f 显示启动菜单,提供给用户相应的交互界面【6 1 。 2 3lin u x 内核简介 2 3 1l i n u x 内核的组成部分 l l n u x 内核主要是由五个子系统组成:进程调度,内存管理,虚拟文档系统, 8 嵌入式l i n u x 及其在船舶运动控制中的应用 网络接口,进程间通信【5 】。 1 进程调度:进程调度主要是控制进程对c p u 的访问。当需要选择下一个进 程运行时,由调度程序选择最值得运行的进程。可运行进程实际上是仅等待c p u 资源的进程,假如某个进程在等待其他资源,则该进程是不可运行进程。l i n u x 使 用了基于优先级和时间片结合的进程调度算法来选择新的进程。l i n u x2 6 内核对 实时进程的支持相对于以前版本( l i n u x 2 4 内核) 的内核有很大的加强。其引入的 两项新特性有利的提高了系统的实时性能,分别是o ( 1 ) 调度算法和内核抢占支持, 这两点都保证实时进程能在可预计的时间内得到响应。所以l i n u x 2 6 内核更适合 嵌入式系统,提高了系统的实时性。 2 内存管理:使多个进程安全的共享主内存区域。l i n u x 的内存管理支持虚拟 内存,即在计算机中运行的程序,其代码,数据,堆栈的总量允许超过实际内存 的大小,操作系统只是把当前使用的程序块加载到内存中,其余的程序块则保留 在硬盘中。当需要其他程序块时,操作系统负责在硬盘和内存间交换程序块。内 存管理从逻辑上分为硬件无关部分和硬件有关部分。硬件无关部分提供了进程的 映射和逻辑内存的对换;硬件相关的部分为内存管理硬件提供了虚拟接口。 3 虚拟文件系统:虚拟文件系统隐藏了各种硬件的具体细节,为硬件设备提供 了统一的接口,提供了数十种不同的文件系统。虚拟文件系统分为逻辑文件系统 和设备驱动程序。逻辑文件系统是指l i n u x 操作系统所支持的文件系统,如 e x t 2 ,n f s ,f a t 等。设备驱动程序是指为硬件所编写的设备驱动程序模块。 4 网络接口:网络接口提供了对各种网络标准和各种网络硬件的支持。网络接 口可分为网络驱动程序和网络协议。网络设备驱动程序负责和硬件设备通讯,每 一种硬件设备都有相应的设备驱动程序。网络协议部分负责实现每一种网络传输 协议。 5 进程间通讯:进程问通讯支持进程间各种通信机制。 一般情况下,当一个进程等待硬件操作完成时,他被挂起:当操作真正完成 时,进程被恢复执行。例如,当一个进程通过网络发送一条消息时,网络接口需 要挂起发送进程,直到硬件成功地完成消息的发送,当消息被成功的发送出去以 9 第2 章l i n u x 操作系统 后,网络接口给进程返回一个代码,表示操作的成功或失败。其他子系统以相似 的理由依赖于进程调度。所以处于中央位置的进程调度,任何其它的子系统都要 依赖于它,因为每个子系统都需要挂起或恢复进程。各个子系统之间的依赖关系 如图2 1 所示: 图2 1 内核模块结构及其相互依赖关系 f i g 2 1k e r n e lm o d u l es t r u c t u r ea n di n t e r d e p e n d e n tr e l a t i o n s h i p 进程调度和内存管理的关系:这两个子系统互相依赖。在多任务环境下,程序 要运行必须先为之创建进程,而创建进程的之前要做的就是将程序和数据加载到 内存。 进程间通信和内存管理的关系:进程间通信子系统要依赖于内存管理的共享 内存通信机制。这种机制允许两个进程间除了拥有自己的私有空间外,还可以存 取共同的内存区域。 虚拟文档系统和网络接口的关系:虚拟文档系统利用网络接口才能支持网络 文档系统,也利用内存管理支持r a m d i s k 设备。 内存管理和虚拟文档系统之间的关系:内存管理利用虚拟文档系统支持交换, 交换进程定期由调度程序调度,这也是内存管理依赖于进程调度的原因。当一个 进程存取的内存映射被换出时,内存管理向文档系统发出请求,同时,挂起当前 正在运行的进程。 除了介绍的依赖关系外,内核中的各个子系统还要依赖一些共同的资源。这 l o 嵌入式l i n u x 及其在船舶运动控制中的应用 些资源包括了各个子系统都要用到的过程。例如:打印警告或错误信息的过程, 分配和释放内存空间的过程,更有系统的调试例程等等。 2 3 2l i n u x 内核中常用数据结构 系统数据结构在l i n u x 的内核的实现中,有一些数据结构使用频度较高,它们 是【5 】: t a s ks t r u c t :l i n u x 内核利用数据结构t a s ks t r u c t 代表一个进程,代表进程的数 据结构指针形成了一个t a s k 数组( l i n u x 中,任务和进程是相同的术语) ,这种指针 数组也称为指针向量。这个数组的大小由n r默认为 变量定义,表明t a s k s (5 1 2 ) l i n u x 系统中最多能同时运行的进程个数。当建立新进程的时候,l i n u x 为新进程 分配一个t a s ks t r u c t 结构,然后将指针保存在t a s k 数组中。调度程序维护着一个 c u r r e n t 指针,它指向当前正在运行的进程。 m i l ls t r u c t :每个进程的虚拟内存都是由一个m ms t r u c t 结构来代表,该结构 实际上包含了当前执行映像的有关信息,并且包含了一组指向v ma r e as t r u c t 结构 的指针,v ma r e as t r u c t 结构描述了虚拟内存的一个区域。 i n o d e :虚拟文档系统中的文档、目录等均由对应的索引节点( i n o d e ) 代表。每 个虚拟文档系统中的索引节点中的内容由文档系统专属的例程提供。虚拟文档系 统索引节点只保存在于内核内存中。如果两个进程用相同的进程打开,则能够共 用i n a d e 的数据结构,这种共享是通过两个进程中数据块指向相同的i n o d e 来完成 的。 2 3 3l i n u x 内核源代码的结构 l i n u x 内核源代码位于u s r s r c l i n u x 目录下【7 1 。 i n c l u d e 子目录包含了建立内核代码时所需的大部分包含文档。 i n i t 子目录包含了内核的初始化代码,这是内核工作的开始的起点。 a r c h 子目录包含了硬件结构特定的内核代码。如:i 3 8 6 ,a l p h a 等。 d r i v e r s 子目录包含了内核中的设备驱动程序,如:块设备和s c s i 设备。 凰子目录包含了文档系统的代码。女f l :e x t 2 ,f a t 等。 第2 章l i n u x 操作系统 n e t 子目录包含了内核的网络连接代码。 m m 子目录包含了内存管理代码。 r i p e 子目录包含了进程间通信代码。 k e m e l 子目录包含了主内核代码,包括进程调度等等。 2 4l i n u x 系统启动过程 l i n u x 系统启动包括六个步骤【6 】:b i o s 自检、启动g r u b 、加载内核、执行 i n i t 初始化进程、通过e t c i n i t t a b 等文件进行初始化、启动s h e l l 。 1 b i o s 自检 首先是p o s t ( p o w e ro ns e l f t e s o ,对硬件进行检测。计算机在上电后首先由 b i o s 进行自检,即p o s t ( p o w e ro ns e l ft e s t ) ,对硬件进行检测完毕后,依据b i o s 内设置的引导顺序从硬盘、软盘或c d r o m 中读入”引导块”。在计算机中,l i n u x 是从b i o s 中的地址0 x f f f f 0 处开始的。 第二个步骤是进行硬件设备的初始化。b i o s 由两部分组成:p o s t 代码和运 行时服务。当p o s t 完成后,它从内存中清理出来,但b i o s 运行时服务依然保 留在内存中,目标操作系统可以使用这些服务。引导一个操作系统,b i o s 运行时 会按照c m o s 的设置的顺序来搜索处于可用状态并且可引导的设备,例如: c d r o m 、硬盘上的分区( 通常l i n u x 是从硬盘引导的) 、网络上的某个设备、软盘、 u s b 。 b i o s 搜索到可以引导的设备时,就将设备的主引导记录m b r 中的程序加载 到内存。m b r 是一个5 1 2 字节大小的扇区,位于磁盘上的第一个扇区中( o 道0 柱 面1 扇区) 当m b r 被加载到r a m 中后,b i o s 会把c p u 控制权交给m b r 。 2 启动g r u b g r u b 是引导加载程序。g r u b 将引导操作系统启动。能正常工作的g r u b 应该包括以下文件:s t a g e l 、s t a g e 2 、* s t a g e l 一5 ( 有多个,分别引导不同文件系统 下的内核) 、m e n u 1 s t 。 其中s t a g e l 的大小一定是5 1 2 字节,它要被安装到某个硬盘的主引导记录区 嵌入式l i n u x 及其在船舶运动控制中的应用 中。s t a g e l 的唯一的作用就是找到存放在硬盘上某个地方的s t a g e 2 文件,来完成后 续的工作。s t a g e 2 文件可以存在在某个特定的文件系统中,比如分出一个l i n u x 分区,在分区上创建一个e x t 2 文件系统,然后把这个文件拷贝到这个分区的某个 目录下。也可以把s t a g e 2 直接存放在硬盘的某个位置,也就是未分区的某个地方。 因为s t a g e l 的容量有限( 主引导记录m b r 和启动扇区的大小只能够是5 1 2 字节) , 所以它对文件系统是无法识别的,那如果把s t a g e 2 存放在e x t 2 或者f a t 格式的文件 系统上,这就要用到上面提到的那些s t a g e l5 的文件,它们负责解释文件系统。 s t a g e 2 放在什么格式的文件系统上,就要调用对应的那个s t a g e l 一5 文件。比如,如 果把s t a g e 2 存放在e x t 2 格式的文件系统上,就需要e 2 f s _ s t a g e l 5 ;s t a g e 2 存放在 f a t 格式的文件系统上,就需要f a t _ s t a g e l 一5 。之后,s t a g e 2 将内核镜像加载到内存。 3 加载内核 当内核映像被加载到内存后,内核阶段就开始了。内核映像并不是一个可执 行的程序,而是一个被压缩过的内核映像。通常它是一个z l m a g e ( 压缩映像,小于 5 1 2 k b ) 文件或b z l m a g e ( 较大的压缩映像,大于5 1 2 k b ) 文件,它是提前使用z l i b ( z l i b 是一种压缩标准) 进行压缩的。在这个内核映像前面是一个例程,它实现少量硬 件设置,并对内核映像进行解压,然后将其放入高端内存中,如果有初始r a m 磁 盘映像,就会将它移动到内存中,并标明以后使用,然后此例程会调用内核,并 开始启动内核引导的过程。 4 执行i n i t 初始进程 i n i t 进程是所有进程的起点,内核在完成内核引导后,即在本线程( 进程) 空间 内加载i n i t 程序,它的进程号为1 。i n i t 进程是所有进程的发起者和控制者。 i n i t 进程有两个作用:第一个作用是扮演终结父进程的角色。因为i n i t 进程永 远不会被终止,所以系统总是可以确信它的存在,并在必要的时候以它为参照。 如果某个进程在它衍生出来的全部子进程结束之前被终止,就会出现必须以i n i t 为参照的情况。此时那些失去了父进程的子进程( 例如:守护进程) 就都会以i n i t 作为它们的父进程;第二个作用是在进入某个特定的运行级别时运行相应的程序, 以此对各种运行级别进行管理。它的这个作用是由e t c i n i t t a b 文件定义的。 第2 章l i n u x 操作系统 5 通过e t c i n i t t a b 文件进行初始化 i n i t 进程的工作是根据e t c i n i t t a b 来执行相应的脚本进行系统初始化,如设置 字体、键盘、设置网络、装载模块等。 6 启动s h e l l 命令行解释器的位置称为s h e l l 。l i n u x 环境下,l i n u x 的系统命令要在s h e l l 下输入,并在s h e l l 下运行。 用户登录程序l o g i n 会提示使用者需输入帐号与密码,当二者被确认正确时, 则为使用者进行初始化环境,并将控制权交给s h e l l ,l i n u x 系统启动完成。 2 5lin u x 驱动程序 在l i n u x 操作系统下有3 类主要的设备文件类型【8 】:字符设备、块设备和网络 设备。这种分类方法可以将控制输入输出设备的驱动程序与其他操作的驱动程序 分离开来。字符设备与块设备的主要区别是:在对字符设备发出读写请求时,实 际的硬件f o 一般紧接着发生。块设备不同,它利用一块系统内存作为缓冲区,若 用户进程对设备的请求能满足用户的要求,就返回请求的数据;否则,就调用请 求函数来进行实际的f o 操作。块设备主要是针对磁盘等慢速设备设计的,以免耗 费过多的c p u 时间用来等待。网络设备可以通过b s d ( b s d 是l i n u x 系统中通用 的网络接口) 套接口访问数据。 每个设备文件都有其文件属性( c b ,字符设备块设备) ,表示是字符设备还是 块设备。另外每个设备文件都有2 个设备号,第一个是主设备号,标识驱动程序; 第二个是从设备号,标识使用同一个设备驱动程序的不同硬

温馨提示

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

最新文档

评论

0/150

提交评论