操作系统开发商风河(WindRiver)被Aptiv收购
2022-01-15 22:04:32 阿炯

2022年1月中旬消息,汽车零部件巨头Aptiv PLC宣布43亿美元(273.7亿人民币)收购Wind River Systems Inc.,后者开发的软件在全球20亿个“物联网”设备上运行。


Aptiv从投资公司TPG的私募股权部门TPG Capital手中收购了这家公司。而TPG Capital则于2018 年从英特尔收购了Wind River,当时收购金额并未披露。Wind River作为英特尔旗下的子公司有近十年的历史,早些时候作为一家独立公司来运营。

Wind River的软件用于超过20亿个物联网设备,从工业机器人到美国宇航局的“毅力号”火星探测器,不一而足。该公司销售一款实时操作系统VxWorks,该操作系统经过优化,可在处理能力有限、软件可靠性要求颇高的物联网系统上运行。Wind River还为联网设备提供第二个基于Linux的操作系统。还有小型实时操作系统Zephyr

Aptiv是一家知名的汽车零部件制造商,在全球雇有约180000名员工。该公司发出34亿美元收购的要约,一方面冲着Wind River的操作系统而去。通过这宗收购,Aptiv还将获得另一款名为Wind River Studio的产品,该产品可以提升其在车辆软件市场的影响力。

Wind River Studio是一套开发工具,旨在简化为联网设备开发软件这项任务。该平台提供测试功能,可帮助程序员在推出代码之前评估代码的可靠性。Wind River Studio简化了构建编译过程(即将代码转换成实用程序的任务),并帮助开发团队将软件发布到生产环境后对软件进行维护。

Wind River总裁兼首席执行官Kevin Dallas说:“Wind River已在云原生智能边缘软件领域确立了全球领导者地位,其软件可提供最高级别的安全性、可靠性和性能。将Wind River领先行业的软件、客户群和人才与Aptiv的互补性技术、全球资源和规模相结合,可实现我们对新机器经济抱有的愿景。”

Aptiv将使用Wind River Studio来夯实其为汽车制造商提供的软件产品系列。Wind River的软件已被汽车行业的多家公司用于多种使用场景,比如支持高级驾驶辅助系统。

Aptiv的收购计划包括将Wind River Studio与其智能车辆架构(SVA)平台相集成。这是一套用于管理智能车辆软件的组件和方法。SVA的主要卖点之一是,它让汽车制造商可以将车辆中的软件与硬件独立更新。汽车制造商可以使用Wind River Studio为车辆开发软件,然后利用SVA简化软件维护之类的任务。SVA还提供其他功能。该平台包括专用设备,旨在管理将数据从车辆子部件发送到车载计算机这个过程。据Aptiv声称,设备还有助于维护。它们可检测到车辆中的某根电线何时将发生故障,并生成警报以简化维护。

随着整个行业致力于为车辆推出更多的自动驾驶功能,软件正成为汽车制造商及供应商的重中之重。汽车行业的众多玩家也在投资发力新芯片,以运行它们部署的日益复杂的软件。比如说,通用汽车公司最近就与高通合作,在即将推出的Ultra Cruise驾驶辅助系统中使用这家芯片制造商研制的芯片。

Aptiv总裁兼首席执行官Kevin Clark表示:“汽车行业正经历一个多世纪以来最大规模的转型,软件定义的联网车辆越来越成为更广泛的智能生态系统的关键要素。充分利用这个机会需要全面的解决方案,通过充分利用数据带来的洞察力,使软件能够在整个车辆生命周期过程中更快地开发、无缝部署和优化。”

除了Wind River的软件资产外,这宗收购还为Aptiv带来了超过1700家组织的客户群。Aptiv近日披露,Wind River去年从客户群获得了约4亿美元的收入。

Aptiv以现金和债务为这笔交易提供资金,该公司预计将在2022年年中完成交易。



VxWorks 操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器、2008年5月登陆的凤凰号,和2012年8月登陆的好奇号也都使用到了VxWorks。


多年来,VxWorks®实时操作系统(RTOS)成功搭载数十亿台安全关键型智能设备、机器和系统,获得全球行业领导者一致认可。从如今运行在“红色星球”上的洞察号火星探测器(Insight),到医用输液泵和成像系统、制造机器人以及其他物联网(IoT)嵌入式设备,VxWorks屡次被选为创新解决方案,安全、可靠地应用于航空航天与国防、汽车、工控、医疗和交通运输行业。


VxWorks操作系统有以下部件组成:


内核
多任务调度(采用基于优先级抢占方式,同时支持同优先级任务间的分时间片调度)
任务间的同步
进程间通信机制
中断处理
定时器和内存管理机制

IO 系统
VxWorks 提供了一个快速灵活的与 ANSI C 兼容的 I/O 系统,包括 UNIX 标准的Basic I/O (creat(),remove(),open(),close(),read(),write(),and ioctl()),Buffer I/O (fopen(),fclose(),fread(),fwrite(),getc(),putc()) 以及POSIX 标准的异步 I/O。VxWorks 包括以下驱动程序:网络驱动、管道驱动、RAM盘驱动、SCSI驱动、键盘驱动、显示驱动、磁盘驱动、并口驱动等 。

文件系统
支持四种文件系统:dosFs,rt11Fs,rawFs 和 tapeFs
支持在一个单独的 VxWorks 系统上同时并存几个不同的文件系统。

板级支持包 BSP(Board Support Package)
板级支持包向VxWorks操作系统提供了对各种板子的硬件功能操作的统一的软件接口,它是保证VxWorks操作系统可移植性的关键,它包括硬件初始化、中断的产生和处理、硬件时钟和计时器管理、局域和总线内存地址映射、内存分配等等。每个板级支持包包括一个 ROM 启动(Boot ROM)或其它启动机制。

网络支持
它提供了对其它VxWorks系统和TCP/IP网络系统的"透明"访问,包括与BSD套接字兼容的编程接口,远程过程调用(RPC),SNMP(可选项),远程文件访问(包括客户端和服务端的NFS机制以及使用RSH,FTP 或 TFTP的非NFS机制)以及BOOTP 和代理ARP、DHCP、DNS、OSPF、RIP。无论是松耦合的串行线路、标准的以太网连接还是紧耦合的利用共享内存的背板总线,所有的 VxWorks 网络机制都遵循标准的 Internet 协议。

构建边缘计算系统的未来
VxWorks是一款具有确定性、高性能实时操作系统,它为必须满足最高标准的任务关键型设备和系统确立了可扩展:

•永不过时、安全可靠的操作环境标准。
•实时:VxWorks是一款确定性、基于优先级的抢占式实时操作系统,具有低延迟和最小抖动,因此非常适合硬实时嵌入式应用。除标准抢占外,VxWorks还可通过各种调度以及时间和空间分区来确保安全关键及时间关键型应用程序获得预定数量的CPU周期,为各行各业提供所需的灵活功能。

•永不过时:尽管VxWorks不断添加新的特性和功能,兼容性始终摆在首位,这是因为风河®竭力保护并确保客户投资的软件和工具永不过时。兼容性使得开发人员能够利用VxWorks最新版本,快速添加新功能并进行升级,而无需对整个系统重新测试,从而节省了项目时间和成本。

•广泛的多核和多处理支持:VxWorks支持32位、64位以及多核处理器,包括Intel®,Arm®和PowerArchitecture®。其全面的多核处理器支持使得OS配置能够用于非对称多处理(AMP)和对称多处理(SMP),并具有绑定多处理(BMP)的CPU亲和性。

•广泛的板级支持:通过与我们的生态系统合作伙伴共同开发,VxWorks拥有最广泛的嵌入式软件行业的板级支持包(BSP),可实现早期原型设计,节省成本的同时提供灵活的选择。为了满足对廉价硬件快速原型设计需求,VxWorks在GitHub上提供了开源BSP,最早先支持树莓派(Raspberry Pi)。

•稳健性和调优性:VxWorks的模块化特性便于根据需要选择和调整功能,仅在需要时更改模块。(更改先前认证的应用程序中使用的VxWorks代码时,可能需要重新评估认证)

•虚拟化:VxWorks能够在诸如风河® Helix™ Virtualization Platform等虚拟化环境中或者结合QEMU、VMware和KVM等常见的hypervisor,具有高效、接近本地的性能。HelixPlatform包含可认证、嵌入式类型的hypervisor,与其他难以认证的hypervisor相比,它可以节省时间和精力,并且还将与其他操作系统一起运行VxWorks。

•容错文件系统:VxWorks支持风河Highly Reliable File System(HRFS),以在系统错误和关闭的情况下容错和恢复操作,以及兼容FAT的dosFS文件系统。

•混合操作系统支持:VxWorks支持使用OpenAMP在混合环境中与其他操作系统进行通信,从而使得开发人员能够跨VxWorks实时环境和其他非实时环境构建交互式功能。

•多媒体:VxWorks支持多种标准图形库,例如OpenGL、 OpenGLES、OpenCV和Vulkan,以及处理JPEG和PNG图像的库。

vxWorks与Unix/Linux的主要区别

1、内核结构

Linux是宏内核,Vxworks是微内核。

微内核架构设计的操作系统:Vxworks、Minix、Fuchsia、QNX等

宏内核架构设计的操作系统:OpenVMS、Linux、FreeBSD、Solaris等

微内核是只提供必要服务的操作系统内核,包括但不限于任务调度、中断处理、内存管理等。其他服务,如文件管理、网络支持等通过接口连到微内核。这种内核设计保持操作系统的内核尽可能小,内核直接与计算机硬件相关,内核越小,越便于在不同的硬件系统间进行移植。微内核可以使不需要的模块不加载到内存中,可更有效地利用内存。有很好的扩展性,可简化应用程序开发。用户只运行他们需要的服务,利于减少磁盘空间。

宏内核是操作系统核心架构的一种,除了基本的服务,内核还包括文件系统、网络支持等。宏内核的内部可被分为若干模块,但在运行时,是一个独立的二进制大映像。模块间的通信是直接调用其他模块中的函数来实现的。在运行阶段,以动态方式来加载、卸载可运行的模块,但模块均为二进制代码。若没有动态加载/卸载机制,操作系统的核心想要进行任何的调整、变换,都必须重启才能达成,为了核心功效轻松地扩展、延伸模块化是必然且必要的。

2、内存访问和内存保护

Linux采用虚拟存储管理方式,vxworks采用实存储管理方式

VxWorks的内核采用实存储管理方式,所有任务运行于同一物理地址空间,用户程序直接操作物理地址,不能直接地提供内存保护,不能防止错误蔓延。一个模块崩溃,将导致整个系统崩溃。更换组件或者升级只能重启系统。

Linux的内核采用虚拟存储管理方式,用户具有独立的地址空间,用户进程只能访问本进程的虚拟空间,提供了内存保护,可以防止错误蔓延。进程间内存隔离,一个进程故障崩溃,其他进程不受影响。进程和核心隔离,进程异常地址访问核心不受影响。统一的内存管理,按需分配。

3、执行单元

任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、IO设备及内存空间等系统资源,并独立于其它任务,宏观上与它们一起并发运行。VxWorks内核使任务能快速共享系统的绝大部分资源。在个人的理解中VxWorks中的进程是指Rtp,进程包含任务。

进程(重量级进程)是程序的一次执行。每个进程都有自己的地址空间、内存、数据栈。操作系统管理在其上运行的所有进程,并为这些进程公平地分配时间。也因为各个进程有自己的内存空间、数据栈等,所以只能使用进程间通讯(IPC),而不能直接共享信息。

线程(轻量级进程)跟进程相似,不同的是,所有的线程运行在同一个进程中,共享相同的运行环境。它们均认为自己才是那个主进程,并且不知道有其他进程的存在。线程的运行可能被抢占(中断),或暂时的被挂起(也叫睡眠),让其它的线程运行。

一个进程中的各个线程之间共享同一片数据空间,所以线程之间可以比进程之间更方便地共享数据以及相互通讯。线程一般都是并发执行的,正是由于这种并行和数据共享的机制使得多个任务的合作变为可能。实际上,在单CPU 的系统中,真正的并发是不可能的,每个线程会被安排成每次只运行一小会,然后就把CPU 让出来,让其它的线程去运行。在进程的整个运行过程中,每个线程都只做自己的事,在需要的时候跟其它的线程共享运行的结果。

4、请求内核服务方式

系统调用:由操作系统实现的所有系统调用所构成的集合即程序接口或应用编程接口(API)。是应用程序同系统之间的接口。操作系统的主要功能是为应用程序的运行创建良好的环境,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用(system call)的接口呈现给用户。系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序,如果没有系统调用和内核函数,用户将不能编写大型应用程序。

Linux通过fork 创建一个新进程 、clone 按指定条件创建子进程,而vxworks则是直接调用系统的函数执行功能。

5、实时性

实时操作系统 (RTOS) 是相对于分时操作系统而言。在分时操作系统中,CPU资源会被平均地分配。在一个实时操作系统之中,每个任务完成的时长。

在实时操作系统中,系统必须在特定的时间内完成指定的应用,而分时操作系统则注重将系统资源平均地分配给各个应用,不太在意各个应用的进度如何,什么时间能够完成。不过,就算是实时操作系统,系统的“硬度”也会有所不同,因而有了所谓的硬实时和软实时 。

硬实时系统不允许任何超出时限的错误。超时错误会带来损害甚至导致系统失败、或者导致系统不能实现预期目标。而软实时系统以容忍偶然的超时错误。失败造成的后果并不严重,例如在网络中仅仅是轻微地降低了系统的吞吐量。

软实时只能提供统计意义上的实时。例如发射卫星应用系统,这些系统的实时性必须达到100%,绝对不允许出现意外故而硬实时系统尤为重要。

著名的硬实时系统包括:VxWorks,rtems, rtlinux, ThreadX, QNX,Nucleus等

软实时系统包括:Linux, winCE

也可以这样理解:硬实时是指那些对时间要求非常严格的系统一旦系统不能满足程序对时间的要求的话系统就要崩溃。软实时是指那些对时间要求不是很严格的系统一旦系统不能满足程序对时间的要求也不至于引起系统的崩溃

6、文件系统差异

分区实质上是介质上的一片连续的扇区。如果介质是磁盘,则是磁盘分区,如果介质是内存,则为内存分区。它本身可以与文件系统无关(在我们对它进行格式化之前)。它不隶属于任何目录,不存在某个分区所在的目录的说法。

文件系统可以理解为一个分区上存储文件的一种管理方式和布局,简称“管理布局”。如一个分区可以以ext2的布局方式来管理文件,也可以以其余文件系统的布局方式来管理文件等。有不同“管理布局”的分区,可以有相同的目录/文件树结构。

当分区被格式化后(即有了布局后),就可以用来存储文件。这时这样的一片连续的扇区,需要有一个入口,即挂载点。一个分区的挂载点可以是“/”的任意目录。进入挂载点,就等于进入到了该分区的所谓的最上层目录。显而易见,一个分区可以有多个挂载点,即多个入口。也可以更换入口。也可以没有任何入口,即把该分区的所有挂载点都umount。

访问一个分区有两种方法,一是可以通过挂载点来访问,此时可以看到分区的目录/树结构。二是绕过文件系统和挂载点,直接访问物理设备(通过设备文件)。此时看不到分区的目录/树结构,只能读写扇区裸数据。未格式化或尚未挂载的分区,只能通过这种方法。当然即使拥有挂载点(入口)的分区也可以直接读写扇区裸数据。个人认为linux归属第一类,vxworks归属第二类。

由WindRiver提供的开发工具,集成了编辑器、编译器、调试器于一体的高度集成的窗口环境,同样也可以从Shell窗口下发命令和浏览。基于eclipse。

集成环境提供了高效明晰的图形化的实时应用开发平台,它包括一套完整的面向嵌入式系统的开发和调测工具。此环境采用主机-目标机交叉开发模型,应用程序在主机的Windows环境下编译链接生成可执行文件,下载到目标机,通过主机上的目标服务器(Target Server)与目标机上的目标代理(Target Agent)的通信完成对应用程序的调试、分析。