您的位置首页>企业动态>

不同的实时嵌入式Linux操作系统有什么差异

导读大家好,我是极客范的本期栏目编辑小友,现在为大家讲解不同的实时嵌入式Linux操作系统有什么差异问题。嵌入式实时操作系统(RTOS)。嵌入式

大家好,我是极客范的本期栏目编辑小友,现在为大家讲解不同的实时嵌入式Linux操作系统有什么差异问题。

嵌入式实时操作系统(RTOS)。嵌入式系统是“控制、监视或辅助操作机器和设备的设备”。

实时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不是为嵌入式应用而设计的,它不同于硬/软实时应用。他们提出了“坚定”实时应用的概念,比如一些多媒体应用和ATM网络应用。KURT是为这类应用设计的“严格”实时系统。

建筑的异同。

实时系统的实现多为微内核架构,使得内核小巧可靠,易于固化ROM,并且可以模块化扩展。在微内核架构系统中,操作系统服务模块运行在独立的地址空间中,从而隔离不同模块的内存错误。但是它也有弱点,进程间通信和上下文切换的开销大大增加。与大型集成内核系统相比,它必须进行更多的系统调用才能完成相同的任务。

*QNX是一个微内核实时操作系统,其核心只提供进程调度、进程间通信、底层网络通信和中断处理四项服务,其进程运行在独立的地址空间。所有其他操作系统服务都是作为协作用户进程实现的,因此QNX内核非常小(QNX4.x约为12Kb),运行速度非常快。

*LynxOS目前还不是一个微内核操作系统,但它计划通过使用所谓的“Galaxy”技术将其从一个大型集成内核转变为一个微内核,这将在LynxOS 3.0中引入。全新的28Kb微内核提供以下服务:内核启动和停止、底层内存管理、错误处理、中断处理、多任务处理、底层同步和互斥支持。

*RT-Linux实现了一个小型实时内核,只支持底层任务的创建、中断服务例程的加载、底层任务的通信队列、中断服务例程(ISR)和Linux进程。原来的非实时Linux内核作为抢占式任务运行在这个小内核上,所有任务都在内核地址空间运行。它不同于微内核和大内核,属于实时执行架构。其可靠性和可维护性对于电信服务系统来说并不理想。

*KURT-Linux内核由内核和实时模块两部分组成。内核负责调度实时事件,实时模块为用户进程提供特定的实时服务。它不属于微内核结构。

调度策略分析。

任务调度策略是直接影响实时性能的一个因素。虽然有各种各样的调度算法,但大多数都是从单调速率算法(RM)和最早截止期优先算法(EDF)中衍生出来的。前者主要用于调度静态周期性任务,后者主要用于动态调度。这两种算法在不同的系统状态下各有优缺点。商业产品中采用的实际策略往往是各种因素的折衷。

QNX提供POSIX.1b标准进程调度:

* 32个流程优先级;

*抢先的、基于优先级的文本切换;

*可选的调度策略:FIFO、轮换策略和适应性策略。

style="text-indent: 2em;">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的全部开发工具。

* 可使用市场上便宜又常见的硬件。

通过分析,可以看到以上系统各有优势,因此,在平台搭造过程中,用户应根据自己的实际需要并结合性能价格比进行选择。

责任编辑:ct

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。