嵌入式实时Linux系统技术发展现状_第1页
嵌入式实时Linux系统技术发展现状_第2页
嵌入式实时Linux系统技术发展现状_第3页
嵌入式实时Linux系统技术发展现状_第4页
嵌入式实时Linux系统技术发展现状_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、题目A Survey on Embedded and Real-Time Linux System嵌入式实时Linux系统技术发展现状作者林志胜、李书良(Chin-Sheng Lin、Shu-Liang Lee)摘要科技不断的日新月异推陈出新,为使其仪器设备设计更精密更精良、家电设备更 聪明更友善于通讯设备更即时且有更好品质,即时有效的处理能力是不可或缺 的。嵌入式系统于即时性系统的需求,想必定在未来的世界里占据举足轻重的地 位。当今,风行于世的Linux操作系统,本着开放原始码的理念于权利金免费的 优点,吸引了不少有心人士纷纷的投入,致使其符合嵌入式于即时性的需求,本 文将究其技术于发展现况

2、来加以讨论。关键词嵌入式系统dded System)实时系统 l-Time System)实时操作系统 Time Operation System; RTOS)Linux1前言现今,在操作系统的市场上融起了一股不容忽视的势力,嵌入式系统于即时性系 统的需求,对于一些新兴产业来说更是不可忽视,言者如像是一些通讯产业和网路 家电(Internet Appliance; IA)业等皆纷纷的投入这个市场的研究开发,引进这些能 力致使其产品功能多样新奇于处理能力迅速。Linux的出现震惊了大大小小的产 业,其开放原始码(open source)于免权利金(royalty free)的优势,再加上可移植性

3、 (portability)的特性,更受到许多业者的喜爱,不僮在应用修改上容易且更富弹 性,于成本的考量上更是一大因,你还虎视眈眈吗?以下将针对嵌入式与即时 性系统作介,%已,并就其发展现况、技术与市场趋势来加以分析与讨论。于计划上,我们主要的开发为一个混合式的电话交换机(Hybrid IP PBX),主要是 以Linux做为我们的嵌入式操作系统并加上实时性的能力上层则是整合Telogy 的策略,来实现电话交换机的功能。2.嵌入式系统谈到嵌入式系统(embedded system)的定义,有人是这样说的,嵌入式系统是一个 没有使用者界面(user interface)的系统,因为使用者无法于系

4、统互动 当然这样的 说法太简单化。像电梯控制器可视为嵌入式系统的一个应用,但它提供有使用者 介面可以让使用者选择欲到达的楼层,而对于一个连接网路设备的系统而言,也 许只有一些简单的指示灯,虽然没明显的使用者介面,但它可能仍可以透遏网路 进行监视和控制。所以嵌入式系统比较好的定义应言亥是一个专属的、且为某称特 定目的实现的系统,如数码相机的操作系统就可视为一称嵌入式系统的应用,因 为它是专门为数码图像录入设计的系统。而Linux提供了核心(kernel)程式正好符合嵌入式系统的需求 而且它也提供了许 多的使用者介面,包括网路方面与各称的人机介面,它能处理embedded tasks和 user

5、interface。基本上Linux可视为由一些基本系统功能所组成的一套完整操作 系统,它包括了 micro-kernel memory management、task switching 和 timer services 等。常常听到有人在比较说我能将Linux缩的很小很小,可作为我的嵌入式系统,到 底一个最小的embedded Linux需包含哪些元件呢?我将其归类如下:a boot utilitylinux micro-kernel memory management process management 与 timing servicesan initialization proces

6、sdrivers for hardwareone or more application processes to provide the needed functionality也就是指这个嵌入式系统上层所提供的功能。除此之外还可以加入a file system(perhaps in ROM or RAM)TCP/IP network stacka disk for storing semi-transient data and swap capability等元件来增加系统的功能。在我日常的生活中,早已存在许多的嵌入式系统的应用,如手腕上的电子表、几 乎人手一只的移动电话、挂在腰间的呼叫器

7、、热饭用的微波炉,办公室里所使用 的打印机、汽车里的供油喷射控制系统、防锁死刹车系统(ABS),与现今流行随 身个人助理(PDA)等等,其内部都有个处理器。依需求不同,其复杂度也不同, 发展的难易度更不尽相同,最早的做法是工程皆币从头到尾手工打造,那时没有什 么操作系统的观念,整个控制系统,包括使用者介面,可以说是一个完整的大程 式,且为了效率,常使用组合语言来编写控制程式,工程皆币必顶知道每一个环节, 包括设定什么地方能产生什么讯号,那些记忆体存了些什么资料,如何管理暂存 的资料等等,往往为了增加新的功能而大改特改,浪费了许多时间,同时对于整 个系统的稳定度也是一大挑战。后来出现了许多操作系

8、统应用在如工作站(workstation)、桌上型电脑(desktopcomputer)。有了这些操作系统后,大大缩短了程式的发展时程,也建立起程式 间沟通的规范,但对于嵌入式系统而言,一方面处理器(processor)本身的能力就 不强,且在切换不同处理程序时,也就是作本文交换(context switch)时所耗去的 时间太多于耗去不少系统资源;另一方面需考量的问题是嵌入式的系统资源(如 记忆体、储存设备)不足且少,一般的操作系统如缺乏了这些资源是无法发挥功 用的)为了这个需求 衍生出了所言胃的嵌入式操作系统(embedded operation system) 这项产物,这称操作系统弓鱼

9、的是不需大量的系统资源即可运作得很好,通常还 有即时性(real-time)的能力,比较有名的有VxWorks、pSOS、Windows CE、eCos 等,前面三个系统为商业系统,部分核心的原始码(source code)是无法看到的, 虽然在发展程式时不会有太大的困摄但有时程式死在核心时会嵬得不知道如何 继续除金昔下去,只好去试试不同的哉定看看是不是能正常工作;而eCos是一项 实性的言十ftj,且由Redhat这冏公司主辱这整个言十ft, eCos的全名是Embedded Configurable Operation System,它是一个可自定鲍憩(configurable)、开放程式

10、码 (open-source)、免权利金(royalty-free)、且具有可移植性(portable)能力的一个嵌 入式即时操作系统(Embedded Real-Time OS; Embeded RTOS)。虽然如此,eCos 仍在发展阶段,像是TCP/IP protocol stack仍在Beta版本,没有禧案系统(file system),虽然这些都是可以加入的元件(component),但目前还不完整,相信假 以时日的未来将会变成一套不金昔的嵌入式即时操作系统而镇先群雄。然而,市场上为什麽大家仍兢相探用Linux来做为嵌入式系统的核心呢?据我的 言忍知,度帚究起来有以下几个原因:一为其

11、开放原始码,你可易地经由网路上取 得,且没有权利金的问题,而由于其开放原始码,造就许多网路上有志之士,纷 纷的加以修改擒充,致使其功能完整且系置定度柢高。其二是因为网路上支援的工 具多,经由许多前人努力于M的成果,于发展上已有许多弓鱼大工具可用,如 GNU的gcc、binary utilities GDB等,有了这些工具可刍宿短程式哉言十皆币们开发 系统的时间,使工作更娘利,且相关的言寸也很多,网路上熟心的网友也很多, 大家可相互言寸交换心得,这称发展的策略才是我们所鹳往的,才会有好的产品 问世。再者,支援Linux的应用程式浆多,Linux行之有年,已有许多弓弓而有力 的程式都以Linux平

12、台来开发,如果系统资源允许,很多应用皆可易的移植到 嵌入式系统上执行,可以很快地增加整个系统的功能性,当然这可能需要做一些 整(tunning)o四、linux已经把硬体相关的部份猾立分隔出来,发展者只要把心 力著重在硬体相关的部份即可;比如说我们想要发展以PowerPC8xx系列为微处 理器的系统,就可以参考或沿用linux/arch/ppc中的程式码,再依据自己系统的 需求进行整,如此可大大地宿减发展的时间。目前最主要的技术着重在如何把Linux移植到自行开发的系统平台上,调整以符 合自己的需求,并移植相关的软件或自行开发的程式来作应用。Linux核心已经 发展了许多不同架构处理器下的版本

13、,从原始程式码我们可以发现,其有i386、 PPC、ARM于SPARC 等常见的处理器架构版本,有了处理器支援,再加其上 支援的发展工具也很多,对发展者来说,有如如焦得水,许多的发展工具在网路 皆随手可得;且一般来说,这些工具皆提供有Windows于Linux的版本,像是 一些跨平台编译器(cross compiler、标准函式库(standard library火除错工具(debug tool)等,且原始码都是公开的,你可依需求编译成适合不同的处理器架构的程 式,而最重要的是,其使用者介面一致,在开发展不同处理器架构的系统时可减 少学习的时间。Linux核心是可configurable,使用

14、者可依不同的需求来选取需要 的选项,来减少核心系统的大小。在Boot loader方面,以PC的角度来看通常会有一个基本的输入输出系统(Basic Input/Output System; BIOS)来负责一些系统的低阶的设定与自我测试(POST),像 是记忆体测试、信者存设备的值测,并根据boot sequence找出开机装置(如硬碟、 软碟或光碟),再把开机程式载入全记忆体并执行;需注意的是,Linux本身只提 供系统的核心程式,并不具脩开机的能力,通常还顶要有一个Boot loader来把 Linux核心载入记忆体,LILO这项工具就是用来做这件事,可惜的是这方面的 程式于系统的架构有高

15、度相关性,并不容易移植;好在这些程式码不太复杂,也 有一些相关的程式可瓦 如在PowerPC架构上网路上就有一个ppcboot的计划在 进行,它除了可以进行系统的低阶哉定和载入核心,还可以做一些基础的硬体测 试工作,有兴趣的读者可以参考看看,它的网址在 HYPERLINK /%e3%80%82 /。而在开机选择方面,嵌入式系统的储存设备通常只有记忆体JRAM)、快踞式记忆 体(Flash ROM)或是唯读式记忆体(ROM),没有额外的软碟于硬碟,所有系统所 需执行的 boot loader、kernel、root filesystem 都必顶放在 flash 中,boot loader 把 k

16、ernel载入记忆体后,kernel会再把root filesystem拷MM先建立好的ramdisk 上,然后挂卜上(mount) root filesystem,即完成了整个开机程序;而Linux又对于 其root filesystem 提供另外一个方式,就是root filesystem 可经由递端 NFS(Network File System)服矜来提供,如此一来在发展遏程中,只要在Host端 褊嘉睾(compile)好,就可以直接在Target端执行,而不用再重新再把新的root filesystem放入flash中,如此可方便于系统的发展。在standard library方面,

17、一般来说使用GNU的glibc,通常glibc的大小都太大(约 有4MB左右),那是因为library里含有许多除错(debug)的信息,将这些信息放 入嵌入式系统里并不合适,必须经过strip的操作,如objcopy -trip-debug from (libc.2.1.2) to (slibc.2.1.2),大概可以把程序库的大小压缩至1MB多。在应用程序方面,你可以选择需要的部份,如XWindow是不必要的,就可以从 root filesystem中移除,详细的内容可参考Bootdisk-HOWTO中的Appendix C. Sample root filesystem listings

18、,如果系统资源真得很少,可以对一些常用的程式 进行减肥,网络已有许多计划在进行,如有一个ash,不像bash于csh那样功能 多样,但至少可于使用者进行互动,也可执行一些shell script,这些对一个不会 使用者常互动的嵌入式系统来说就已经足够了。3.即时性系统即时性系统的应用通常在一些需要较精密精率且需即时反应的科学偎器设备 上,言者如机器人或盈视辨系统;其他像是视讯会 (Video conference)、电话 (Telephone)、交易(Transation)系统等也都需有即时的能力。到底何言胃一个即时性的系统呢,其实并没有一个很明确的定羲。一般来说,发出 一个要求于收到回应的时

19、间在一很短暂的时间,言胃之即时(real-time),其时间大 冬勺为1至5个微秒(million seconds)左右。也可以这麽说,一个即时性系统,其执 行的反应时间能被期掌控在一个保的时间内完成 且一个即时性的工作被要 求时,并不是说优先权高的要先执行,这点很重要;一个时限需在10秒之后完 成的工作没有道理一定要在现在立刻执行;所以一个系统中可以同时执行分时和 即时的工作,常有的森解是即时的工作要比分时的工作先执行,这是不对的。太 早完成对它没有任何好处,有时还会造成系统不必要的搪。就程式哉言十皆币的角 度来看,一些较为迫切的即时性需求通常会藉由中断或撰写核心行程来实现,以 确保执行结果

20、的正确性;让即时性的行程工作在核心屑,其目的在能直接存取硬 体设备,效率较高速度较快。即时需求的言寸言翎通常言寸在操作系统本文交换 (context switch)的时间、中断的延迟(interrupt latency) 行程优先权(task/process priority)于排程(scheduler)问题等。根据微软的技术幸艮告示,微软 Windows98 的中断反应时间有98%的工作在4微秒内会反映完成,一般的工作最多皆能在 20微秒内做出回应。如果操作系统中所有的工作都有相同的时限,那它则跟分 时操作系统一样。市场上,实时系统比较有名的像是VxWorks、pSOS于Linux等。VxW

21、orks和pSos 是早期市场上的航遍半片天的嵌入式实时操作系统(Embedded RTOS),而近来的 新起之秀Linux更是魅力无法阻挡。但Linux于原本的设计上本身并没有考虑到 实时性的需求,且对每一个行程(process)而言,采用时间共享(time sharing)的 排程方式公平的分配给各行程时间执行,如需增加其实时性的处理能力,基于其 开放源码优点,致使其发展空间很大,许多有兴趣的人士、厂家业界与学术界皆 纷纷的投入此方面的研究发展,针对Linux加上了实时性(real-time)的能力与扩 充所支援的平台,进而增加应用价值,目前市面上比较有名的像是Lynx(Blue Cat

22、Linux、MontaVista(Hard Hat Linux) Lineo(Embedix Linux、FSMLabs(RTLinux)、 Zentropix(RealTime Linux)与 Coollogic(On-Channel Linux)等。通常,即时性系统(RTS: Real-Time System)可从工作的特性来加以匾分,可分为 三称:一为硬即时性系统(hard RTS),通常指其上的工作皆不能有差金昔,对时限 的要求较为严格,每个工作皆是迫切的(critical)。二为软即时性(soft RTS),具0容 许些许延迟。三为朝即时性系统(firm RTS)泛指一般嵌入式的即时

23、性系统而言, 其对时限的要求比hard RTS还要来得严,其之冏的关彳系如图3-1所示。图3-1即时性系统度帚究起来,要哉言十一个即时性的系统,使其能猴得即时性的回应,最主要关点 有三:一是外部中断的管理。二是行程或执行绪弓鱼制preemptive)多工的能力。三,需考量的行程于执行绪冏的排成问题。所言胃外部中断的管理,指的就是当一 个中断服矜发生执行时,允许接受优先权更高的中断服矜,这称方式稍之为巢状 中断(nested interrupt)或是当一个行程正在处理一个迫切性(critical)的工作时,不 允许其它中断介入(interrupt off)等。所言胃弓鱼制性多工能力,即优先权高的

24、行程会 拾尊优先权低的行程执行权执行,且系统会分配较多的时间名合它;而另一称稍为中断的弓鱼制性,即优先权高的中断会插断优先权低的中断。于行程排程方面,仍 需考量到行程冏排程时间分配公平性、排程策略于行程选择决定性。事实上, Linux核心是属于非弓鱼制性(non-preemptive)的多工,其不允许中断一个正在处理 迫切性(critical section)工作的行程,但它可以允许巢片犬中断,且硬体必需支援。目前在Linux上加入实时的方式有以下几种。一称方式是架空Linux架构的概 念,即不直接采用Linux本身的任何功能,而以撰写驱动程序的方式实现,直接 控制晶片(8254)时序所产生的

25、中断呼叫,如此一来不管Linux系统呼叫的时间有 多长都已无关紧要了。像是新墨西哥科技大学所推出的NMT RTLinux就是采用 这种方式,可说是real-time Linux的鼻祖,但其它它就是一个实时驱动程序。而 为众人所熟知的实 时性程序界面(Real-Time Application Interface; RTAI)是DIAPM(Dipartimento di Ingegneria Aerospaziale - Politecnico di Milano ) 所提供的 是一套软即时程式发展介面,每一个即时的程式实H上就是一个模鲍(module), 可动憩载入或移除,一旦载入就变成了核心

26、的一部份。也可以这麽说,RTAI其 实和NMT RTLinux是相同的束西。只是RTAI额外的定羲了一鲍硬体描述介面(Real-Time Hardware Abstraction Layer; RTHAL) 一个于 Linux 核心*菁通的介面, 有了这鲍程式介面在于Linux作资料交换就更方便多了,且对Linux核心的程式 码褊修减到最小,使得RTAI于Linux的发展更具透明化。主要构成RTAI的基 本元件有三,中断分配器(interrupt dispatcher)、排程(scheduler)于行程通讯(IPC, 其利用FIFO于dispatcher建到Linux于RTAI冏的资料交换。)

27、。其架构如图3-2 所示:T1T2TASKSAPPLICATIONSLINUXCctnm.IPtJ(FIFO)Schedi.iletSchedulerHW Managem etj.Internet DispatcherProcessorP etipher;ilInternet DispatcherProcessorP etipher;ilICrinm. IPC(FIFO)图 3-2 RTAI ArchitecctureKURT是由Kansas大学所研发的即时操作系统,它和NMT RTLinux及RTAI有 很大的不同,其可以呼叫Linux的系统函式(system call),是一很大的突破,但

28、其 排程方面以时间驱动的方式排程,即时性的行程很容易影警到原本Linux的行 程,因为受限于原本的Linux的系统架构,使得系统的反应时间雉以掌控。另一 套RED-Linux改善了 KURT的缺点,提出了拾先查核点(preemption point)的方法 改善了系统的反应速度。RED-Linux目前进行POSIX相容性的移植工作,实现 其即时排程、言十时器于sporadic server的工作。而由FSMLab(一个有趣的名字 Finite State Machine Laboratory)所提出的 RTLinux 是一套真正 hard RTOS,其对 核心做了全面性的修改,已不是原本核心的

29、面貌,其主要针对入式即时系统在 PowerPC平台上的研究开发LinuxPPC。4.应用计划上,我们实现一混合式的电话交换机(Hybrid IP PBX),以Linux做为我们的 嵌入式操作系统并加上实时性(real-time extension)的能力,上层则是整合Telogy 的策略方案来实现电话交换机的功能其关系与软件架构图如图4-1于4-2所禾图4-1 CCL Hybrid IP PBX高阶架构关系图MXP ELIXIkinhviirrSLK BAAFlashDriver*DiikiSwitchIllgLMust.- - _ - -r- _ -Viruml PlwfiieFEIVRPh

30、 口MllkotiePhyRw。珅 FhaibeO.S (Real-Time EmbeddHlDriver图4-2 PBX软件名田部方块图5.未来的应用与发展Linux操作系统已风行全球,国内外软硬件厂家纷纷致力其研究发展,应用 Linux来发展相关的软件硬件产品,为的是希望能在全球Linux软件市场的版图 上找到立足点。资策会于6月1日所举办的掌握IA商机二千年Linux趋势 研讨会中,初试啼声。由资策会系统软体实验室自行研发Embedded Linux, 将角逐于国际市场于那些国际大厂如全美达(Transmeta)、东芝(Toshiba)和美 国国家半导体合作开发处理器于的资讯家电的应用上

31、,并推出嵌入式Linux资讯 家电产品的解决策略;且已于东元集团签约,将技术移移东元开发资讯家电产 品。宏基集团也看好Linux将是资讯家电产品的灵魂,将取代现行的微软视窗 操作系统成为资讯家电的主流的操作系统,并转投资腾研科技开发嵌入式Linux 操作系统的平台,目前已完成精简型终端机、网路伺服器于上网机等三项产品, 并配合宏基集团内部的XC计划。趋势科技也不甘示弱,转投资成立首家Linux 软体公司新网趋势,主推Linux网际网路伺服器 eStation”,主打中小企业; 在国内产品的市场于震旦行合作,未来规划在日本上市,跨足国隙。一个由南台 湾的本土软体公司网虎国际也将前进国际舞台,并规

32、划在美上市;目前已开发了 多国语言的版本-XLinux 1.0,同时也进军了大陆市场。而翔威国际由资策会衍 生成立,可谓为乱世枭雄;目前主要股束为华硕集团,主要以代理美国Caldera 公司的OpenLinux,并进行Linux系统的中文化工程,同时研发其中文的应用 软体。目前并计划进行架哉中文Linux网站,将以美国Caldera的网站为蓝本, 并加入符合国人使用的习惯的友善功能,屈时Linux中文使用者若有任何疑雉 雅症皆可即时的猴得解答。目前言十重投入embedded linux研发的瘢家,尚有文佳 科技、网基科技、桓基科技于递讯科技等皆相继投入这场兢赛中。而于日本方面, 像Sony、N

33、EG束芝富士通日立三菱于TurboLinux日本分公司发起了 Emblix 日本嵌入式Linux联盟,旨在开发业界统一的Linux操作系统,以用于各式电 子数码的产品上,目前这个联盟已有23家日本公司加入。由于以上的讯息可看 得出来Linux潜在的商机于其一触即发的力量,让你不得不注意它。6.总结基于以上的介,%已,相信你已对嵌入式系统与即时性系统,就其定义、技术与应用 层面已有了清楚的认知,且感受到Linux所带来的旋风与魅力,可预见的未来 Linux的市场定能与微软相互匹敌,且Linux发展的策略与精神,其脚步必定比 微软的操作系统更快且系统更稳定,就让我们一起拭目以待吧。计划相关资讯本文系工研院电通所执行经济部委托之网迹网路交换机技术

温馨提示

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

评论

0/150

提交评论