QNX的详细介绍

QNX
QNX
QNX logo.jpeg
QNX 6.4.1 screenshot.png
QNX 6.4.1中的默认桌面
开发人员 黑莓
OS系列 类Unix
工作状态 当前
来源模型 封闭源
初始发行 1982年; 37年前
最新发布的 7.0 / 2017年3月; 2年前
营销目标 嵌入式系统
包经理 能够从NetBSD项目中使用Pkgsrc框架
平台 Intel 8088,x86,MIPS,PowerPC,SH-4,ARM,StrongARM,XScale
内核类型 RTOS(微内核)
执照 所有权
官方网站 www .qnx .com
QNX(/ ˌ ķ JU ˌ ɛ Ñ ɛ ķ 小号 /或/ ķ JU Ñ ɪ ķ 小号 /)是商业类Unix 实时操作系统,主要是在针对嵌入式系统市场。该产品最初由加拿大公司Quantum Software Systems于20世纪80年代初开发,后来更名为QNX Software Systems,最终于2010年被BlackBerry收购。[1]QNX是首批商业上成功的微内核操作系统之一[ 引证需要 ],并用于各种设备,包括汽车[2]和移动电话。

内容
描述
历史
技术
透明分布式处理
论坛
前台
也可以看看
参考
进一步阅读
外部链接
描述
作为一个基于微内核的操作系统,QNX基于以许多小任务(称为资源管理器)的形式运行大多数操作系统 内核的想法。这与更传统的单片内核不同,其中操作系统内核是由具有特殊能力的大量“部件”组成的单个非常大的程序。在QNX的情况下,使用微内核允许用户(开发人员)关闭他们不需要的任何功能而无需更改操作系统本身; 相反,这些服务根本就不会运行。

该系统非常小,早期版本适合单个1.44 MB 软盘。[3]

QNX Neutrino(2001)已经移植到许多平台上,现在几乎可以运行在嵌入式市场中使用的任何现代CPU。这包括PowerPC,x86系列,MIPS,SH-4以及ARM,StrongARM和XScale CPU 紧密相关的系列。

QNX为非商业和学术用户提供许可。[4]

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

它通常用于汽车信息娱乐系统,许多主要汽车制造商提供包括嵌入式QNX架构的变体。它受到流行的SSL / TLS库的支持,例如wolfSSL。[5]

历史
1980年,滑铁卢大学的两名学生Gordon Bell和Dan Dodge参加了实时操作系统课程(CS452),学生们构建了一个基本的实时微内核和用户程序。两人都确信这种系统存在商业需求,并转移到安大略省Kanata的高科技计划社区,以便在那一年启动Quantum Software Systems。1982年,QUNIX的第一个版本发布用于Intel 8088 CPU 。1984年,昆腾软件系统公司将QUNIX重命名为QNX,以避免任何商标侵权挑战。QNX实时操作系统(RTOS)的首次广泛使用之一是在非嵌入式世界中被选为安大略省教育系统自己的计算机设计操作系统Unisys ICON。多年来,QNX主要用于“大型”项目,因为它的44k内核太大而无法适应当时的单片机。该系统在可靠性方面享有盛誉[ 需要引证 ],并且在许多工业应用中发现自己正在使用运行机械。

在20世纪80年代后期,Quantum意识到市场正在迅速转向POSIX模型,并决定重写内核以在低水平上更加兼容。结果是QNX 4.在此期间,Patrick Hayden在实习期间与Robin Burgener(当时的全职员工)一起开发了一个新的窗口系统。这个获得专利的[6]概念被开发成名为QNX Photon microGUI 的可嵌入GUI。QNX还提供了X Window系统的一个版本。

在20世纪90年代末期,该公司(现称为QNX软件系统公司)开始研发新版QNX,从头开始设计为支持SMP,并支持所有当前的POSIX API和任何可能的新POSIX API。预计仍然保留微内核架构。这导致QNX Neutrino于2001年发布。

随着Neutrino内核,QNX软件系统成为Eclipse联盟的创始成员。该公司在2002年以QNX Momentics Tool Suite的名义发布了一套与Eclipse工作台一起打包的Eclipse插件。

2004年,该公司宣布将其出售给哈曼国际工业公司。在此次收购之前,QNX软件已广泛用于汽车行业的远程信息处理系统。自Harman购买以来,QNX软件已被设计到200多种不同的汽车品牌和型号中 - 不仅在远程信息处理系统中,而且在信息娱乐和导航单元中也是如此。[ 引证需要 ]截至2011年中期,QNX CAR应用平台的运行量超过2000万辆。[7]该公司已经发布了几个中间件 产品包括QNX Aviage多媒体套件,QNX Aviage声学处理套件和QNX HMI套件。

Cisco Systems的IOS-XR(超高可用性IOS,2004年推出)[8] [9]和IOS软件模块化(2006年推出)[10]的微内核基于QNX。

2007年9月,QNX软件系统宣布推出部分源代码。[11]

2010年4月9日,Research In Motion宣布将从Harman International Industries收购QNX软件系统。[1]同一天,QNX源代码访问受到公众和业余爱好者的限制。[12] [12]

2010年9月,该公司宣布推出平板电脑,黑莓PlayBook和基于QNX 的新操作系统BlackBerry Tablet OS,以便在平板电脑上运行。[13]

2011年10月18日,Research In Motion发布了“BBX”,[14],后来于2011年12月更名为BlackBerry 10。[15] Blackberry 10设备基于BlackBerry PlayBook QNX的触摸设备操作系统,但适应智能手机的用户界面使用基于Qt的Cascades Native User-Interface框架。

在日内瓦车展上,Apple展示了CarPlay,它为兼容车辆中的主机提供类似iOS的用户界面。一旦由汽车制造商配置,QNX可以被编程为将其显示和某些功能交给Apple CarPlay设备。[16] [17]

2014年12月11日,福特汽车公司宣布该公司将用QNX 取代微软汽车。[18] [2]

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

技术
QNX内核procnto仅包含CPU调度,进程间通信,中断重定向和定时器。其他所有内容都作为用户进程运行,包括一个特殊的进程proc,通过与微内核一起操作来执行进程创建和内存管理。这可以通过两个关键机制实现 - 子程序调用类型进程间通信,以及可以加载不仅包含内核而且包含任何所需用户程序和共享库集合的映像的引导加载程序。内核中没有设备驱动程序。网络堆栈基于NetBSD代码。[20]除了支持自己的原生设备驱动程序外,QNX还支持其传统的 io-net管理服务器以及从NetBSD移植的网络驱动程序。[21]

QNX进程间通信包括从一个进程向另一个进程发送消息并等待回复。这是一个单一的操作,称为MsgSend。内核将[消息需要 ]从发送进程的地址空间复制到接收进程的消息。如果接收进程正在等待消息,则同时传输CPU的控制,而不通过CPU调度程序。因此,向另一个进程发送消息并等待回复不会导致CPU“丢失一个回合”。消息传递和CPU调度之间的这种紧密集成是使QNX消息传递广泛可用的关键机制之一。大多数Unix和Linux尽管存在用于Linux的QNX类型消息传递的用户空间实现,但进程间通信机制缺乏这种紧密集成。错误处理这个微妙的问题是一些其他微内核系统(如早期版本的Mach)令人失望的主要原因。[ 引证需要 ]收件人进程不必在同一台物理机器上。

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

消息处理按线程优先级排列优先级。由于I / O请求是使用消息传递执行的,因此高优先级线程在低优先级线程之前接收I / O服务,这是硬实时系统中的基本功能。

引导加载程序是最小微内核系统的另一个关键组件。因为用户程序可以构建到引导映像中,所以启动所需的设备驱动程序和支持库集合不需要在内核中,也不需要。甚至程序加载等功能也不在内核中,而是在作为启动映像的一部分加载的共享用户空间库中。可以将整个引导映像放入ROM,ROM用于无盘嵌入式系统。

Neutrino支持对称多处理和处理器关联,在QNX术语中称为绑定多处理(BMP)。BMP用于改进缓存命中并简化非SMP安全应用程序向多处理器计算机的迁移。

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

透明分布式处理
由于其微内核架构,QNX也是一个分布式操作系统。Dan Dodge和Peter van der Veen在“分布式内核操作系统” [23]上持有美国专利6,697,876 [22],该专利基于QNX操作系统的商业上称为透明分布式处理的分布式处理特征。这允许单独设备上的QNX内核使用与访问本地服务相同的通信机制来访问彼此的系统服务。

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

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

前台
PC Magazine于1983年4月表示,QNX是“非凡的软件”。该评论引用其多任务处理结论,“QNX为您提供了最大限度地利用PC资源的能力”。[26]

你可能感兴趣的:(基础知识)