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. |