QNX是嵌入式硬实时的微内核操作系统
有硬实时、微内核、模块化、弱耦合、分布式的特点,从1980年诞生之初就是基于SOA架构设计,基于Client-Server的模型,具体表现为:
硬实时:任何切换时间和中断时延速度快,所有的任务响应均为确定性deterministic行为。
微内核:除调度、进程管理、中断及操作系统核心的功能外,其余部分都处于用户态,包括驱动、协议栈、文件系统及功能模块等。
模块化:操作系统的各个功能单元都模块化设计,内存保护,并且相互隔离,可按照需要动态加载或卸载,基于消息机制通信,按照Client-Server的架构设计。
弱耦合:模块与模块之间互不影响,都在独立的虚拟地址空间运行。
分布式:局域网内的QNX系统对于用户角度可以认为是一台QNX系统,资源可以复用。
微内核则和宏内核结构相反,它提倡内核中的功能模块尽可能的少。内核只提供最核心的功能,比如任务调度,中断处理等等。其他实际的模块功能如进程管理、存储器管理、文件管理……这些则被移出内核,变成一个个服务进程,和用户进程同等级,只是它们是一种特殊的用户进程。
QNX是类UNIX操作系统
遵循POSIX的最高级别PSE54标准(注:POSIX标准有四个等级PSE51, PSE52, PSE53和 PSE54, 在RTOS实时操作系统的世界里,只有QNX操作系统是PSE54标准的,因为QNX诞生之初就是类UNIX系统按照POSIX标准编写),因此基于开源的应用程序以及一些开源的中间件都可以无缝的移植到QNX系统之上。QNX Microkernel和Process Manager组成QNX最小系统Procnto,其他如驱动程序、协议栈、文件系统、应用程序都作为一个独立的模块运行在QNX系统之上。
POSIX(Portable Operating System Interface,可移植操作系统接口)是一个IEEE标准,旨在提高各种UNIX操作系统上运行的软件的可移植性和兼容性。它定义了操作系统应该为应用程序提供的接口标准,使得遵循POSIX标准的软件能够在不同的操作系统上运行,而无需进行大量的修改。
POSIX标准有四个等级:PSE51、PSE52、PSE53和PSE54。这些等级代表了不同的兼容性和功能级别,其中PSE54是最高级别。在RTOS(实时操作系统)的世界中,QNX操作系统是唯一一个符合PSE54标准的系统。这是因为QNX从诞生之初就是基于类UNIX系统并按照POSIX标准编写的,因此它具有高度的兼容性和可移植性。
遵循POSIX最高标准(PSE54)意味着QNX操作系统完全遵循了POSIX定义的所有接口和功能要求。这使得基于开源的应用程序以及一些开源的中间件,只要它们也遵循POSIX标准,就可以无缝地移植到QNX系统之上。换句话说,这些应用程序和中间件无需进行大量的修改或重新编写,就可以直接在QNX系统上运行,从而大大简化了移植过程并提高了效率。
QNX Microkernel和Process Manager组成QNX的最小系统Procnto,为系统提供了基本的内核和进程管理功能。其他如驱动程序、协议栈、文件系统、应用程序等都作为独立的模块运行在QNX系统之上。这种模块化设计使得QNX系统非常灵活和可扩展,可以根据不同的需求添加或删除模块。
总的来说,POSIX最高标准(PSE54)为QNX操作系统提供了高度的兼容性和可移植性,使得基于POSIX标准的应用程序和中间件可以无缝地移植到QNX系统上。这种特性使得QNX在RTOS领域具有独特的优势,能够满足各种复杂的实时应用需求。
QNX是功能安全和信息安全的操作系统
QNX通过功能安全TUV莱茵ISO 26262 ASIL D最高等级道路车辆最高功能等级安全认证,包括QNX 操作系统、QNX Hypervisor虚拟化和Graphic Monitor图形监控子系统以及QNX IPC通讯机制black channel,同时黑莓是网络信息安全标准ISO/SAE 21434 委员会基础软件组唯一成员。