QNX.

2021-03-23 11:30:48

QNX(/ˌKjuːːˌnɛks/或/ kjuːn k s /)是一种商业UNIX的实时操作系统,主要针对嵌入式系统市场。 QNX是第一家商业成功的Microkernel操作系统之一。 [引用所需]如2020年,它用于包括汽车[1]和手机的各种设备。

该产品最初是在20世纪80年代初开发的加拿大公司量子软件系统,后来更名为QNX软件系统。该公司最终由BlackBerry Limited于2010年收购。[2]

作为基于Microkernel的OS,QNX基于运行大多数操作系统内核的想法,以一些小型任务,命名资源管理器。这与更传统的单片内核不同,其中操作系统内核是由具有特殊能力组成的一个非常大的程序,具有特殊能力。在QNX的情况下,使用微内核允许用户(开发人员)关闭它们不必更改操作系统的任何功能。相反,此类服务将根本无法运行。

展示OS和#39; S的能力和相对较小的尺寸,在20世纪90年代后期QNX发布了一个演示映像,包括POSIX兼容的QNX 4 OS,全图形用户界面,图形文本编辑器,TCP / IP网络,Web浏览器和Web服务器全部适用于可引导的1.44 MB软盘。 [3] [4]

QNX Neutrino(2001)已移植到许多平台,现在几乎运行了在嵌入式市场中使用的任何现代中央处理单元(CPU)系列。这包括PowerPC,X86,MIPS,SH-4,以及ARM,StrongAr和Xscale的密切相关。

BlackBerry设计的BlackBerry Playbook平板电脑使用版本的QNX作为主要操作系统。运行BlackBerry 10操作系统的BlackBerry的设备也基于Qnx。

QNX还用于汽车信息娱乐系统,其中许多主要汽车制造商提供包括嵌入式QNX架构的变体。它由流行的SSL / TLS库(如Wolfssl)支持。 [6]

近年来,QNX也被选择在自动化驱动器或ADAS系统中,用于汽车项目,需要功能安全认证,QNX为安全产品提供了QNX OS。

Gordon Bell和Dan Dodge于1980年在Waterloo大学的学生中,在实时操作系统中参加了一个课程(CS452),其中学生构建了一个基本的实时Microkernel和用户程序。两者都相信,对这种制度进行了商业需求,并转移到高科技计划社区Kanata,安大略省,那年开始Quantum软件系统。 1982年,为英特尔8088 CPU发布了第一个版本的Qunix。 1984年,Quantum Software系统以QNX重命名为QNX,以避免任何商标侵权挑战。

QNX实时OS(RTOS)的首次广泛使用之一是在非默认的世界中被选为安大略教育系统的操作系统'自身的计算机设计,Unisys图标。多年来,QNX主要用于更大的项目,因为它的44k内核太大而无法适应时代的单片机。该系统获得了可靠性的声誉[所需的引用],并在许多工业应用中运行机械中使用。

在20世纪80年代后期,量子意识到市场正在朝着便携式操作系统接口(POSIX)模型迅速移动,并决定将内核重写为低级更兼容。结果是QNX 4.在此期间,帕特里克海登在作为实习生的同时,以及罗宾布根(当时全职员工),开发了一个新的窗口系统。该专利的[8]概念被开发成名为QNX Photon Microgui的嵌入图形用户界面(GUI)。 QNX还提供了X Window系统的版本。

在20世纪90年代末,公司(现在称为QNX软件系统)开始在新版本的QNX上工作,从地面设计为对称的多处理(SMP),并支持所有当前的POSIX应用程序编程接口(API )和任何新的POSIX API,同时仍然保留Microkernel架构。这导致了2001年发布的QNX Neutrino。

随着Neutrino Kernel,QNX软件系统成为Eclipse Consortium的创始成员。该公司在2002年发布了一套与Eclipse Workbench的Eclipse插件包装,并命名为QNX Monegics Tool Suite。

2004年,该公司宣布已销往哈曼国际产业。在此次收购之前,QNX软件已广泛用于电信工业中的远程信息处理系统。自哈曼购买以来,QNX软件一直设计成200多个不同的汽车制造和型号,在远程信息处理系统和信息娱乐和导航单元中。 [引用所需] QNX汽车应用平台截至2011年中期的2000多辆车辆运行。 [9]该公司自发布了多种中间件产品,包括QNX Araviage Multimedia套件,QNX Aravousic Processic Processic Suite和QNX HMI套件。

思科系统的Microkernels' iOS-XR(Ultra高可用性IOS,介绍2004)[10] [11]和IOS软件模块化(介绍2006)[12]基于QNX。

2007年9月,QNX软件系统宣布了其一些源代码的可用性。 [13]

2010年4月9日,议案研究宣布,他们将从哈曼国际行业获得QNX软件系统。 [2]在同一天,QNX源代码访问受到公共和业余爱好者的限制。 [14]

2010年9月,该公司宣布了一台平板电脑,黑莓剧本,基于QNX的新操作系统BlackBerry Tablet OS在平板电脑上运行。 [15]

2011年10月18日,在2011年12月,稍后将BBX" BBX" [16]更名为BlackBerry 10的研究。[17] BlackBerry 10设备基于BlackBerry Playbook QNX的操作系统触摸设备,但使用基于Qt的级联用户界面框架来调整智能手机的用户界面。

在日内瓦电机节目中,Apple演示了Carplay,它为兼容车辆中的头部单元提供IOS的用户界面。一旦由Automaker配置,QNX可以编程为向Apple Carplay Device发送其显示和某些功能。 [18] [19]

2014年12月11日,福特汽车公司表示该公司将用QNX替换Microsoft Auto。 [1]

2017年1月,QNX宣布即将发布其SDP 7.0,支持英特尔和ARM 32-和64位平台,并支持C ++ 14;它于2017年3月发布。[20]

Qnx Kernel,Procnto仅包含CPU调度,进程间通信,中断重定向和定时器。其他一切都作为用户进程运行,包括通过与Microkernel结合操作来执行流程创建和内存管理的Proc的特殊过程。这是通过两个关键机制实现的:子程序呼叫类型进程通信,以及可以加载包含内核的图像和任何所需的用户程序集和共享库的引导加载器。内核中没有设备驱动程序。网络堆栈基于NetBSD代码。 [21]随着对自己的支持,QNX的支持,QNX支持其遗留,IO-Net Manager服务器和从NetBSD端口的网络驱动程序。 [22]

QNX进程间通信包括将消息从一个过程发送到另一个过程并等待回复。这是一个单一的操作,称为msgsend。通过内核(所需)从发送过程的地址空间到接收过程的地址空间复制该消息。如果接收过程正在等待消息,则在不通过CPU调度程序的情况下同时传输CPU的控制。因此,向另一个进程发送消息并等待回复不会导致"丢失一个'转弯"对于CPU。消息传递和CPU调度之间的这种紧密集成是使QNX消息传递广泛可用的关键机制之一。大多数UNIX和Linux进程通信机制缺乏这种紧密集成,尽管存在用于Linux的Qnx型消息的用户空间实现。这种微妙问题的解除命令是一些其他微内核系统的令人失望的Mach的令人失望的主要原因。 [所需引用]收件人进程不需要在同一物理机上。

所有I / O操作,文件系统操作和网络操作都是通过此机制进行工作,并且在消息传递期间复制传输的数据。 QNX的更高版本缩短了单独的进程的数量,并将网络堆栈和其他功能块集成到单个应用程序中,以出于性能原因。

通过线程优先级优先考虑消息处理。由于I / O请求使用消息传递执行,因此在低优先级线程之前接收I / O服务的高优先级线程,因此硬实时系统中的基本特征。

引导加载程序是最小Microkernel系统的其他关键组件。由于用户程序可以内置于引导映像中,所以启动所需的设备驱动程序和支持库一组无需在内核中而不是。即使是程序加载也不在内核中的功能,但是在加载为引导映像的一部分的共享用户空间库中。可以将整个引导映像放入ROM中,该ROM用于无盘嵌入式系统。

Neutrino支持QNX术语中的对称多处理和处理器亲和力,称为绑定多处理(BMP)。 BMP用于改善缓存击打,并使非SMP安全应用程序的迁移到多处理器计算机。

Neutrino支持严格的优先级预先调度和自适应分区调度(AP)。 APS保证最低CPU百分比为选定的线程组,即使其他人可能具有更高的优先级。自适应分区调度程序仍然是严格优先级抢占抢占后抢占。它也可以配置为严格地运行选定的关键线程,即使系统过载时也是如此。

QNX Neverrino Rtos 6.5.0被叉子生产BBX,如2011年10月18日,然后预览,名为"黑莓10 os"于2012年5月1日。

由于其Microkernel架构QNX也是分布式操作系统。丹道奇和Peter Van der Veen举行美国专利6,697,876:基于QNX操作系统的分布式内核操作系统和#39; S分布式处理特征,作为透明分布处理。这允许在单独的设备上允许QNX内核以有效地使用与用于访问本地服务的相同的通信机制来访问彼此和#39; S系统服务。

OpenQNX是一个QNX社区门户,建立并独立运行。可通过Web访问IRC频道和新闻组访问。不同的行业由该网站上的开发人员代表。 [24]

Foundry27是公司建立的基于网络的QNX社区。它用作QNX Neutrino开发的集线器,其中开发人员可以注册,选择许可证,并获取RTOS的源代码和相关工具包。 [25]

^ a b伯恩斯,马特(2014年12月11日)。 "福特沟通微软在最新车内技术平台&#34中的QNX; TechCrunch。

^ a b" rim购买qnx软件"地球和邮件。多伦多。加拿大新闻。 2010年4月9日。

^ Leroux,Paul(2007年9月12日)。 " QNX发布中微子源代码,并打开开发过程" www.qnx.com。 ^ Molen,Brad(2011年10月18日)。 "在运动中的研究宣布BBX,'结合了最好的黑莓和QNX'&#34 ;. engadget。 ^亚瑟,查尔斯(2011-12-07)。 " BlackBerry-Maker RIM被迫删除BBX名称新软件" 监护人。 伦敦 。 丹希尔德贝尔(1992年)。 " QNX&#34的建筑概述; 微内核和其他内核架构研讨会的诉讼程序:113-126。 ISBN 1-880446-42-1。