VxWorks 7 Logo

物联网尽管被提了多年,也得到各方力量的推动,但是产业的发展相对比较缓慢,而且目前鲜有企业在这个领域赚到钱。究其原因,一些行业分析师认为,要想让每个场景中的设备实现物联网化,单兵作战难以实现,整个物联网行业缺乏平台的支撑。这句话讲到了关键点。但是,有能力做物联网平台的企业并不多,能够下决心专注物联网领域的更是少之又少。风河可以算物联网能力平台中的一个。

VxWorks发展超过三十年 来到7时代

VxWorks Generation

VxWorks成长历程

结合VxWorks的发展经历不难看出,从1980年到2010年,VxWorks推出了四代产品。1980年代,为设备开发了32位处理器,而且设备中有了操作系统。1990年代,越来越多的设备开始数码化,互联网也开始兴起。VxWorks来到5时代。2000年代,风河推出了VxWorks 6版本,除了多核设备不断推出之外,很多设备开始需要有一些特定的增强性,不管是在安全性还是在防御性上。进入2010年代,风河推出了VxWorks 7,除了看到物联网的一些新机会外,更多的是不限于一个设备上使用,开始探讨从端到端,还有中间云端部分,因此,要分配和管理的设备越来越多,而且每个设备之间的互联、性能的分配、操作也越来越复杂。

VxWorks操作系统简介

VxWorks 是专门为实时嵌入式系统设计开发的操作系统内核,为程序员提供了高效的实时多任务调度、中断管理,实时的系统资源以及实时的任务间通信。在各种 CPU 平台上提供了统一的编程接口和一致的运行特性,尽可能的屏蔽了不同 CPU 之间的底层差异。应用程序员可以将尽可能多的精力放在应用程序本身,而不必再去关心系统资源的管理。基于VxWorks 操作系统的应用程序可以在不同 CPU 平台上轻松移植。VxWorks 是美国 Wind River System 公司(以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。 WRS 公司组建于 1981 年,是一个专门从事实时操作系统开发与生产的软件公司,该公司在实时操作系统领域被世界公认为是最具有领导作用的公司。VxWorks 是一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、 FA-18 战斗机、 B-2 隐形轰炸机和爱国者导弹上, 1997 年 4 月在火星表面登陆的火星探路者上也使用了 VxWorks。VxWorks 是一种功能强大而且比较复杂的操作系统,包括了进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等几个部分。 VxWorks 只占用了很小的存储空间,并可高度裁减,保证了系统能以较高的效率运行。所以,仅仅依靠人工编程调试,很难发挥它的功能并设计出可靠、高效的嵌入式系统,必须要有与之相适应的开发工具。 TornadoII就是为开发 VxWorks 应用系统提供的集成开发环境, TornadoII 中包含的工程管理软件,可以将用户自己的代码与 VxWorks 的核心有效的组合起来,可以按用户的需要裁剪配置VxWorks 内核; vxSim 原型仿真器可以让程序员不用目标机的情况下,直接开发系统原型,作出系统评估;功能强大的 CrossWind 调试器可以提供任务级和系统级的调试模式,可以进行多目标机的联调;优化分析工具可以帮助程序员从多种方式真正地观察、跟踪系统的运行,排除错误,优化性能。

1 高性能的微内核设计

处于 VxWorks 嵌入式实时操作系统核心的是高性能的微内核 wind。这个微内核支持所有的实时特征:快速任务切换、中断支持、抢占式和时间片轮转调度等。微内核设计减少了系统开销,从而保证了对外部事件的快速、确定的反应。运行环境也提供了有效的任务间通信机制,允许独立的任务在实时系统中与其行动相协调。开发者在开发应用程序时可以使用多种方法:用于简单数据共享的共享内存、用于单 CPU的多任务间信息交换的消息队列和管道、套接口、用于网络通信的远程过程调用、用于处理异常事件的信号等。为了控制关键的系统资源,提供了三种信号灯:二进制、计数、有优先级继承特性的互斥信号灯。

2 可裁剪的运行软件

VxWorks 之所以设计为具有可裁剪性,是为了使开发者能够根据自己的应用程序需要,而不是根据操作系统的需要,来分配稀少的内存资源。从需要几 KB 字节内存的深层嵌入式设计到需要更多的操作系统的功能的复杂的高端的实时系统,开发者也许需要从 100 多个不同的选项中进行选择以产生上百种的配置方式。许多独立的模块都是在开发时要使用而在产品中却不再使用。而且,这些子系统本身也是可裁剪的,这样就允许开发者为最广泛的应用程序进行更为优化的 VxWorks 运行环境配置。例如,如果应用程序不需要某些功能模块,就可以将它移出 ANSIC 运行库;如果应用程序不需要某些特定的内核同步对象,这些对象也可以忽略。还有,TCP、UDP、套接口和标准 Berkeley 服务也可以根据需要将之移出或移入网络协议栈。这些配置选项可以通过 TornadoII 的项目工具图形接口轻易地选择。开发者也可以使用TornadoII 的自动裁剪特性,自动地分析应用程序代码并合并合适的选项。

3 综合的网络工具

VxWorks 是第一个支持工业标准 TCP/IP 的实时操作系统。创新的传统伴随着 VxWorksTCP/IP 协议栈,它支持最新的 Berkeley 网络特性,包括:IP, IGMP, CIDR, TCP, UDP, ARP RIP v.1/v.2 Standard Berkeley sockets and zbufs NFS client and server, ONC, RPC Point-to-Point Protocol BOOTP, DNS, DHCP, TFTPFTP, rlogin, telnet, rsh WindRiver 也支持可选的 WindNet 产品: SNMP v.1/v.2c, OSPF v.2, STREAMS.WindRiver 还通过提供工业级最广泛的网络开发环境来加强这些核心技术,这主要是通过WindLink for TornadoII 伙伴计划来实现的。高级的网络解决方案还包括:ATM, SMDS, frame relay, ISDN, SS7, X.25, V5 广域网网络协议IPX/SPX, AppleTalk, SNA 局域网网络协议分布式网络管理的 RMON, CMIP/GDMO,基于 Web 网的解决方案CORBA 分布式计算机环境

4 兼容 POSIX 1003.1b 标准

VxWorks 支持 POSIX 1003.1b 的规定和 1003.1 中有关基本系统调用的规定,包括:过程初始化、文件与目录、 I/O 初始化、语言服务、目录处理;而 VxWorks 还支持 POSIX 1003.1b的实时扩展,主要包括:异步 I/O、记数信号量、消息队列、信号、内存管理和调度控制。

5 平台的选择

WindRiver 还提供现成的一整套的商业和评估板。 VxWorks 开放的设计具有高度的可移植性并且支持几乎所有的处理器,这样,应用程序就可以在不同的体系结构之间毫不费力的移植。

6 方便地移植到用户硬件上

能否将操作系统和应用程序以一种合适的方式进行移植是嵌入式软件开发方面的关键。如果事先就考虑了操作系统和应用程序代码的可移植性,那么这个过程就会变得非常容易。这需要明确划分低级的依赖于硬件的代码和高级的应用程序和操作系统代码,这样,移植时只需要改变整个依赖于硬件的低级代码,而不需要改变操作系统和应用程序。依赖于硬件的这一层称为板极支持包(BSP, Board Support Package)。板极支持包是运行VxWorks 的任何目标板都需要的。 BSP Developer’s Kit 使开发者很容易地在用户硬件上使用VxWorks;如果使用商业硬件, WindRiver 提供了 2000 个板极支持包。当为用户板开发板极支持包时,开发者可以获得大量的标准设备驱动程序,这些程序对应于所有的目标体系。

7 操作系统选件

操作系统选件产品为开发者提供了意想不到的特性和操作系统扩展。这些选件主要包括:

  • 板极支持包开发工具(BSP Developer’s Kit)
  • 支持闪存文件系统的 TrueFFS for TornadoII
  • 支持图形应用程序
  • 支持虚拟内存管理 VxVMI
  • 支持多处理的 VxMP、 VxDCOM 和 VxFusion

8 VxWorks 应用范围

VxWorks 应用范围非常广,以应用领域分,可以分成如下类应用:

(1)消费电子

  • 掌上电脑
  • 机顶盒
  • 可视电话
  • 汽车导航系统

(2)航空航天

  • 飞行模拟器
  • 航班管理系统
  • 卫星跟踪系统
  • 航空电子设备

(3)数字图象设备

  • 打印机、传真机
  • 数字复印机
  • 数字相机

(4)数据通讯网络

  • 交换机
  • 路由器
  • 远程访问服务器
  • ATM 及帧中继交换机

(5)电信设备

  • PBXs, ACDs
  • CD 交换系统
  • 移动通讯基站
  • 蜂窝式电话
  • Cable Modem

(6)交通运输

  • 汽车发动机控制
  • 交通信号控制
  • 高速列车控制

(7)工业控制

  • 机器人
  • 测试与测量设备
  • 过程控制系统
  • 计算机外设
  • 网络计算机
  • X 终端
  • RAID 存储系统
  • I/O 控制设备

物联网的每一个设备就是大大小小的传感器,开始连到复杂的云端时,中间经过了很多层。在这么多层里,VxWorks 7最关注其中的三点:扩展性、延展性、安全性。

除此之外,平台还有特别增强的重点。如下:

第一,连接性。设备之间互联互通的协议不同,需要更好的管理。

第二,图像化。显示方式已经从指令式的文字模式进入到图像式的显示,过去不需要靠图像来操作的界面,如今都要适应图像化的操作需求。因此,VxWorks7在图像支持方面比以往做的更好。

第三,虚拟化。虚拟化带来很多新机遇,也带来很多新挑战。虚拟化让整个软硬件的运用更有效,但同时虚拟化增加了受攻击的可能性。所以,VxWorks 7在虚拟化方面也进行了加强。

过去,VxWorks是一个集中化的管理方式,整个平台架构像一把锁一样,全部功能都包含其中,不论是编译器还是一些编译工具。而且,一旦推出新版本,需要对整个平台进行重新测试,这样使得平台的升级不那么容易。

VxWorks 7如何求变?

1、架构创新。

相比过去的平台版本,VxWorks 7最重要的变化是整个平台架构保持三年稳定,每个功能类似于安装包一样。不管是文件系统管理还是网络系统管理,都是一个个功能包,好处在于,合作伙伴不需要跟随VxWorks的改版而升级他们的版本,客户拥有一个更加稳定的平台,为客户产品开发提供便利。

在稳定的平台上,客户的产品在不同的版本上可以同时存在。比如,最开始推出的1.0版,接着是1.1版,再后来是1.2版,就像打补丁包一样。一旦文件系统出现问题,只需要更新文件系统部分,无需改动整个平台。客户原先做的开发不会因改动了平台的一个小模块,导致整个产品都要更改,将干扰和开发延误的影响降到最低。

通过打补丁的做法将功能模块化,只需一两周就可以更正之前发现的问题,大大缩短了功能修复以及新功能上线的时间。

2、囊括所有标准认证要求版本。

过去根据客户的实际需求,开发不同认证要求的版本。现在VxWorks 7平台是把需要认证的版本全部纳入进来。比如,医疗行业是IC62304标准,工业控制是IC61508标准,航空是DO178标准,铁道是IC50128标准,当然还有其他标准。

采用隔离的方式实现,比如,在认证要求上,哪些代码需要通过认证,通过认证时具有哪些功能,把它隔离到某个区块中,比如有强烈安全要求的放在这一块,根据要求更新。不需要换的部分固定在另外一个区块上。

在安全增强方面通过四大基础功能实现:1、从一开始系统设计上,在最底层有防止恶意袭击的自我保护功能。2、在开机读代码的时候,也做了保护层。3、设备实际运营时也有防止恶意攻击的部分。4、设备关闭时,对记忆里仍存有运营数据,或者设备使用时留下来的数据内容都有保护。所以,从一开始到最后,在关机以及休息时都可以有效保护数据以及设备的运营。

3、突出图形化的重要性。

iPhone带来了很多使用习惯上的变化,大部分新设备都有相对应的图形界面提示。硬件对图形的要求已经越来越多,所以VxWorks 7在软件上做的支持也会越来越多。

做物联网开发如何突破?

最近,笔者经常和一些开发者沟通,他们对新技术一方面充满期待,另一方面苦于找不到突破口,陷入转型的困境中。靠改变才能顺应时代的需求,风河公司产品线经理Stephen Olsen认为,不仅开发者需要转变,风河VxWorks同样如此。风河很多时候是在挑战过去、推翻过去。从人才方面,为了打破员工一贯的思维方式,管理层也下定决心,VxWorks 产品部的人员也在发生变化,引入了一些新的成员,最终让VxWorks 7成功问世,这是风河内部自我挑战的成果。

Internet of Things

物联网完整示意图

风河公司产品线经理Stephen Olsen认为,对开发者来讲,从最小的设备端到云端服务,代码编写的方式有很多,但相对应的API有一些是通用的。比如,C++开发者参与物联网每个环节的编程方式大同小异,关键要看切入点在哪里,每个环节都可能成为开发者步入物联网的突破口。

尽管Java开发者从事物联网开发的优势相对较少。但物联网不只是物,还有联网、数据分析及整个调度。Java开发者,同样要结合自己擅长的技能找到切入点。整个物联网带来的热潮,不会对行业带来很强的限制性,每个人都可以看到自己的机会,选择转到物联网领域。

针对那些从事嵌入式开发时间不长的开发者,风河已经计划与大学联合开展类似的培育工作。除了跟学校签约,使用风河的产品之外,针对学校的一些特殊要求,也可以陆续加入风河的大学计划中。此外,风河也在做类似机器设计的平台,增强嵌入式开发的的趣味性。在线上开发方面风河也有一些投入,希望更多人了解和使用风河的产品

小结

VxWorks 7在最底层的可扩展性和安全上做了增强,而且在图形和存储方面也有进一步提升。另外,就是它有不同的连接性。过去一个新的硬件要配一个相对应的BSP保证运行。现在,有很多固定下来的BSP就不太去变化,只在不同的方面改变。因为把通用部分都集合起来以后,有很多可以在代码行上做一些改变。

另外,大幅降低了文件管理所需要的代码,有很多通用的部分全部固定下来,每个差异之间有一点细微变化。这样保证了客户在做产品开发和生态系统建设的时候,能有更好的方式来做。

再就是,帮助开发者转型物联网开发方面,风河也在做不断的努力,通过搭建平台,帮助整个物联网生态链健康成长。