QNX is a commercial Unix-like real-time operating system owned by BlackBerry, aimed primarily at the embedded systems market. QNX, initially released by Quantum Software Systems – later renamed QNX Software Systems – in 1982 was one of the first commercially successful microkernel operating systems. To the non-expert, the microkernel and Unix-like seem to be associated with Linux, but that is not the case. While QNX, and microkernel platforms generally, share some similarities with Linux, there are significant differences.
Microkernel vs. Monolithic Kernel
To understand the distinction between microkernel and monolithic kernel, it is first necessary to define kernel. Essentially, the kernel is a program that constitutes the central core of a computer operating system. It has complete control over everything that occurs in the system and facilitates interactions between hardware and software components. The kernel provides basic services for all other parts of the operating system, including memory management, process management, file management, and I/O management. All that said, there are several different broad categories of kernels – two of which are microkernels and monolithic kernels.
In a monolithic kernel, all operating system services – memory management, process management, file management, and I/O management – run along with the main kernel thread and live in the same memory area. Essentially, a monolithic kernel is a single large process running entirely in a single address space. A microkernel, on the other hand, usually provides only minimal services, like defining memory address spaces, inter-process communication, and process management. All other functions, like hardware management and I/O management, are implemented as processes running independently of the kernel. The main advantage of a microkernel system is that it isolates every application, driver, protocol stack, and filesystem in its own address space outside the kernel. Meaning that a failed component will not affect other components or the kernel, and the failed component can be restarted immediately, with minimal impact on performance.
BlackBerry QNX is used in a wide variety of embedded applications that need an enhanced level of fault containment and recovery. Examples of these applications include aerospace and defense systems, advanced driver assistance systems and autonomous driving systems, robotics and industrial automation systems, medical devices and systems, industrial control systems, and much more.
The major benefit of BlackBerry QNX is the microkernel architecture, which minimizes downtime and cyberattack surfaces through isolation and separation mechanisms. Device drivers and system services run alongside applications, separated from one another and the kernel. By running all operating system services outside of the kernel space, the QNX architecture promotes fault-tolerant designs, wherein the failure of one application or service will not crash the kernel, other services, or other applications.
- Case Studies
- Quickstart Guides
- Press Releases
- White Papers