系统简介
QNX是一个分布式、可扩展、遵从POSIX规范的类Unix硬实时操作系统。
QNX为微内核的架构,微内核只提供进程调度、进程间通信、底层网络通信和中断处理四种服务。驱动程序、协议栈、文件系统、应用程序等都在微内核之外内存受保护的安全的用户空间内运行,组件之间能避免相互影响,在遇到故障时也能重启。
QNX系统架构图
QNX Neutrino通过两个基本的原则,达到了独一无二的有效性、模块化和简洁性:
微内核架构
基于消息的进程间通信
微内核架构
在微内核OS中,内核精简,只实现OS最基本的核心部分并提供相应的服务,基于这些服务可以扩展完整的OS功能。设计一个微内核OS的目标是模块化,而并非最小化。
微内核提供的IPC服务用于将操作系统本身“粘合”在一起,这些服务的性能和灵活性决定了系统最终的性能。可以使用IPC服务和其他附加的服务来扩展内核的功能。 用户编写的进程既可以作为应用程序,也可以作为底层OS功能来支持行业特定的应用程序。 操作系统本身变得“开放”并且易于扩展。 此外,用户编写的OS扩展也不会影响核心OS的基本可靠性。
QNX内存保护
对许多依照POSIX1.003.1标准实现的实时执行程序来说,它们的运行时环境通常是单进程、多线程的模型,线程之间没法做到内存保护,而这样的环境只是POSIX假设的多进程模型的一个子集,它不支持fork()函数。相比之下,QNX Neutrino利用MMU,在受保护的环境中实现了POSIX的线程模型。
一个真正的微内核会提供完整的内存保护,这个不仅适用于用户程序,也适用于O