镜像网站怎么做排名,云南seo整站优化报价,网络营销公司起名,四川公众项目咨询管理有限公司文章目录 前言1. QNX简介1.1 什么是QNX1.2 QNX的应用场景1.3 QNX的优点1.4 QNX的发展史1.5 QNX的商业模式 2. QNX的技术特点3. QNX和其它操作系统的比较3.1 QNX VS LINUX3.2 QNX VS FreeRTOS3.3 QNX VS 鸿蒙操作系统 4. 我的疑问4.1 微内核看起来又稳定又容易调试#xff0c;为… 文章目录 前言1. QNX简介1.1 什么是QNX1.2 QNX的应用场景1.3 QNX的优点1.4 QNX的发展史1.5 QNX的商业模式 2. QNX的技术特点3. QNX和其它操作系统的比较3.1 QNX VS LINUX3.2 QNX VS FreeRTOS3.3 QNX VS 鸿蒙操作系统 4. 我的疑问4.1 微内核看起来又稳定又容易调试为什么LINUX还是采用了宏内核呢4.2 QNX为什么在汽车领域应用如此广泛4.3 QNX的分布式处理具体是什么怎么实现的 5. 参考链接 前言
今天在看工作机会时看到很多ROS相关的岗位中会提到要对QNX/LINUX/ROS熟悉然后ROS和LINUX都已经知道了但是对于QNX自己还是很蒙的于是抽了点时间整理了下给自己科普下。
由于属于自我科普记录所以不会很深入的探讨如果大家想要深入了解可去参考资料链接中寻找对应的资源。
1. QNX简介
1.1 什么是QNX
QNX原名叫做Quick UNIX是Gordon Bell和Dan Dodge在1980年成立了Quantum Software Systems公司后根据大学时代的一些设想写出来的。直到ATT发律师函过来才把名字改成QNX。
另外说明一下ATT是美国电话电报公司也就是发明电话的那个贝尔大神创建的公司然后在电话的专利过期后市面上出现了很多的不同电话公司和ATT产生了竞争为了保持技术上的领先优势他们创建了一个实验室就是后面的科技圣地贝尔实验室。UNIX就是出自贝尔实验室。
QNX是一种商用的类Unix微内核实时操作系统遵从POSⅨ规范其核心仅提供4种服务进程调度、进程间通信、底层网络通信和中断处理其进程在独立的地址空间运行。QNX核心非常小巧QNX4.x大约为12Kb而且运行速度极快。
其调度策略为:抢占式的、基于优先级的正文切换
1.2 QNX的应用场景 汽车领域 2010年QNX被RIM黑莓手机母公司并购的消息传出才让这个在中国的认知度并不高的“默默无闻”的操作系统厂商被大家所熟知。但在汽车领域QNX早已是最大的操作系统供应商。据不完全资料显示QNX在车用市场占有率达到75%目前全球有超过230种车型使用QNX系统 现在随着汽车上Linux使用的越来越广泛QNX和LINUX之间达成了一种平衡QNX利用其精简、安全、稳定的优势在关键领域如汽车仪表上应用的比较广泛。Linux则在影音系统娱乐等方面应用的比较广泛 其它领域 除汽车领域之外QNX的最大客户订单来源于思科系统其中高端路由设备几乎全部采用QNX操作系统因此网络通信也成为了QNX第二大应用领域。
1.3 QNX的优点 容易移植到UNIX/LINUX操作系统上 虽然QNX本身并不属于UNIX但由于其提供了POSIX的支持使得多数传统UNIX程序在微量修改(甚至不需修改)后即可在QNX上面编译与运行。 微内核结构 内核独立自处于一个被保护的地址空间驱动程序、网络协议和应用程序处于程序空间中既做到了安全又做到了调试驱动程序时无需编译内核简化的调试。 驱动程序、网络协议、文件系统等操作系统模块和内核相互独立任何模块的故障都不会导致内核的崩溃 漏洞极少 由于其代码量少且没有开源因此更加安全由于没有开源外界接触不到其核心代码的实现就很难找到攻击切入点 市场占有率高 据说在2019年时全球前十大汽车公司中有9家正在使用QNX技术不过看这个图我怎么感觉Linux才是以后的主流啊。很明显Linux把其它的操作系统和Wince的份额给占据了。QNX没怎么变化有可能QNX这部分是存量的汽车正在使用。
1.4 QNX的发展史
1980年QNX正式诞生
2004年被音响设备制造商哈曼公司收购
2010年被黑莓手机制造商RIM收购以获取QNX软件公司的车载无线链接技术。此时QNX主要开发汽车、通讯设备所使用的操作系统并占据的汽车操作系统的半壁江山还要多1.5 QNX的商业模式 授权许可 QNX 可能通过授权许可的方式允许其他公司在其产品中使用 QNX 的技术和知识产权。 产品销售 QNX 向客户销售其操作系统和相关软件产品客户可以根据自己的需求选择不同的版本和功能。
2. QNX的技术特点 微内核架构
在微内核架构中大部分操作系统服务如设备驱动协议栈文件系统等都是在用户模式下作为独立的进程运行而不是在内核模式下运行。运行在用户模式下的进程比内核模式下的进程更有弹性在用户模式下出现问题的服务可以在不影响其他服务的情况下重新启动因此这极大提高了系统整体的稳定性。
实时性
实时操作系统的核心概念就是在特定时间内保证对输入事件做出反应。来自各个高优先级任务的实时请求必须能够在预定的时间内得到满足。这使得QNX非常适合于那些需要实时反馈的、严格时间要求的系统或设备例如各种实时控制系统医疗设备交通运输航天设备等。
分布式处理
QNX透明网络计算模型的特性允许进程在网络上的任何节点上进行通信它使得开发人员可以像在一台机器上编程一样进行编程而不用关心进程具体运行在哪个物理机器上。这种特性为开发复杂的分布式系统、多机器合作的机器人系统、集群系统等提供了极大的便利。
高可靠性
QNX的微内核架构使得系统级的服务成为独立的进程在用户空间中运行因此即使一个服务发生故障也不会导致其他服务甚至整个系统崩溃这样就极大地提高了系统的可用性和可靠性使QNX在那些不能容忍系统故障的大规模关键任务中得以广泛应用。
POSIX兼容性
POSIX是一种针对UNIX类操作系统的应用程序接口API标准。QNX对POSIX有着很好的支持这意味着在其他POSIX系统如Linux或UNIX上运行的软件通过一定的移植工作就可在QNX系统上运行大大简化了软件的开发和移植工作。
多处理器支持
QNX具有对称多处理SMP和异构多处理AMP的支持通过这两种方式QNX可以在多个处理器上均衡地运行程序提高系统的并发处理能力使系统性能进一步提升。
支持多种文件系统
QNX支持多种常见的文件系统包括自身的Power-safe, FAT, NFS, Ext2/3,ISO-9660 等这使得QNX无论是在内部存储还是网络共享存储的应用上都有很好的兼容性。
3. QNX和其它操作系统的比较
3.1 QNX VS LINUX
设计哲学
QNX是一种实时操作系统RTOS。它旨在保证精确和确定的延迟响应。它使用微内核架构这种架构将操作系统的大部分功能比如设备驱动文件系统等作为单独的进程在用户空间运行。Linux则是一种通用的操作系统广泛应用于服务器桌面和移动设备等领域。它使用单体内核架构这种架构将操作系统的各项功能直接内置在内核内部运行。实时性
QNX的RTOS设计使得它有更好的实时性较低的中断延迟和更可预测的任务切换延迟。这使得QNX在需要实时响应的应用比如工业控制医疗设备和车辆系统等领域有更好的表现。虽然Linux也提供了实时内核RT Linux以增加实时处理能力但它的实时性能通常不如专为实时性能设计的QNX。稳定性和可靠性
QNX的微内核设计使得系统更加稳定和可靠。因为微内核设计将大部分系统功能运行在用户空间如果某个功能如设备驱动出现问题它的崩溃不会导致整个系统的崩溃。Linux的单体内核设计虽然在性能上有优势但是如果内核中的某个部分失败可能会导致整个系统崩溃。社区支持和可用软件
Linux拥有大量的用户、开发者社区和大量的开源软件它的软件生态系统更丰富。QNX的使用更多的集中在特定的行业领域和嵌入式系统其用户社区和可用软件资源相对较少。许可和费用
Linux是开源的并使用GPL许可证企业和个人可以免费使用。QNX并非完全开源虽然有免费的非商业版本但是商业使用通常需要付费取得许可3.2 QNX VS FreeRTOS
设计哲学
QNX使用的是微内核设计这种设计将系统的服务和驱动等功能模块化运行在用户空间上增强了系统的稳定性。FreeRTOS采用了小内核设计主要提供了实时任务调度、信号量、队列、时钟、固件升级等基础功能, 是一款轻型的操作系统。内存管理
QNX有完整的内存管理支持包括虚拟内存和物理内存的管理。FreeRTOS往往在资源受限的系统使用它没有完整的内存管理机制。它使用静态分配和循环缓冲区管理内存。硬件支持
QNX支持多种处理器架构包括ARMPowerPCx86以及MIPS等。FreeRTOS主要支持面向微处理器的单片机和微控制器平台, 包括ARM Cortex-MMicrochip PICAtmel AVRRenesas RX等。性能和实时性
QNX的优化性能和实时性能适用于复杂应用如汽车系统医疗设备和工业自动化。FreeRTOS适合内存受限对实时性要求不是特别高的简单应用或者嵌入式系统。商业模式和社区
QNX并非完全开源其商业版本需要付费。FreeRTOS是开源的并使用MIT许可证可以免费使用。中断处理:
QNX允许中断处理程序是非实时的并且在非实时环境中运行。FreeRTOS的中断处理必须是实时的并且在具有严格时间限制的实时环境中执3.3 QNX VS 鸿蒙操作系统
QNX 和 鸿蒙操作系统 (HarmonyOS) 都是微内核操作系统RTOS它们有着各自的特点和优势。以下是这两种系统的比较
架构设计
QNX 是一个成熟的微内核的实时操作系统。微内核设计将操作系统的大部分功能例如设备驱动程序、文件系统作为用户模式操作的进程进行处理提高了系统的稳定性和安全性。此外由于其高度模块化的特点增加或删除功能也更为方便。鸿蒙 OS 也是采用微内核设计并且它还有分布式操作系统的特性。鸿蒙操作系统的微内核设计针对全场景软硬一体的需求可以用于各种设备比如手机、车载系统、家电等而且可以进行跨设备部署。对开发者的友好度
QNX 是商业授权的操作系统除非是大规模的商业性部署否则入门门槛就是费用且大多数关于QNX的资料并不容易获取增加了开发者的学习成本。鸿蒙 OS 从一开始就宣布开源并且提供了详细的文档和开发者社区的支持对开发者较为友好。生态系统
QNX 生态系统成熟特别是在汽车行业很多知名车企的汽车信息娱乐系统车载infotainment系统都在使用QNX。与此同时QNX的安全性和稳定性也让它在医疗、能源等需求严苛的行业中得到了广泛应用。鸿蒙 OS 的生态系统正在建立中尽管已经有很多华为的设备开始使用鸿蒙操作系统但在与Android和iOS系统的竞争中鸿蒙在应用程序的数量与质量上还需要时间去丰富和优化。4. 我的疑问
4.1 微内核看起来又稳定又容易调试为什么LINUX还是采用了宏内核呢
效能 微内核的设计中很多系统功能如设备驱动、文件系统被转移到用户空间执行这种设计导致了大量的系统调用和消息传递。这种频繁的上下文切换和消息通信会引发大量的性能开销。而宏内核把大部分的系统服务都放在内核空间执行效率更高。
复杂性 用微内核设计的操作系统需要系统服务在用户空间以进程的形式运行。为了管理这些用户空间的进程操作系统需要一个复杂的进程通讯和同步机制这增加了设计和实现的复杂性。
成熟度与适应性 Linux在90年代初期发布当时微内核技术还远远没有现在成熟而宏内核更为成熟并且被广泛使用。此外Linux作为一个开源操作系统它的目标是尽可能低成本和快速地支持尽可能多的硬件平台从这一角度来看宏内核设计更为适合。
历史问题 Linux内核的设计者Linus Torvalds在内核设计问题上对微内核有着明显的偏见。他曾经公开表示他认为微内核的性能损失无法接受而且他认为微内核会带来过多的复杂性。
4.2 QNX为什么在汽车领域应用如此广泛
虽然不开源但是确实是很安全稳定。
4.3 QNX的分布式处理具体是什么怎么实现的
微内核架构
QNX Neutrino RTOS基于微内核架构。在这种架构下内核功能被最小化大多数服务都像常规进程一样运行。这使得系统更加模块化便于维护和升级。此外微内核也使得各个服务可以在不同的处理器上运行因此非常适合构建分布式系统。
消息传递机制
QNX系统中的各个进程之间通过发送和接收消息进行通信。这种机制是位置无关的也就是说相同的代码可以用来在本地或远程传递消息。当一个进程想要发送消息到另一个进程时它不需要知道接收进程在哪个处理器上运行因此代码可以在没有任何修改的情况下在分布式系统中运行。
透明的网络分布式处理TNDP
TNDP是QNX系统中的一种特性它允许一个进程将消息发送到另一个进程无论这个进程是否在本地系统上运行。TNDP使得分布式处理变得透明也就是说开发者可以将这个系统看作是一个单一的整体而不必关心消息是如何在系统中传递的。
这个TNDP是QNX的商业机密找不到怎么实现的
支持多协议和多硬件
QNX支持多种网络协议和硬件平台从而使得分布式处理可以在广泛的硬件和网络环境中实现。
5. 参考链接
百度百科 QNX
QNX官网
QNX的开源代码
QNX的框架文档
开源时代QNX凭什么与Linux抗衡
漫谈QNX架构