QNX ARCHITECTURE

A microkernel OS is sturctured as a tiny kernel that provides the minimal services used by a team of optional cooperating processes, which in turn provide the higher-level OS functionality. The microkernel itself lacks filesystem and many other services normally expected of an OS - those services are provided by optional processes.

The real goal in designing a microkernel OS is not simply to make it small. A microkernel OS emobdies a fundamental change in the approach to delivering OS functionality. Modularity is the key, size is but a side effect. To call a kernel a microkernel simply because it's small would be to miss the point entirely.

The kernel is the heart of any OS. In some systems, the "kernel" compromises so many functions that for all intents and purposes it is the entire OS.

But QNX microkernel is truly a microkernel. First of all, like the kernel of a realtime executive, it's very small. Secondly, it's dedicated to only a few fundamental services:

  • thread services

  • signal services

  • message-passing services

  • synchronization services

  • scheduling services

  • timer services

  • process manager services

Unlike threads, the microkernel itself is never scheduled for execution. The prosessor executes code in the microkernel only as the result of an explicit kernel call, an exception, or in respons to a hardware interupt.

WHY QNX Neutrino FOR EMBEDDED SYSTEMS?

QNX Neutrino is ideal for embedded realtime applications. It can be scaled down to very small sizes and provides multitasking, threads, priority-driven preemtive scheduling, and fast context-switching - all essential ingredients of an embedded realtime system. Moreover, the OS delivers these capabilities with a POSIX-standard API; there's no need to forgo standards in order to achieve a small system.