Embedded 版 (精华区)

发信人: he (无情的雨), 信区: Embedded_system
标  题: 把握嵌入式Linux发展命脉(转寄) 
发信站: 哈工大紫丁香 (2001年06月08日12:25:25 星期五), 站内信件

把握嵌入式Linux发展命脉

刘文峰


Linux激情遭遇嵌入式

对于嵌入式系统,大家早已不陌生。随着信息家电(Information Applianc
e)等应用的呼声越来越高,掀起了业界对嵌入式系统的“追逐”热潮。而L
inux以其独有的魅力,迅速成为这一领域的主角。显然,将Linux应用于嵌入
式系统的开发有如下一些优点:
Linux自身具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运
行环境,并且可以跨越在嵌入式系统开发中的仿真工具(ICE)的障碍。
内核的完全开放,使得可以自己设计和开发出真正的硬实时系统;对于软实
时系统,在Linux中也容易得到实现。
强大的网络支持使得可以利用Linux的网络协议栈将其开发成为嵌入式的TCP
/IP网络协议栈。
值得一提的是,在Linux之前,第三代的嵌入式系统已经有相当长的一段开发
历史。因为信息电器概念的产生,使得一部分厂家决定使用专有嵌入式系统
或者一般操作系统来做嵌入式应用的开发,比如使用VxWorks、pSOS或者Mic
rosoft Windows 98/NT/CE等系统。但是,在Linux出现并且崭露头角之后,
根据一家专门进行嵌入式Linux系统信息发布的网站http://www.linuxdevic
es.com的调查,有52%的用户决定在未来24个月使用Linux作为嵌入式系统的
开发原型,而只有21%的人仍然使用专有操作系统,19%的人仍然使用Window
s系列操作系统做嵌入式系统开发。这充分说明了利用Linux开发嵌入式系统
的生命力。

各具特色的嵌入式Linux系统

嵌入式Linux系统开发已经开辟了很大的市场,出现了一批新型的公司参加这
方面的竞争,他们利用自己掌握的用Linux达到嵌入式的方法,吸引投资,开
发出成型的产品,如Lineo、TimeSys、FsmLabs等;也有一些传统的Linux公
司开辟了这方面的研究,如RedHat、VA Linux等;更值得重视的是,一些传
统的大公司如IBM、SGI、Motorola、Intel等也进行了Linux的嵌入式方面的
研究和开发; 另外还有一些开发专有嵌入式操作系统的公司,如Lynx公司从
研究和开发; 另外还有一些开发专有嵌入式操作系统的公司,如Lynx公司从
专有操作系统方向转型到嵌入式Linux系统,并且更名为LynuxWorks。
这些公司的产品主要分为三类。第一类是专门为Linux的嵌入式方向而做的,
如何让Linux更小、更容易嵌入到体积要求和功能、性能要求更高的硬件中去
是他们的产品开发方向,如MontaVista的Hard Hat Linux等;第二类是专门
为Linux的实时特性设计的产品,将Linux开发成实时系统尤其是硬实时系统
,应用于一些关键的控制场合(不仅仅是信息电器),如Fsmlabs公司,开发
出来的RT-Linux产品已经用在工业控制的很多方面,如葡萄牙的Coimbra大学
已经利用RT-Linux实现了化工生产控制厂里用来控制反应和程序控制的系统
; 第三类的产品就是将实时性和嵌入式方案结合起来的方案,很多公司都这
么做,并且提供集成化的开发方案,如Lineo、TimeSys等等。

RT-Linux 内核互换
(网址:http://www.fsmlabs.com)
RT-Linux(Real Time Linux)是由Fsmlabs公司开发的,其最新版本是3.0b
eta版(针对Linux-2.4.0-pre版本内核),最新的稳定版本是2.2版本。RT-
Linux是利用Linux进行实时系统开发比较早的尝试,新墨西哥州大学计算机
系的Victor Yodaiken和Michael Baranov在1996年就开始了对RT-Linux的开
发。根据Linuxdevices.com的调查情况,有5%的用户已经将RT-Linux使用到
了他们的嵌入式应用中。
RT-Linux的原理是将Linux的内核代码做一些修改,将Linux本身的任务以及
Linux内核本身作为一个优先级最低的任务,而实时任务作为优先级最高的任
务,即在实时任务存在的情况下运行实时任务,否则才运行Linux本身的任务
。实时任务不同于Linux普通进程,它是以Linux的内核模块(Linux Loadab
le Kernel Module, LKM)的形式存在的。需要运行实时任务的时候,将这个
实时任务的内核模块插入到内核中去。实时任务和Linux一般进程之间的通信
通过共享内存或者FIFO通道(用Linux虚拟字符设备)来实现。通用的RT-Li
nux原理通过图1来表示。
从图中可以看到,RT-Linux实际上工作在Linux内核和硬件中间,它最先知道
硬件的信息,可以得到最快的响应速度; 实时任务直接和RT-Linux内核进行
交互,缩短了到硬件的时间,也提高了实时性。并且,实时任务和Linux普通
进程之间也有通讯方式,对实时任务的监控可以在Linux进程这一端执行。这
种实现方法可以充分利用Linux的强大功能和RT-Linux的实时性能。

Linux/RT 内核改动模块化

(网址:http://www.timesys.com)
TimeSys公司的Linux/RT系统吸收了两项Linux实时化的技术。第一项是RTAI
(Real Time Application Interface),它的开发道路和RT-Linux的方案相
近,不过在处理对Linux内核改动方面,RTAI做的改动更加模块化; 在对Lin
ux的内核升级的时候,将RT-Linux升级起来比较困难一些,因为它的硬件抽
象层和Linux本身的代码之间的界限不是很清楚; 但是RTAI做到了一个清晰的
硬件抽象层RTHAL(Real Time Hardware Abstract Layer),将Linux和RTA
I之间的模块化划分清楚。并且针对RTAI,开发了lxrt(Linux-RT),让RTA
I可以调用Linux本身的系统调用。
I可以调用Linux本身的系统调用。
第二项技术是RED Linux(Robust Embedded)系统。该系统实现的不是硬实
时系统,它是通过一个“抢占点”(Preemption Point)来获得系统的实时
性能,它可以直接使用Linux的系统调用,这种调用是通过一个Linux/RK(L
inux/Resource Kernel)来实现的。在Linux/RK中还包括了RED Linux的特殊
的调度器,这种调度的方法是将调度器分成两个部分,一部分在内核空间中
,另一部分在用户空间中。在内核空间中的那部分是调度器的分发器(Disp
atcher),在用户空间的部分是调度器的分配器(Allocator)。调度分配器
可以是一个嵌入式应用的一部分,也可以是一个独立的单位,它用来管理一
系列的实时进程,将应用中的请求转换成内核可以理解的格式。
吸收了这两项技术的TimeSys公司,开发了Linux/RT系统。Linux/RT建立在L
inux/RK调度功能的基础上,支持RED Linux的事件日志系统。并且为了保持
和TimeSys以前的系统兼容(公司以前的系统都是建立在RTAI的系统之上),
还包含了RTAI。在运行的时候,可以并只能将任一种实时环境导入。并且它
还提供了QoS(Quality of Service),让实时的应用性能质量得到保证。

Embedix 个性化内核

(网址:http://www.lineo.com)
Embedix和基于Embedix的一整套嵌入式Linux开发环境是由Lineo公司开发的
。Embedix是基于PowerPC和x86平台开发的,它提供了Linux的强大功能,还
可以对需要功能进行剪裁,对嵌入式设备进行支持。通过使用Embedix可以为
自己的嵌入式应用创建一个个性化的内核。Embedix的设计使用了模块化的设
计方案,方便剪裁系统,从而可以生成最合适需求的Embedix内核,达到体积
和功能的最优化。同时Lineo还提供了基于Embedix的集成开发环境、实时扩
展方案、GUI接口等等。其中,集成开发环境包括了内核远程调试器、实时任
务调试器和跟踪器等等。

Blue Cat Linux开放源码

(网址:http://www.lynuxworks.com)
Blue Cat Linux是由LynuxWorks公司提供的。Blue Cat是基于开放源码的模
式进行开发的。它基于Red Hat 6.1和Linux 2.2.12-20内核,允许使用运行
Red Hat Linux的交叉平台机器开发嵌入式应用系统。目前Blue Cat也支持3
2位的PowerPC和Pentium两种微处理芯片。同时LynuxWorks公司提供了Blue
Cat开发工具,包括C和C++编译器和针对目标芯片的汇编器。并且现在的开发
工具正在准备做Microsoft Visual Studio上的移植。

Hard Hat Linux高性能小体积

(网址:http://www.mvista.com)
MontaVista公司的Hard Hat Linux是专门为将Linux做成嵌入的系统而推出的
。可以根据Hard Hat Linux为系统启动和运行环境做出合适于嵌入式硬件系
统环境的配置,以获得最好的性能和最小的体积。针对Hard Hat Linux,Mo
ntaVista公司提供了CDK(Cross Development Kit)用作Hard Hat的交叉开
ntaVista公司提供了CDK(Cross Development Kit)用作Hard Hat的交叉开
发环境,提供了C/C++的编译器、调试器、性能监控工具和网络工具,支持在
x86/Pentium处理器芯片上的Red Hat Linux上运行CDK的PowerPC版本,通过
以太网或者串口线对目标系统进行开发,目标系统是PowerPC体系结构上的H
ard Hat Linux系统和针对Hard Hat Linux开发的嵌入式应用。这种环境就是
MontaVista的最大的特性——交叉开发调试环境。图2表示了Hard Hat Linu
x开发嵌入式应用的交叉环境。

为嵌入式Linux“把脉”

综观当前嵌入式Linux系统的产品和技术情况,要满足用户市场的需求还有很
长的一段路要走。基于Linux的嵌入式技术走向成熟,还需要围绕下面三个方
面做进一步发展:
1.实时系统的可扩展性
将Linux开发改造成为实时系统,最初可能是出于一些技术工程师的爱
好而兴起的,但是Linux作为一种通用操作系统,它本身的发展不可能考虑基
于它的实时系统和它的兼容性问题,那么,如何让这种实时系统能够具有向
上和向外的扩展性显得尤为重要。所谓的向外扩展,就是让实时性的支持面
向的范围更为广泛,支持的设备更多。目前的开发面向的设备限于较简单的
有实时需求的串/并口数据采集、浮点数据计算等等,而实时网络等实时系统
的高级应用还需要进一步的发展。所谓向上扩展,是这种通过Linux内核改造
成的实时系统的方式尤其需要注意的地方。在Linux内核中做出一些改动可以
获得系统对实时任务运行的支持,但是在Linux内核有比较大的变动的时候,
实时系统的升级就很难做到同步了。比如说,Fsmlabs公司的RT-Linux在Lin
ux从2.0版本升级到2.2版本之后,花了半年多时间才将新版本的RT-Linux V
2.2系统推出。
2.面向嵌入目的的Linux内核改造
Linux的内核体系采用的是Monolithic,和MicroKernel结构相比,前者
更适合于实时系统,而后者更适合于嵌入式系统。因为在Monolithic的体系
结构中,内核的所有部分都集中在一起,可以有效获得处理机资源,系统的
各部分可以直接互相沟通,紧急任务的切换时间短,系统的响应速度也快,
但是在系统比较大的时候,维护起来比较困难,而且所有的部件在一起编译
连接,体积也比较大,这样不太满足嵌入式系统的资源有限的要求。对于Mi
croKernel的体系结构,在内核中只包括了一些基本的内核功能如创建和删除
任务、任务调度、内存管理和中断处理等部分,而文件系统、网络协议栈等
部分都是在用户内存空间运行,这样可以减小内核的体积,同时方便整个系
统的升级、维护和移植,但是执行效率就不如Monolithic类型的内核的系统
了。
使用Linux内核,在实时性和嵌入需求中间采取一种折中的方案就是将Monol
ithic的内核改造成部分的MicroKernel体系结构的内核。如何做这个改动是
我们需要解决的一个技术难点。
3.集成开发环境
提供完整的集成开发环境是广大嵌入式系统开发人员的最大需求。一个完整
的嵌入式系统的集成开发环境需要提供如下工具:
编译/连接器: Linux实际上应该称为GNU/Linux ,这是因为在Linux下的开
编译/连接器: Linux实际上应该称为GNU/Linux ,这是因为在Linux下的开
发几乎都是基于GNU提供的一系列工具尤其是使用了GNU的强大编译器工具链
——gcc工具链。基于GNU工具链的开发和改造,尤其是面向嵌入式体系结构
,如微控制器、SuperH处理器、StrongARM处理器等等,是工具链方面的巨大
需求。
内核调试/跟踪器: 一般开发嵌入式操作系统的程序调试和跟踪都是使用仿
真器(ICE)来实现的,但是使用Linux系统做原型的时候,可以绕过这个障
碍,直接使用内核调试器来做操作系统的内核调试和查错。一般使用的方式
是基于GNU的调试器gdb的远程调试功能,由一台客户机运行调试程序调试宿
主机运行的操作系统内核。其中,使用远程开发时还可以使用交叉平台的方
式,如在Windows 平台下的调试跟踪器对Linux的宿主系统做调试。
集成图形界面开发平台:包括编辑器、调试器、软件仿真器、监视器都应该
提供良好的界面,提高开发效率。同时,还需要提供基于图形界面的特定系
统定制平台,提供良好的扩展性。
国外的开发如火如荼,国内的开发也不甘示弱。863重点支持项目中就有使用
Linux作为嵌入式系统开发的方向。在嵌入式系统中具有强大的生命力和利用
价值,很多公司和大学都不同程度的表现出对这个方面的兴趣。相信嵌入式
Linux的发展将带领我们进入嵌入式系统的新时代!

Copyright(C) ccw.com.cn,All rights reserved
中国计算机世界出版服务公司版权所有 
--

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.235.250]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.655毫秒