QNX 操作系统2025年4月28日 | 阅读 8 分钟 QNX 是一款实时操作系统,主要面向嵌入式系统行业,是 Unix 的工业化版本。 ![]() 加拿大公司 Quantum Software Systems,后更名为 QNX Software Systems,于 20 世纪 80 年代初推出了该服务。它被广泛应用于各种产品中,包括自动化制造、火车、汽车、医疗设备等。 历史1980 年,Gordon Bell 和 Dan Dodge 在滑铁卢大学攻读实时操作系统专业期间,构建了一个基本的实时微内核和用户程序。他们认为这种系统有商业应用价值,于是同年搬迁到规划中的安大略省卡纳塔定居,成立了 Quantum Software Systems。QUNIX 的首个版本于 1982 年发布,支持 Intel 8088 CPU。1984 年,Quantum Software Systems 将 QUNIX 更名为 QNX,以避免商标侵权指控。 Unisys ICON,一台为安大略省教育系统设计的计算机,选择了 QNX 实时操作系统(RTOS)作为其操作系统,使其成为非嵌入式领域最早广泛使用的 RTOS 之一。由于 QNX 的 44k 内核对于当时单芯片处理器来说体积过大,多年来它主要用于大型项目。该系统因其可靠性而获得认可,并开始为众多工业环境中的设备提供动力。 20 世纪 80 年代末,当 Quantum 意识到市场正迅速转向 POSIX(Portable Operating System Interface)模型时,他们决定重新设计内核,使其更具底层兼容性。最终产品是 QNX 4。在此期间,当时的永久员工 Robin Burgener 和实习生 Patrick Hayden 合作开发了一个创新的窗口系统。QNX Photon microGUI 是使用这个独特理念创建的一个易于访问的 图形用户界面 (GUI)。QNX 也提供了 X Window System 版本。 20 世纪 90 年代末,QNX 发布了一个演示图片,其中包含符合 POSIX 标准的 QNX 4 操作系统、完整的 GUI、一款视觉内容编辑器、TCP/IP 社交媒体、一款互联网浏览器以及一台网站服务器。所有这些组件都集成在一张 1.44 兆字节的软盘上,面向 386 PC,展示了该操作系统的强大功能和便携性。 公司(当时称为 QNX Software Systems)在 20 世纪 90 年代初开始着手开发 QNX 的一个更新版本。该版本从头开始构建,以适应当时所有可用的 POSIX API(应用程序编程接口)以及未来可能出现的 API,同时保持微内核结构并能够执行对称多处理 (SMP)。最终成果是 QNX Neutrino 于 2001 年的推出。 QNX Software Systems 与 Neutrino 内核一起,成为 Eclipse(集成开发环境)项目的早期贡献者。2002 年,该公司推出了 QNX Momentics Tool Suite,这是一套包含在 Eclipse 工作空间中的 Eclipse 插件集合。 该公司于 2004 年宣布被 Harman Global Industries 收购。在收购之前,QNX 技术已广泛应用于汽车行业的遥测设备。自 Harman 收购以来,QNX 软件已集成到信息娱乐和导航系统、远程信息处理系统等 200 多种不同的汽车品牌和型号中。到 2011 年中期,约有 2000 万辆汽车在使用 QNX CAR Application Platform。此后,该公司还推出了多个中间件解决方案,例如 QNX HMI Suite、QNX Aviage Acoustic Processing Suite 和 QNX Multimedia Suite。 QNX 是 Cisco Technologies 的 IOS-XR(2004 年发布的极度可靠的 IOS)和 IOS Software Modularity(2006 年发布的软件模块化 IOS)的微内核基础。QNX Software Systems 于 2007 年 9 月宣布部分源代码可用。 2010 年 4 月 9 日,据报道,Research in Motion(后更名为 BlackBerry Limited)将从 Harman International Industries 收购 QNX Software Systems。同一天,QNX 代码库对爱好者和公众不可用。 该公司于 2010 年 9 月推出了 BlackBerry PlayBook 便携式电脑及其基于 QNX 的新操作系统 BlackBerry Tablet OS。 2011 年 10 月 18 日,Research in Motion 将 BlackBerry 10 改名为“BBX”。基于 Qt 的 Cascades Native User-experience 框架用于将基于 QNX 的 BlackBerry PlayBook OS 转换为适用于触摸屏设备的智能手机用户体验,从而推出了 BlackBerry 10。 Apple 在日内瓦车展上展示了 CarPlay,这是一个为兼容汽车主机提供类似 iOS 界面系统的功能。在汽车制造商配置后,QNX 可以被配置为将其某些操作,包括显示,传输到 Apple CarPlay 智能手机。2014 年 12 月 11 日,Ford Motor Company 宣布 QNX 将取代 Microsoft Auto。 QNX 于 2017 年 1 月宣布其 SDP 7.0 将很快发布,支持 C++14,并支持 Intel 和 ARM 的 32 位和 64 位平台。该版本于 2017 年 3 月发布。 技术QNX 是一款基于微内核的操作系统,其核心理念是将大多数操作系统内核执行为称为资源管理器(Resource Managers)的多个小任务。这与更传统的单体内核不同,单体内核将操作系统内核作为一个由大量独立组件组成的巨大程序,每个组件都具有独特的功能。由于 QNX 使用微内核,用户(开发人员)可以在不修改操作系统的情况下禁用任何他们不需要的功能。相反,这些服务只会停止工作。 QNX 内核 procnto 中仅包含时间间隔、中断重定向、进程间通信和 CPU 调度。所有其他进程都作为用户进程运行,包括 proc,这是一个与微内核协作以管理内存和创建新进程的特殊进程。有两种重要的机制实现了这一点:一个包含内核和特定用户程序集、共享库以及子程序调用式进程间通信的引导加载程序镜像。内核不包含任何设备驱动程序。通信堆栈使用 NetBSD 的代码构建。QNX 除了其原生设备驱动程序和遗留的 io-net 管理器服务器外,还使用从 NetBSD 移植的驱动程序来包含网络设备。 将信息从一个特定进程传输到另一个进程并等待响应的过程称为 QNX 进程间通信。这个过程称为 MsgSend。内核将消息从发送进程的地址空间复制到接收进程的地址空间。尽管会通过 CPU 调度器,但如果接收进程一直在等待通知,CPU 的控制权会同时转移。因此,当消息发送给另一个进程而它正在等待响应时,CPU 不会“错过一个回合”。 QNX 消息传递被广泛使用的主要特点之一是消息传输与 CPU 调度之间的紧密联系。大多数 Unix 和 Linux 进程间通信协议都缺乏这种紧密的集成,尽管存在 QNX 风格消息传递的 Linux 用户空间版本。其他一些微内核系统,如 Mach 的早期版本,表现不佳,因为这个问题处理得不够仔细。接收进程不需要运行在同一硬件上。 这种方法最初是为了所有 I/O、文件系统和网络操作而设计的。在传输消息时,传输的信息被复制。出于性能原因,QNX 的后续版本将网络基础设施和其他功能组件合并到一个应用程序中,从而减少了独立进程的数量。 消息的优先级排序基于线程优先级。由于 I/O 请求是通过消息转发来实现的,而消息转发是硬实时系统的关键组成部分,因此高优先级线程比低优先级线程更早获得 I/O 服务。 基本微内核系统的另一个重要组成部分是引导加载程序。设备驱动程序集和启动所需的支持库不必(通常也不会)在内核中,因为用户程序可以包含在引导镜像中。即使是应用程序加载等任务,也是由安装在引导镜像中的共享用户空间库而不是内核来完成的。完整的引导镜像可以存储在 ROM 中,无盘嵌入式计算机就是这样做的。 在 QNX 的术语中,neutrino 支持对称多处理和处理器亲和性,这被称为绑定多处理(BMP)。BMP 用于便于将非 SMP 兼容程序迁移到多处理器系统,并提高缓存加载效率。 Neutrino 同时支持自适应分区调度 (APS) 和紧密优先级抢占调度。APS 保证特定线程集获得最低 CPU 百分比,即使其他线程可能具有更高的优先级。当系统未过载时,自适应分区调度器保持严格的优先级抢占。此外,即使在系统过载的情况下,也可以将其设置为执行一组关键线程的紧密实时执行。 “Voyager”是 QNX OS 附带的 Web 浏览器。与其他分布式操作系统一样,QNX 也基于微内核设计。Dan Dodge 和 Peter van der Veen 拥有美国专利 6,697,876,题为“围绕 QNX 操作系统分布式处理特性构建的分布式内核 OS,通常称为透明分布式处理”。这使得不同设备上的 QNX 内核可以使用与访问本地服务相同的通道进行通信,从而访问他人的系统服务。 应用QNX 的一个版本是 BlackBerry PlayBook 平板电脑的主要操作系统之一。QNX 也是 BlackBerry 10 操作系统的基础。 许多知名汽车制造商在其信息娱乐系统中提供集成了 QNX 架构的版本,这是 QNX 的另一项应用。像 wolfSSL 这样的知名 SSL/TLS 库支持它。 自 2001 年发布以来,QNX Neutrino 已被移植到许多平台,并且目前兼容嵌入式行业中使用的几乎所有现代 CPU 系列。ARM、StrongARM、XScale、PowerPC、x86、MIPS 和 SH-4 都是非常相似的处理器示例。 获取许可证专业用户和非营利用户可以从 QNX 获取许可证。BlackBerry 于 2024 年 1 月发布了 QNX Everywhere,以增加爱好者对 QNX 的使用。QNX Everywhere 尚未公开发布。 社区OpenQNX 是一个自主开发的 QNX 社区门户。它提供了与新闻组和 IRC 频道的在线交互。参与该网站工作的人员来自各行各业。 该公司创建了一个名为 Foundry27 的在线 QNX 社区。它充当 QNX Neutrino 开发的中心位置,开发者可以在此注册、选择许可证并获取 RTOS 的源代码和相关工具。 下一主题操作系统属性 |
我们请求您订阅我们的新闻通讯以获取最新更新。