实时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的悉数开发东西。
* 可运用市场上廉价又常见的硬件。
经过剖析,能够看到以上体系各有优势,因而,在渠道搭造过程中,用户应根据自己的实践需要并结合功能价格比进行挑选。