Design goals of the QNX OS
Historically, the application pressure
on BlackBerry QNX's
operating systems has been from both ends of the computing spectrum—from
memory-limited embedded systems all the way up to
high-end SMP (symmetrical multiprocessing) machines with
gigabytes of physical memory.
Accordingly, the design goals for QNX OS accommodate both seemingly exclusive sets of functionality. Pursuing these goals is intended to extend the reach of systems well beyond what other OS implementations could address.
POSIX realtime and thread extensions
Since the QNX OS implements the majority of the realtime and thread services directly in the microkernel, these services are available even without the presence of additional OS modules.
In addition, some of the profiles defined by POSIX suggest that these services be present without necessarily requiring a process model. In order to accommodate this, the OS provides direct support for threads, but relies on its process manager portion to extend this functionality to processes containing multiple threads.
Note that many realtime executives and kernels provide only a nonmemory-protected threaded model, with no process model and/or protected memory model at all. Without a process model, full POSIX compliance cannot be achieved.