当前位置: 首页 > 工具软件 > QNX > 使用案例 >

QNX 在车机系统中的应用

苏丰茂
2023-12-01

1.QNX 是什么

在没有接触汽车行业之前几乎没有听过这个词,但是做过汽车行业的人几乎全部都知道qnx,QNX是一种商用的遵从POSIX规范的类Unix实时操作系统,它可能是最成功的微内核操作系统之一.
重点是实时操作系统和微内核,QNX是一个分布式、嵌入式、可规模扩展的硬实时操作系统
目前QNX 是黑莓旗下的软件公司,QNX在车用市场占有率达到75%,几乎所有的汽车都采用基于QNX技术的系统,该系统主要被用来控制音乐和媒体功能等车载娱乐系统。
除汽车领域之外,QNX的最大客户订单来源于思科系统,其中高端路由设备几乎全部采用QNX操作系统,因此,网络通信也成为了QNX第二大应用领域。此外,QNX与通用电气、阿尔斯通、西门子、洛克希德·马丁和NASA等公司都有着紧密合作,在轨道交通、医疗器械、智能电网及航空航天中,都发挥着积极作用。
QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快,并且他的核心代码只有10万行,这就意味着他的代码出错率更低。
QNX属于微内核系统,相较于宏内核系统(Windows/Android),微内核的可靠性更高。“微内核跑在自己的空间,而中间件、应用和驱动都在内核空间外运行,如果那一部分程序出错,对内核不会造成任何影响,这就是为什么QNX被用在了,很多性命攸关的领域。
微内核(英文中常译作µ-kernel或者micro kernel)。是一种能够提供必要服务的操作系统内核;其中这些必要的服务包括任务,线程,交互进程通信(IPC,Inter-Process Communication)以及内存管理等等。所有服务(包括设备驱动)在用户模式下运行,而处理这些服务同处理其他的任何一个程序一样。因为每个服务只是在自己的地址空间运行。所以这些服务之间彼此之间都受到了保护。

2.QNX 在车机系统中的角色

目前,车机行业底层操作操作系统供应商主要有3家,BlackBerry(黑莓)的QNX,微软的Windos CE和开源的Linux,三者各有千秋。
QNX 需要收取厂商的授权费,并且是按装车数来算的,Windos CE 没有找到具体收费情况,但是与qnx 类似,不过费用低些罢了,Linux 是完全免费的,但是比起本身并不是未车载系统而设计的,一个再优秀的系统,一旦臃肿起来出错的概率就会增减,看似免费,但是需要厂商能够有较强的操作系统开发能力,这也是一笔不小的支出,并且开发出来的系统稳定性还有待验证,所以说目前QNX 是大多数汽车厂商首选,封闭的开发系统会给整个系统 在安全性上有很大保障,但是他的上层应用非常缺乏,这样比较适用于传统的汽车,只有一个仪表,少数的娱乐系统,但是随着万物互联的到来,用户系统车机系统就像我们的手机一样,智能 且 应用丰富。所以就有了 现在的QNX & Android ,用户系统通过手机就可以操作车机或者车机变得更加智能,例如远程的操控启动,车机语音对话系统等。

3.QNX Hypervisor 在万物互联的车联网中是如何应用的

上边我们说了,在qnx 上层应用缺乏,系统闭塞,但是他的安全性和稳定性比较好,但是即使是这样,有可能被高速发展的互联网车联网所淘汰,在2015年,QNX Hypervisor 1.0推出,打破这一尴尬局面。
QNX Hypervisor 适用于医疗设备、工业自动化系统以及汽车应用程序,例如车载信息娱乐系统、先进的驾驶员辅助系统(ADAS)和数字仪表盘。通过部署QNX Hypervisor,嵌入系统开发人员可以把多个操作系统统一到单一的计算平台或片上系统(SoC),从而降低产品的成本、尺寸、重量和功耗,通俗的讲,通过QNX Hypervisor提供的虚拟管理器 ,嵌入式工程师可以将各个分散的系统部署到同一颗SOC 上。
QNX Hypervisor支持QNX Neutrino操作系统和Linux 、Android等其他操作系统。QNX Hypervisor符合IEC 61508工业安全标准,ISO 26262汽车安全标准和IEC 62304医疗设备软件标准。
QNX Hypervisor为快速、可预测的性能而设计,支持汽车,医疗,工业设备的时间关键型应用,例如可以在极短的时间内启动倒车后视摄像头。
我们都知道,android 系统生态是非常强大的,开发技术和人员众多,且系统开源,从开发成本上来说,成本非常低。如果将android 系统部署到QNX Hypervisor 内,这样就能优势互补了,Android 和 Linux 进行创新。借助 QNX Hypervisor 虚拟机中安全可靠的guest OSs 访客操作系统,可以使用选择的操作系统运行所需的应用程序和服务,不会打乱整个系统的完整性。
无论整体系统要求如何,借助 QNX Hypervisor,都可以在喜欢的操作系统上实现设计所需的功能,同时降低系统功耗和散热需求,尤其是降低初始开发成本和长期拥有成本。
在安全性方面,QNX Hypervisor 保护自身和系统免受内部故障和外部干扰,包括来自其虚拟机中的guests。如果guests系统由于错误或恶意,试图越过设置的边界,QNX Hypervisor虚拟机管理程序会阻止guests完成操作。
QNX Hypervisor虚拟机管理程序,利用最新的 ARMv8 和 x86-64 硬件虚拟化扩展,提供极其通用的虚拟化解决方案。使用 QNX Hypervisor管理程序,可以在瘦虚拟机中,将操作系统及其应用程序作为guests系统运行,从而限制Hypervisor管理程序处理事件和异常。同样的,可以在虚拟机中运行一个或多个guests系统,可以直接在虚拟机Hypervisor管理程序(“裸机”)上,实施一个完整的系统,包括资源管理器、驱动程序和应用程序。

QNX Hypervisor 系统中的设备可以是物理设备(包括直通设备),也可以是虚拟设备,包括来自虚拟设备库的仿真和半虚拟化设备。不同的OS不仅可以共享同一个SoC,还可以共享物理设备,降低产品硬件成本。
所以,在我们的车机系统中通过QNX 的QNX Hyperviso 客户访客系统虚拟机,将android 系统进行移植进去,是现在大多数厂商实现。

QNX 微内核系统保证了最基本的安全和使用,比如说,车辆启动瞬间,仪表就会启动,并且显示必要的硬件数据, QNX Hyperviso Guest OSs 访客操作系统,例如Android 会在下边的十多秒后启动,这样优势互补。

 类似资料: