常见的嵌入式操作系统
分类: 嵌入式 操作系统2012-12-11 10:06 459人阅读 评论(1) 收藏 举报
嵌入式操作系统
嵌入式操作系统与通用的操作相比较主要特点在于:
1.小内核,稳定可靠。
2.需要可装卸、可裁剪,以便能灵活应对各种不同的硬件平台。
3.面向应用,强实时性,可用于各种设备控制当中。
国际上常见的嵌入式操作系统大约有40种左,右如:Linux 、uClinux 、WinCE 、PalmOS 、Symbian 、eCos 、uCOS-II 、VxWorks 、pSOS 、Nucleus 、ThreadX 、Rtems 、QNX 、INTEGRITY 、OSE 、C Executive 。他们基本可以分为两类,一类是面向控制、通信等领域的实时操作系统,如windriver 公司的vxworks 、isi 的psos 、qnx 系统软件公司的qnx 、ati 的nucleus 等;另一类是面向消费电子产品的非实时操作系统,这类产品包括个人数字助理(pda)、移动电话、机顶盒、电子书、webphone 等,系统有Microsoft 的WinCE ,3Com 的Palm ,以及Symbian 和Google 的Android 等。
一、VxWorks
VxWorks 操作系统是美国WindRiver 公司于1983年设计开发的一种嵌入式实时操作系统(RTOS ),是T ornado 嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌人式实时操作系统领域逐渐占据一席之地。
VxWorks 具有可裁剪微内核结构;高效的任务管理;灵活的任务间通讯;微秒级的中断处理;支持POSIX 1003.1b 实时扩展标准;支持多种物理介质及标准的、完整的TCP/IP网络协议等。
然而其价格昂贵。由于操作系统本身以及开发环境都是专有的,价格一般都比较高,通常需花费10万元人民币以上才能建起一个可用的开发环境,对每一个应用一般还要另外收取版税。一般不通供源代码,只提供二进制代码。由于它们都是专用操作系统,需要专门的技术人员掌握开发技术和维护,所以软件的开发和维护成本都非常高。支持的硬件数量有限。
二、Windows CE
Windows CE与Windows 系列有较好的兼容性,无疑是Windows CE推广的一大优势。其中WinCE3.0是一种针对小容量、移动式、智能化、32位、了解设备的模块化实时嵌人式操
作系统。为建立针对掌上设备、无线设备的动态应用程序**务提供了一种功能丰富的操作系统平台,它能在多种处理器体系结构上运行,并且通常适用于那些对内存占用空间具有一定限制的设备。它是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核需要至少200KB 的ROM 。由于嵌入式产品的体积、成本等方面有较严格的要求,所以处理器部分占用空间应尽可能的小。系统的可用内存和外存数量也要受限制,而嵌入式操作系统就运行在有限的内存(一般在ROM 或快闪存储器)中,因此就对操作系统的规模、效率等提出了较高的要求。从技术角度上讲,Windows CE作为嵌入式操作系统有很多的缺陷:没有开放源代码,使应用开发人员很难实现产品的定制;在效率、功耗方面的表现并不出色,而且和Windows 一样占用过的系统内存,运用程序庞大;版权许可费也是厂商不得不考虑的因素。
三、嵌入式Linux
这是嵌入式操作系统的一个新成员,其最大的特点是源代码公开并且遵循GPL 协议,在近一年多以来成为研究热点,据IDG 预测嵌入式Linux 将占未来两年的嵌入式操作系统份额的50%。
由于其源代码公开,人们可以任意修改,以满足自己的应用,并且查错也很容易。遵从GPL ,无须为每例应用交纳许可证费。有大量的应用软件可用。其中大部分都遵从GPL ,是开放源代码和免费的。可以稍加修改后应用于用户自己的系统。有大量的免费的优秀的开发工具,且都遵从GPL ,是开放源代码的。有庞大的开发人员群体。无需专门的人才,只要懂
Unix/Linux和C 语言即可。随着 Linux 在中国的普及,这类人才越来越多。所以软件的开发和维护成本很低。优秀的网络功能,这在Internet 时代尤其重要。稳定——这是Linux 本身具备的一个很大优点。内核精悍,运行所需资源少,十分适合嵌入式应用。
支持的硬件数量庞大。嵌入式Linux 和普通Linux 并无本质区别,PC 上用到的硬件嵌入式Linux 几乎都支持。而且各种硬件的驱动程序源代码都可以得到,为用户编写自己专有硬件的驱动程序带来很大方便。
四、μC/OS一Ⅱ
μC/OS一Ⅱ是著名的源代码公开的实时内核,是专为嵌入式应用设计的,可用于8位,16位和32位单片机或数字信号处理器(DSP )。它是在原版本μC /OS的基础上做了重大改进与升级,并有了近十年的使用实践,有许多成功应用该实时内核的实例。它的主要特点如下: 公开源代码,容易就能把操作系统移植到各个不同的硬件平台上;
可移植性,绝大部分源代码是用C 语言写的,便于移植到其他微处理器上;
可固化;
可裁剪性,有选择的使用需要的系统服务,以减少斗所需的存储空间;
占先式,完全是占先式的实时内核,即总是运行就绪条件下优先级最高的任务;
多任务,可管理64个任务,任务的优先级必须是不同的,不支持时间片轮转调度法; 可确定性,函数调用与服务的执行时间具有其可确定性,不依赖于任务的多少; 实用性和可靠性,成功应用该实时内核的实例,是其实用性和可靠性的最好证据。
由于μC/OS一Ⅱ仅是一个实时内核,这就意味着它不像其他实时存在系统那样提供给用户的只是一些API 函数接口,还有很多工作需要用户自己去完成。
五、QNX
由QNX 软件公司所开发的QNX 操作系统,也是一套类UNIX 的嵌入式操作系统,跟VxWorks 同样的,QNX 也是一套符合POSIX 规范的操作系统。
与VxWorks 同样发迹于1980年代的QNX ,其特殊之处,在于其并非采用传统的高阶硬件虚拟层方式设计,而是以非常细碎的tasks 形式来执行,由许多的微核心为基础组成完整的OS 服务,因此QNX 的硬件设计者可以自由的选择加载执行或不加载某些特定的服务,而不用去变更QNX 的核心程序部份。因此基于QNX 的嵌入式操作系统可以做到非常小的程度,而且依然可以具有相当高的效率与完整的菜单现。
QNX 操作系统核心仅包含了CPU 任务排程、进程间通讯、中断重导向以及定时器等部份,而除此之外包含驱动程序、档案系统堆叠协议以及使用者应用程序的所有程序都是属于在使用者阶段执行。QNX 操作系统有个相当特殊的Proc 阶段,专门负责程序process 的建立,以及存储器管理等交集在系统微核心中的组件。基本上,QNX 所有的组件都能透过消息传递这个函式来进行沟通,而具有良好定义的通讯机制,也能保障所有的组件都有完全独立且被保护的储存及执行空间。因此有问题的应用程序不会影响到其它组件的稳定性,发生问题的程序将会被自动终止并重新启动。
与传统的操作系统架构相较起来,微核心架构可以让嵌入式系统获得更为快速的平均回覆时间(MTTR ),当硬件驱动程序失效,QNX 可以在数毫秒之内,就对该驱动程序进行终止、回收资源并重新启动的步骤,让嵌入式设备可接近无停摆时间表现。
不过微核心RTOS 的架构除了优点以外,由于其process 间的讯息传递功能将会占用存储器频宽,影响到校能表现,因此在实际应用上,就必须采用特殊的最佳化手段,以避免掉讯息传递功能所带来的性能耗损。
虽然QNX 整间公司在2004年出售给Haman International Industries,但QNX 操作系统的发展脚步依旧没有停止,在国外,除了与各家国际汽车大厂合作,成为车用电子的主力操作系统以外,也获得相当多的航空公司与重要军事单位采用。而在2005年底,QNX 也与国内几家包含联电、Zinwell 等公司进行了合作,研华、控创等工业计算机厂商也都有针对这方面在发展。
六、Nucleus Plus
这款嵌入式操作系统主要特征就是轻薄短小,其架构上的延展性,可以让Nucleus RTOS所占的储存空间压缩到仅有13K 左右,而且Nucleus Plus是一款不需授权费的操作系统,并且提供了原始码。
Nucleus Plus本身只是Acclerated Technology公司完整解决方案里面的其中一环,这个RTOS 本身架构属于先占式多工设计,有超过95%的原始码是用标准的ANSI C语言所编写,因此可以非常有效率的移植到各种不同的平台。Nucleus Plus在CISC 架构处理器中,核心部份大约占去20KB 左右的储存空间,而在RISC 处理器上则是40KB 左右,核心资料结构仅占约1.5KB ,由于其即时回应、先占式多工、以及多process 并行,并且开放原始码等特性,在国防、工控、航天工业、铁路、网络、POS 、自动化控制以及信息家电等领域广泛受到应用。
就如同QNX 一般,Nucleus Plus也可以根据目标产品的需求,来自行剪裁所需要的系统功能,达到精简体积的目的。而配合相对应的编译器(Borland c/c++、Microsoft c/c++)以及动态连结程序库和各种底层驱动程序,在开发上拥有非常相当大的便利性。诸如飞思卡尔(Freescale )、罗技(Logitech )公司、美国NEC 、SK Telecom等公司,都有采用Nucleus Plus 嵌入式操作系统作为开发产品使用。
七、结束语
在嵌入式应用中,使用实时操作系统(RTOS )是当前嵌入式应用的一个特点,一种趋势,也是单片机应用从低水平向高水平的一个进步。在实际的应用中,根据不同的要求和条件选择合适的操作系统,使开发工作更容易,设计出更完美的嵌入式系统。
常见的嵌入式操作系统
分类: 嵌入式 操作系统2012-12-11 10:06 459人阅读 评论(1) 收藏 举报
嵌入式操作系统
嵌入式操作系统与通用的操作相比较主要特点在于:
1.小内核,稳定可靠。
2.需要可装卸、可裁剪,以便能灵活应对各种不同的硬件平台。
3.面向应用,强实时性,可用于各种设备控制当中。
国际上常见的嵌入式操作系统大约有40种左,右如:Linux 、uClinux 、WinCE 、PalmOS 、Symbian 、eCos 、uCOS-II 、VxWorks 、pSOS 、Nucleus 、ThreadX 、Rtems 、QNX 、INTEGRITY 、OSE 、C Executive 。他们基本可以分为两类,一类是面向控制、通信等领域的实时操作系统,如windriver 公司的vxworks 、isi 的psos 、qnx 系统软件公司的qnx 、ati 的nucleus 等;另一类是面向消费电子产品的非实时操作系统,这类产品包括个人数字助理(pda)、移动电话、机顶盒、电子书、webphone 等,系统有Microsoft 的WinCE ,3Com 的Palm ,以及Symbian 和Google 的Android 等。
一、VxWorks
VxWorks 操作系统是美国WindRiver 公司于1983年设计开发的一种嵌入式实时操作系统(RTOS ),是T ornado 嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌人式实时操作系统领域逐渐占据一席之地。
VxWorks 具有可裁剪微内核结构;高效的任务管理;灵活的任务间通讯;微秒级的中断处理;支持POSIX 1003.1b 实时扩展标准;支持多种物理介质及标准的、完整的TCP/IP网络协议等。
然而其价格昂贵。由于操作系统本身以及开发环境都是专有的,价格一般都比较高,通常需花费10万元人民币以上才能建起一个可用的开发环境,对每一个应用一般还要另外收取版税。一般不通供源代码,只提供二进制代码。由于它们都是专用操作系统,需要专门的技术人员掌握开发技术和维护,所以软件的开发和维护成本都非常高。支持的硬件数量有限。
二、Windows CE
Windows CE与Windows 系列有较好的兼容性,无疑是Windows CE推广的一大优势。其中WinCE3.0是一种针对小容量、移动式、智能化、32位、了解设备的模块化实时嵌人式操
作系统。为建立针对掌上设备、无线设备的动态应用程序**务提供了一种功能丰富的操作系统平台,它能在多种处理器体系结构上运行,并且通常适用于那些对内存占用空间具有一定限制的设备。它是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核需要至少200KB 的ROM 。由于嵌入式产品的体积、成本等方面有较严格的要求,所以处理器部分占用空间应尽可能的小。系统的可用内存和外存数量也要受限制,而嵌入式操作系统就运行在有限的内存(一般在ROM 或快闪存储器)中,因此就对操作系统的规模、效率等提出了较高的要求。从技术角度上讲,Windows CE作为嵌入式操作系统有很多的缺陷:没有开放源代码,使应用开发人员很难实现产品的定制;在效率、功耗方面的表现并不出色,而且和Windows 一样占用过的系统内存,运用程序庞大;版权许可费也是厂商不得不考虑的因素。
三、嵌入式Linux
这是嵌入式操作系统的一个新成员,其最大的特点是源代码公开并且遵循GPL 协议,在近一年多以来成为研究热点,据IDG 预测嵌入式Linux 将占未来两年的嵌入式操作系统份额的50%。
由于其源代码公开,人们可以任意修改,以满足自己的应用,并且查错也很容易。遵从GPL ,无须为每例应用交纳许可证费。有大量的应用软件可用。其中大部分都遵从GPL ,是开放源代码和免费的。可以稍加修改后应用于用户自己的系统。有大量的免费的优秀的开发工具,且都遵从GPL ,是开放源代码的。有庞大的开发人员群体。无需专门的人才,只要懂
Unix/Linux和C 语言即可。随着 Linux 在中国的普及,这类人才越来越多。所以软件的开发和维护成本很低。优秀的网络功能,这在Internet 时代尤其重要。稳定——这是Linux 本身具备的一个很大优点。内核精悍,运行所需资源少,十分适合嵌入式应用。
支持的硬件数量庞大。嵌入式Linux 和普通Linux 并无本质区别,PC 上用到的硬件嵌入式Linux 几乎都支持。而且各种硬件的驱动程序源代码都可以得到,为用户编写自己专有硬件的驱动程序带来很大方便。
四、μC/OS一Ⅱ
μC/OS一Ⅱ是著名的源代码公开的实时内核,是专为嵌入式应用设计的,可用于8位,16位和32位单片机或数字信号处理器(DSP )。它是在原版本μC /OS的基础上做了重大改进与升级,并有了近十年的使用实践,有许多成功应用该实时内核的实例。它的主要特点如下: 公开源代码,容易就能把操作系统移植到各个不同的硬件平台上;
可移植性,绝大部分源代码是用C 语言写的,便于移植到其他微处理器上;
可固化;
可裁剪性,有选择的使用需要的系统服务,以减少斗所需的存储空间;
占先式,完全是占先式的实时内核,即总是运行就绪条件下优先级最高的任务;
多任务,可管理64个任务,任务的优先级必须是不同的,不支持时间片轮转调度法; 可确定性,函数调用与服务的执行时间具有其可确定性,不依赖于任务的多少; 实用性和可靠性,成功应用该实时内核的实例,是其实用性和可靠性的最好证据。
由于μC/OS一Ⅱ仅是一个实时内核,这就意味着它不像其他实时存在系统那样提供给用户的只是一些API 函数接口,还有很多工作需要用户自己去完成。
五、QNX
由QNX 软件公司所开发的QNX 操作系统,也是一套类UNIX 的嵌入式操作系统,跟VxWorks 同样的,QNX 也是一套符合POSIX 规范的操作系统。
与VxWorks 同样发迹于1980年代的QNX ,其特殊之处,在于其并非采用传统的高阶硬件虚拟层方式设计,而是以非常细碎的tasks 形式来执行,由许多的微核心为基础组成完整的OS 服务,因此QNX 的硬件设计者可以自由的选择加载执行或不加载某些特定的服务,而不用去变更QNX 的核心程序部份。因此基于QNX 的嵌入式操作系统可以做到非常小的程度,而且依然可以具有相当高的效率与完整的菜单现。
QNX 操作系统核心仅包含了CPU 任务排程、进程间通讯、中断重导向以及定时器等部份,而除此之外包含驱动程序、档案系统堆叠协议以及使用者应用程序的所有程序都是属于在使用者阶段执行。QNX 操作系统有个相当特殊的Proc 阶段,专门负责程序process 的建立,以及存储器管理等交集在系统微核心中的组件。基本上,QNX 所有的组件都能透过消息传递这个函式来进行沟通,而具有良好定义的通讯机制,也能保障所有的组件都有完全独立且被保护的储存及执行空间。因此有问题的应用程序不会影响到其它组件的稳定性,发生问题的程序将会被自动终止并重新启动。
与传统的操作系统架构相较起来,微核心架构可以让嵌入式系统获得更为快速的平均回覆时间(MTTR ),当硬件驱动程序失效,QNX 可以在数毫秒之内,就对该驱动程序进行终止、回收资源并重新启动的步骤,让嵌入式设备可接近无停摆时间表现。
不过微核心RTOS 的架构除了优点以外,由于其process 间的讯息传递功能将会占用存储器频宽,影响到校能表现,因此在实际应用上,就必须采用特殊的最佳化手段,以避免掉讯息传递功能所带来的性能耗损。
虽然QNX 整间公司在2004年出售给Haman International Industries,但QNX 操作系统的发展脚步依旧没有停止,在国外,除了与各家国际汽车大厂合作,成为车用电子的主力操作系统以外,也获得相当多的航空公司与重要军事单位采用。而在2005年底,QNX 也与国内几家包含联电、Zinwell 等公司进行了合作,研华、控创等工业计算机厂商也都有针对这方面在发展。
六、Nucleus Plus
这款嵌入式操作系统主要特征就是轻薄短小,其架构上的延展性,可以让Nucleus RTOS所占的储存空间压缩到仅有13K 左右,而且Nucleus Plus是一款不需授权费的操作系统,并且提供了原始码。
Nucleus Plus本身只是Acclerated Technology公司完整解决方案里面的其中一环,这个RTOS 本身架构属于先占式多工设计,有超过95%的原始码是用标准的ANSI C语言所编写,因此可以非常有效率的移植到各种不同的平台。Nucleus Plus在CISC 架构处理器中,核心部份大约占去20KB 左右的储存空间,而在RISC 处理器上则是40KB 左右,核心资料结构仅占约1.5KB ,由于其即时回应、先占式多工、以及多process 并行,并且开放原始码等特性,在国防、工控、航天工业、铁路、网络、POS 、自动化控制以及信息家电等领域广泛受到应用。
就如同QNX 一般,Nucleus Plus也可以根据目标产品的需求,来自行剪裁所需要的系统功能,达到精简体积的目的。而配合相对应的编译器(Borland c/c++、Microsoft c/c++)以及动态连结程序库和各种底层驱动程序,在开发上拥有非常相当大的便利性。诸如飞思卡尔(Freescale )、罗技(Logitech )公司、美国NEC 、SK Telecom等公司,都有采用Nucleus Plus 嵌入式操作系统作为开发产品使用。
七、结束语
在嵌入式应用中,使用实时操作系统(RTOS )是当前嵌入式应用的一个特点,一种趋势,也是单片机应用从低水平向高水平的一个进步。在实际的应用中,根据不同的要求和条件选择合适的操作系统,使开发工作更容易,设计出更完美的嵌入式系统。