《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于Linux的嵌入式操作系统的研究现状及发展展望
基于Linux的嵌入式操作系统的研究现状及发展展望
王 成 刘金刚
摘要: 分析了当今主流的嵌入式Linux操作系统的特点,介绍了其研究现状,并展望了未来发展。
Abstract:
Key words :

  摘  要: 分析了当今主流的嵌入式Linux操作系统的特点,介绍了其研究现状,并展望了未来发展。

  关键词: 嵌入式系统  嵌入式操作系统  Linux

 

  嵌入式系统是从20世纪80年代的8位单片机发展起来的(一般把基于单片机的系统叫做传统的嵌入式系统)。8位单片机只需要直接编写单一的控制程序就能工作。它解决的问题相对单一,要求的运算量不大,运算速度不高。但是在90年代后期,随着互联网时代的来临,人类进入了后PC时代(80年代初出现PC机时称为前PC时代),许多电子设备需要增加TCP/IP联网的功能和更加智能化、更高运行速度的要求:例如多媒体音频、视频图像数据的采集、传输和处理(如MP3、MPEG4等);图形界面和触摸屏技术;无线控制技术与相应的软件协议(如BLUETOOTH、IRDA等)。面对这些需求,一方面,8位单片机“感觉到力不从心”;另一方面,嵌入式开发厂商也不愿意投入很多的时间去开发那些开发周期很长的产品。新一代的嵌入式系统便在这样的情况下诞生了(以下把新一代的嵌入式系统简称“嵌入式系统”)。

  嵌入式系统的定义有许多种,其中一种最直接和通俗的定义就是:一种专用的、控制特定设备的计算机系统。它的基本组成有三部分:嵌入式微处理器、嵌入式操作系统和在其上开发的应用程序,如图1所示。嵌入式微处理器是构成整个嵌入式系统的核心。它是嵌入式操作系统和开发应用程序的硬件平台。目前,嵌入式微处理器在市场上有很多,比较流行的有Motorola的32位嵌入式处理器系列:Cold fire系列、Dragon ball系列、PowerPC系列,还有MIPS系列、ARM系列、X86系列(Intel 386EX、AMD4xx)等。流行的嵌入式操作系统有:PSOS、VXWORKS、WINCE、QNX、LYNXOS、Palm OS、Embedded Linux(包括RT-Linux、UC-Linux等)。

 

 

1  嵌入式Linux操作系统

  自从1991年10月5日Linux问世到现在,仅仅12年的时间,而它在全球计算机产业界的影响却超过了之前的任何一个操作系统。Linux是一个成熟、稳定的网络操作系统,将它作为嵌入式操作系统具有很多显著的优点。首先,Linux的核心源代码是免费的,任何人都可以从互联网上得到。其次,Linux的核心代码是开放的,所有人都可以根据自己的意图修改和定制,开发适合自己的产品。第三,Linux核心代码可以裁减到130多字节,这可以大大地降低开发产品的成本和适应嵌入式系统的发展趋势。第四,Linux核心代码采用移植性比较好的C语言编写,所以它可以很容易地移植到很多微处理器上。目前流行的嵌入式Linux操作系统有:μC-Linux、RT-Linux、EMBEDIX、Hard Hat Linux、MONTAVISTA Linux、LYNXOS、Blue Cat Linux、ET-Linux、Midori等。下面对一些主流嵌入式Linux操作系统各自的特点进行分析和介绍。

1.1 μC-Linux

  μC-Linux是LINEO公司在Linux2.0的基础上裁减得到的。在μC-Linux这个英文单词中, μ表示Micro,小的意思,C表示Control,即控制,所以μC-Linux就是Micro-Control-Linux,字面上的理解就是“针对微控制领域而设计的Linux系统”。μC-Linux内核要比原Linux 2.0内核小得多,但保留了Linux操作系统的主要优点。

  (1)内存管理。这部分是μC-Linux与传统Linux的最大区别所在。标准Linux是针对有MMU的处理器设计的。在这种处理器上,虚拟地址被送到MMU,把虚拟地址映射为物理地址。对于μC-Linux来说,其设计针对没有MMU的处理器,即μC-Linux不能使用处理器的虚拟内存管理技术。μC-Linux仍然采用存储器的分页管理,系统在启动时把实际存储器进行分页,在加载应用程序时分页加载。所以实际上μC-Linux采用实存储器管理策略。

  (2)内核加载方式。μC-Linux的内核有二种运行方式。①Flash运行方式:把内核的可执行映像文件烧到Flash上,系统启动时从Flash的某个地址开始逐句执行。这种方法实际上是很多嵌入式系统采用的方法。②内核加载方式:把内核的压缩文件存放在ram上,系统启动时读取压缩文件并在内存里解压,然后开始执行。这种方式相对复杂一些,但是运行速度更快。

  (3)可执行文件格式。μC-Linux系统使用flat可执行文件格式,如表1所示。

 

  (4) μC-Linux的主要特色如表2所示。

 

 

  (5)应用程序库。μC-Linux小型化的另一个做法是重写了应用程序库。相对于越来越大且越来越全的GLIBC库, μCLIBC对LIBC做了精简。μC-Linux对用户程序采用静态链接的形式,这种做法会使应用程序变大,但是基于没有MMU的特性,只能这样做,同时这种做法也更接近于通常嵌入式系统的做法。

  (6)已经移植到μC-Linux下的用户程序很多,有ftp(文件传输协议)客户端程序、free swan(IPSEC(Internet安全协议)的Linux实现)等。

1.2 EMBEDIX

  EMBEDIX是LINEO公司在2000年初发布的第一版基于流行桌面的Linux操作系统。它是一种嵌入式Linux软件解决方案,增加了能量和Linux的连通性来定制嵌入式设备。这是一个专门用于机顶盒、个人数字助理(PDA)和其他小型设备的Linux系统。EMBEDIX不需要硬盘,可以运行在使用PowerPC芯片或英特尔兼容芯片的终端设备上。

  LINEO将实时技术集成到EMBEDIX SDK中,以此为嵌入式设备的开发者提供软件和硬件实时能力。EMBEDIX SDK支持并包括Metrowerks Code Warrior,是一种集成开发环境(IDE)。它将文本编辑器、项目管理器、搜索引擎、编译器、连接器和调试器混合到一个集成应用软件中,能够缩短产品开发周期,减少产品成本。EMBEDIX SDK还支持Windows下开发,具有对本地Windows应用软件和工具的完全访问能力,并且还给开发者提供虚拟开发环境(带有可视化的集成环境)。这对Windows开发者来说是十分便利的。

1.3 RT-Linux

  RT-Linux是世界上最早出现的实时嵌入式操作系统。RT-Linux并没有对Linux内核做大的改动,而是利用Linux内核模块机制,采用插入模块的方式,通过一个独立的内核来管理实时任务。RT-Linux属于硬实时,将Linux内核设计为可被抢占的。其主要方法是实现一个实时内核来负责处理硬件消息,接管中断。实时任务可在该内核上直接运行,而把Linux内核本身作为优先级最低的Idle Task运行。该实时内核有自己的基于优先级的调度算法,Linux内核随时可以被优先级更高的实时任务抢占。实时任务与Linux进程之间通过特定的通信机制(如FIFO)进行通信。运行在Linux内核之上的进程则可以完成一些非实时功能,如图2所示。RT-Linux从来不用等待Linux释放资源,不要求额外的内存,也不要求和任何数据结构同步(在控制得很紧的情况下除外)。RT-Linux目前支持二个商业版本:开放版(GPL)和专业版(二进制形式发布)。专业版支持的硬件体系结构比开放版更多。

 

 

  RTLinux/Open3.1是FSMLABS公司推出的一款硬实时操作系统,其主要特点:(1)标准API;(2)优秀的实时性能;(3)遵循GNU开放源代码;(4)丰富的工具套件(包括GDB调试器、GNU编译器等);(5)可靠的实时编程模式(分离实时和非实时代码,操作系统和应用软件中的关键实时组件将给予绝对的优先权,从而可以避免非实时组件影响实时组件的响应时间)。

1.4 MONTAVISTA Linux

  MONTAVISTA Linux是业界领先的嵌入式Linux解决方案供应商MONTAVISTA公司最新的嵌入式Linux操作平台。该产品广泛地支持各类嵌入式应用,为通信基础设施、网络、消费电子、仪表以及工控设备提供标准的嵌入式Linux平台。

  MONTAVISTA Linux 2.1是开放源代码、免版税、100%来自纯Linux源代码。MONTAVISTA Linux 2.1专业版广泛地支持各类嵌入式处理器,包括6种业界领先的处理器:x86/IA-32、PowerPC、Strong ARM、XSCALE、ARM、MIPS。MONTAVISTA Linux 2.1包括K-Develop IDE、目标配置工具、库优化工具,并提供超过215个应用软件包。它的一个重要的改进是跨平台开发,支持14个主机开发环境,包括Red Hat、Mandrake、Solaris以及VM-Ware on Windows NT/2000等。

1.5 Blue Cat Linux

  Blue Cat Linux是基于Linux-2.4内核改造而来的。支持多种处理器,包括Intel XSCALE、Intel IXP1200网络处理器、嵌入式Intel Architecture等。Blue Cat 4.0版本有很多的特性:

  (1)为内核调试提供独特的GDB扩展功能;

  (2)广受欢迎的开发环境和漂亮的用户界面;

  (3)能够快速对内核的功能、大小等进行配置;

  (4)可以为Windows或者Linux主机的开发提供Blue Cat Basic Support;

  (5)使用开放构架的电源管理和优化方案;

  (6)加载和使用已经经过测试的应用组件更加方便。

  Blue Cat RT是基于FSMLABS的RT-Linux技术开发的产品,可以集成到Blue Cat Linux套件当中。把Blue Cat Linux和Blue Cat RT结合起来可以为用户提供一种混合型嵌入式系统的解决方案。在一般情况下使用普通的嵌入式Linux内核;而在特定的情况下使用具有实时性能的内核。这样它就能够提供同时满足开放标准嵌入式和实时需求的嵌入式操作系统解决方案。

2 嵌入式Linux操作系统的发展展望

  以信息家电为代表的互联网时代嵌入式产品,不仅为嵌入式市场展现了美好前景,注入了新的生命,同时也对嵌入式操作系统技术提出新的挑战。

  (1)嵌入式应用软件的开发需要更加强大的开发工具和操作系统的支持。随着Internet技术的成熟、带宽的提高,Internet提供的信息内容日趋丰富,应用项目多种多样,像电话手机、微波炉等嵌入式电子设备的功能不再单一,电气结构也更为复杂。为了满足应用需求,设计师们一方面采用更强大的嵌入式处理器(如32位、64位RISC芯片或信号处理器DSP)增强处理能力,同时还采用实时多任务编程技术和交叉开发技术来控制功能复杂性,简化应用程序设计,保障软件质量和缩短开发周期。另外,嵌入式系统还应需要一套高度简练、质量可靠、应用广泛、易开发、多任务并且价格低廉的操作系统。所以Linux作为一个完全免费和开放的OS,在今后必然是开发嵌入式系统首选的操作系统。

  (2)网络成为必然趋势。为适应嵌入式分布处理结构和应用上网的需求,嵌入式系统要求配备一种或多种标准的网络通信接口(IEEE1394、USB、CAN、Blue tooth等)和相应的网络协议簇(TCP/IP、SNMP等)支持。而Linux与生俱来的优秀网络血统,更为上网应用的发展铺平了一条宽广平坦的道路。

  (3)实现小尺寸、微功耗和低成本。在一定程度上讲,嵌入式产品的微型化、低功耗和低成本与高的处理器的性能是一对不可调和的矛盾。所以要达到微型化,就要求相应地降低处理器的性能;同时也就相应地提高了对嵌入式软件设计技术要求。对于系统的小型化,Linux可以说在众多的嵌入式操作系统中是最优秀的。Linux由于源代码是公开免费的,所以可以根据需要进行裁减、修改等,从而实现系统软件微型化。

  (4)提供精巧的多媒体人机界面(HMI)。嵌入式设备之所以为亿万用户乐于接受,重要因素之一是它们与使用者之间的亲和力和自然的人机交互界面。人们与信息终端的交互要求以GUI屏幕为中心的多媒体界面。目前嵌入式Linux的GUI系统有Micro Windows、Open GUI、Qt/Embedded、Mini GUI等。总之,能有一个让客户非常满意的人机界面,也是今后嵌入式系统的发展方向。

  (5)嵌入式操作系统走向融合。现在面对如此多的嵌入式操作系统,开发者有时感觉到很不方便。这是因为,如果在基于OS1的操作系统上开发的应用程序,现在想在OS2上用,则必须进行移植才可使用。随着嵌入式设备的不断发展,将来必将会出现一个能支撑几乎所有应用程序的操作系统。或者说将来的嵌入式操作系统必将走向融合。而惟一能担当此任的无疑是Linux。因为它提供了一个让任何人都能自发地为其发展找寻出路的游戏规则。

3  结束语

  根据一家专门进行嵌入式Linux系统信息发布的网站http://www.Linuxdevices.com的调查,有52%的用户决定在未来24个月内使用Linux作为嵌入式系统的开发原型,而只有21%的人仍然使用专有操作系统,19%的人仍然使用Windows系列操作系统做嵌入式系统开发。这充分说明了利用Linux开发嵌入式系统的生命力。由于Linux嵌入式系统的强大的生命力和利用价值,越来越多的公司和大学都不同程度地表现出对它的研究兴趣。所以基于Linux的嵌入式系统必将是未来嵌入式领域的领导者。

 

参考文献

1 李善平,刘文峰,王焕龙.Linux与嵌入式系统.北京:清华大学出版社,2002

2 探矽工作室.嵌入式系统开发圣经.北京:中国青年出版社,2002

3 邵贝贝译.嵌入式实时操作系统uc/os-Ⅱ(第2版).北京:北京航空航天大学出版社,2003

4 毛德操,胡希明.Linux内核源代码情景分析(上下).杭州:浙江大学出版社,2001

此内容为AET网站原创,未经授权禁止转载。