| 网站首页 | 新闻 | SOPC | FPGA | DSP | ARM | 嵌入式操作系统 | 下载 | 所有产品 | 留言 | 论坛 | 购买指南 | 网络协议 | 驱动设计 | 
您现在的位置: 21嵌入式控制研究室 >> 嵌入式操作系统 >> Linux >> 文章正文 用户登录 新用户注册
实时操作系统分析以及比较           ★★★ 【字体:
实时操作系统分析以及比较
作者:佚名    文章来源:21control    点击数:    更新时间:2005-12-26
RTOS在国内主要有vxworks和pSOS,现在还有nuclear、QNX、WinCE。

说起好坏吗,其实,vxWorks要好一些,可能;不知道以前国内研究所一直用的VRTX是不是都被vxworks所替代了呢。据说因为VRTX是最早商业化的RTOS,60年代就开始卖了,所以呢,全是汇编,改都改不过来,还有就是对TCP/IP的支持一直不好,vxWorks是从VRTX公司出来的人做的,号称make VrtX Works!,所以就有了vxWorks的名字。

nuclear是卖源代码的,而且不卖licence,就是说,你设计了一台路由器,生产的时候不用为你的每一台路由器都付30美圆的licence费用给nuclear的那个公司。

QNX和WinCE都似乎更注重于GUI图形界面方面的东西,当然,QNX好象还号称在别的方面也很出色,它是一家加拿大的公司做的。QNX我曾经有一张DEMO盘,1.44M的小盘,用它启动,就能够实现图形界面和MODEM拨号上网。(偶现在懒得去找那张DEMO盘了,实在想要就发个mail给我,偶去找来给你,在学校FTP那个应该也是,我没用过)但是请别以为QNX就是用在一般DESKTOP PC机上的啊。QNX是在X86体系上面开发出来的,这和别的RTOS不一样,别的好多RTOS都是从68K的CPU上面开发成熟,然后再移植到X86体系上面来的(对68K不熟悉?这在嵌入式开发里面用的很广泛啊,motorola公司的,VME上面用的太多了),但是QNX就是直接在X86上面开发的然后近年才在68K等CPU上面能用。WinCE么,刚出来的时候还是soft realtime,不是hard realtime,(不知道这个概念?在那本“入门书”上面有!),所以一开始的时候大家就很鄙视WinCE,觉得。。。//hehe。。。但是,你看看现在WinCE那浩大声势?哈哈

pSOS吗,和vxWorks一起,是最最成熟的RTOS啦,打个比方,用pSOS和vxWorks来开发路由器、交换机、大型电讯设备、卫星通讯设备、航天器、军事控制设备,那是最合适的啦,您知道吗,有些东西是不能死锁的,稳定性是第一位的,比如747掉下来就死翘翘了:)当然啦,还有系统硬件设计上面的问题,比如双机热备份冗余设计之类的,不然电话交换机一坏,电讯局就整天挨批啦!那么QNX和WinCE呢,用来设计机顶盒、手持设备(手掌电脑、手机)、GPS设备(?)之类的需要漂漂界面的地方。

以上介绍的都是要卖钱的RTOS,估摸着您一般会买不起:(

穷人的RTOS在哪里?ucOS就是了,免费的,在学校FTP站点有人放过,不过好象不全;支持好多单片机、甚至支持DSP!还有eCOS在学校FTP也有热心人下好了,但是可惜不支持X86。免费的还有好几种呢,一种是美国军方以前用的叫什么了(RTEMS?错了)有几个站点,比如www.ucos-ii.com还有。。忘了!你如果IP能出国,去那个叫Alxxxx的搜索引擎找找看,比yahoo好多了!Yahoo上面也有那个Alxxxx的连接。

RTOS在全世界有好几百种,很多大公司都有自己的RTOS,lucent的还是免费的呢。

高性能但是又不用钱的RTOS,呜呜,象linux那样?看来我们是该想点办法了啊。

其实一个实用的RTOS,除了本身OS核心的性能要好之外,还有开发工具的好坏、编译器、调试器之类的,调过单片机程序的哥们一定很有感触吧。更重要的还有现在日新月异的各种新技术要往RTOS上面加。。。比如tcp/ip以及这么多的新的网络协议(比如internet 2?),web/browser,java(呵呵,不能叫“新”了)

那么多RTOS,你会问,我们怎么办呢?其实学了一种,别的也就大同小异了。还有一个概念就是,应用层的程序和RTOS之间用一个虚拟的接口接起来,以后无论你移植到哪个RTOS都方便得很,而且软件可以在虚拟的接口上面先调试,在硬件板子还没有出来之前软件就可以先调试了。开发RTOS和使用RTOS是两件事。使用RTOS开发的应用程序和RTOS是一起烧进FLSH芯片里面去使用,相当于你使用了RTOS厂商的BIN代码。
实时Linux与其它RTOS的比较

本文对四种实时操作系统(RTOS)特性进行分析和比较。它们是:Lynx实时系统公司的LynxOS、QNX软件系统有限公司的QNX以及两种具有代表性的实时Linux——新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux。

  近年来,实时操作系统在多媒体通信、在线事务处理、生产过程控制、交通控制等各个领域得到广泛的应用,因而越来越引起人们的重视。

  基本特征概述

  * QNX是一个分布式、嵌入式、可规模扩展的实时操作系统。它遵循POSIX.1(程序接口)和POSIX.2 (Shell和工具)、部分遵循POSIX.1b(实时扩展)。它最早开发于1980年,到现在已相当成熟。
  *LynxOS是一个分布式、嵌入式、可规模扩展的实时操作系统,它遵循POSIX.1a、POSIX.1b和POSIX.1c标准。它最早开发于1988年。
  * RT-Linux是一个嵌入式硬实时操作系统,它部分支持POSIX.1b标准。
  *KURT-Linux不是为嵌入式应用设计的,不同于硬(hard)实时/软(soft)实时应用,他们提出“严格(firm)”实时应用的概念,如一些多媒体应用和ATM网络应用,KURT是为这样一些应用设计的“严格的”实时系统。

  体系结构异同

  实时系统的实现多为微内核体系结构,这使得核心小巧而可靠,易于ROM固化,并可模块化扩展。微内核结构系统中,OS服务模块在独立的地址空间运行,所以,不同模块的内存错误便被隔离开来。但它也有弱点,进程间通信和上下文切换的开销大大增加。相对于大型集成化内核系统来说,它必须靠更多地进行系统调用来完成相同的任务。

  *QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快。
  *LynxOS目前还不是一个微内核结构的操作系统,但它计划使用所谓的“Galaxy”技术将其从大型集成化内核改造成微内核,这一技术将在LynxOS
3.0中引入。新的28Kb微内核提供以下服务:核心启动和停止、底层内存管理、出错处理、中断处理、多任务、底层同步和互斥支持。
  *RT-Linux实现了一个小的实时核心,仅支持底层任务创建、中断服务例程的装入、底层任务通信队列、中断服务例程(ISR)和Linux进程。原来的非实时Linux核心作为一个可抢先的任务运行于这个小核心之上,所有的任务都在核心地址空间运行。它不同于微内核和大型内核,属于实时EXE
(realtime executive)体系结构。其可靠性和可维护性对电信服务系统来说都不够理想。
  *KURT-Linux核心包括两个部分:内核和实时模块。内核负责实时事件的调度,实时模块为用户进程提供特定的实时服务。它不属于微内核结构。

  调度策略分析

  任务调度策略是直接影响实时性能的因素。尽管调度算法多种多样,但大多由单调率算法(RM)和最早期限优先算法(EDF)变化而来。前者主要用于静态周期任务的调度,后者主要用于动态调度,在不同的系统状态下两种算法各有优劣。在商业产品中采用的实际策略常常是各种因素的折中。

  QNX 提供POSIX.1b标准进程调度:
  * 32个进程优先级;
  * 抢占式的、基于优先级的正文切换;
  * 可选调度策略:FIFO、轮转策略、适应性策略。

  LynxOS 其调度策略为:
  * LynxOS支持线程概念,提供256个全局用户线程优先级;
  *硬实时优先级调度:在每个优先级上实现了轮转调度、定量调度和FIFO调度策略;
  * 快速正文切换和阻塞时间短;
  * 抢占式的RTOS核心。

  RT-Linux
在操作系统之下实现了一个简单的实时核心,Linux本身作为一个可抢占的任务在核内运行,优先级最低,随时会被高优先级任务抢占。
  * 用户可自行编写调度程序,它们可实现为可加载的核心模块;
  * 已实现的调度程序有:基于优先级的抢占式调度和EDF调度;
  * 基于优先级的调度使用“单调率算法”,它直接支持周期任务。

  KURT-Linux
可运行在两种状态之下:通常状态和实时状态。在通常状态下,所有进程都可以运行,但某些核心服务将带来中断屏蔽的不可预期性。实时模式只允许实时进程运行。

  * 支持FIFO调度策略、轮转调度策略和UNIX分时调度策略;
  *增加了SCHED-KURT调度策略,这是一种静态调度策略,使用一个特殊的调度文件记录预先定义好的待调度进程的参数。

  从以上简略描述可以看出,前三种调度策略实现较规范,特别是两种商业RTOS,遵循或部分遵循POSIX.1b实时调度标准。

  操作系统服务比较

  QNX的系统服务:
  *多种资源管理器,包括各种文件系统和设备管理,支持多个文件系统同时运行,包括提供完全POSIX.1及UNIX语法的POSIX文件系统,支持多种闪存设备的嵌入式文件系统,支持对多种文件服务器(如Windows NT/95、LAN Manager等)的透明访问的SMB文件系统、DOS文件系统、CD-ROM文件系统等。
  * 设备管理。在进程和终端设备间提供大吞吐量、低开销接口服务。
  * 图形/窗口支持。包括QNX Windows、X Window System for QNX、对MS Windows NT/95和X Window系统的远程图形连接。
  * TCP/IP for QNX。
  *高性能、容错型QNX网络——FLEET,使得所有连入网络的计算机变成一个逻辑上的超级计算机。
  *透明的分布式处理。FLEET网络处理与消息传递和进程管理原语的集成,将本地和网络IPC统一起来,使得网络对IPC而言是透明的。

  LynxOS的系统服务:
  * 网络和通信。由于使用UNIX/POSIX API,Lynx很适合于数据通信和Internet应用。又由于系统的开放性,网络软件很容易移植到Lynx上。同样,Lynx亦提供关键的电话通信协议,使之适用于电信系统的基础架构、操作和多媒体应用。
  * TCP/IP协议栈。Lynx自带优化的TCP/IP协议栈,提供高性能服务,如TCP头预测、高级路由算法、IP级多址广播和链路级高速缓冲。
  * Internet工具。包括,Telnet、Ftp、tftp、PPP、SLIP、实时调度的嵌入式Java虚拟机、嵌入式HTTP server、bootp、ARP/RARP、DNS域名服务、电子邮件、Perl、电话通信协议等。
  * SVR3流。LynxOS流机制为开发和移植基于流的驱动程序和应用提供了核心支持。
  *文件系统。实时的类UNIX层次结构文件系统:连续结构文件、带缓冲/不带缓冲、原始分区和原始设备访问。
  * 基于Motif的图形用户接口。
  * 分布式计算资源。SCMP与VME总线上的多处理结合,PCI桥服务、CompactPCI Hot-swap Services、Lynx/HA-DDS分布式数据系统。

  Linux的系统服务:
  近来,很多基于Linux的实时应用被开发出来,它具有成熟和丰富的资源。
  * UNIX用户的开发工具和应用软件都被移植到Linux上。
  * TCP/IP网络协议。
  * 各种Internet客户/服务端软件。
  * X Window。
  * C/C++、Java等语言编译器。

  上述系统的共同点是都提供了图形界面、各种网络支持等必要工具。QNX是一个更加符合传统“分布式”概念的操作系统,目标是把整个局域网变成一个大的超级计算机,使得网络的存在对用户透明,文件系统提供的服务也很丰富。但是,分布式的程度越高也意味着系统开销的增大。LynxOS则着意于提供丰富的网络服务,而Linux的最大优势则是经济,还可以通过新闻组或mailing
list快速地解决用户碰到的任何问题。

  系统开放性对比

  对于很多大、中型系统来说,大多数软件都是为UNIX平台编写的,因此RTOS是否提供POSIX/UNIX
API就显得很重要。

  QNX的开放性:
  * QNX的POSIX兼容性和其提供的UNIX特色的编译器、调试器、X Window和TCP/IP都是UNIX程序员所熟悉的。
  * 支持多种CPU:AMD ElanSC300/310/400/410、Am386 DE/SE、Cyrix MediaGX、x86处理器(386以上)、Pentium系列、STMicroelectronics 的STPC。
  * 多种总线:CompactPCI、EISA、ISA 、MPE (RadiSys)、STD、STD 32、PC/104、PC/104-Plus、PCI、PCMCIA、VESA、VME。
  * 各种外设:多种SCSI设备、IDE/EIDE驱动器、10M/100M以太网卡、Token Ring网卡、FDDI接口卡、多种PCMCIA设备、闪存、声卡等等。

  LynxOS的开放性:
  * POSIX.1a、1b、1c及BSD4.4等兼容性,使得遵循POSIX 1003或用于UNIX的程序很容易移植到LynxOS上。
  *支持多种CPU主板:包括CompactPCI(6U/3U)和标准PCI、VME/Eurobus、PC/104和PC/AT硬件等。
  *各种外设适配器:10/100BaseT Ethernet、SCSI接口、单/多通道串行控制器、单/双工并行口、时钟、计时器、IDE接口、高分辨率显示适配器等。

  Linux的开放性:
  * 用户可得到UNIX的全部开发工具。
  * 可使用市场上便宜又常见的硬件。
  通过分析,可以看到以上系统各有优势,因此,在平台搭造过程中,用户应根据自己的实际需要并结合性能价格比进行选择。
文章录入:fengfeiyi    责任编辑:fengfeiyi 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • 基于VxWorks实现自动发送彩信…

  • VxWorks实时操作系统下MPC82…

  • VxWorks及其在综合航空电子系…

  • 嵌入式移动数据库的特性

  • 嵌入式系统与普适计算

  • 利用VxWorks作Internet电话网…

  • Tornado开发工具

  • VxWorks组成部分

  • Vxworks下8139驱动加载step …

  • VxWorks/Tornado建立调试环境…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)