A true kernel

The kernel is the heart of any operating system. In some systems, the kernel comprises so many functions that for all intents and purposes it is the entire operating system!

But our microkernel is truly a kernel. 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 via POSIX thread-creation primitives
  • signal services via POSIX signal primitives
  • message-passing services—the microkernel handles the routing of all messages between all threads throughout the entire system.
  • synchronization services via POSIX thread-synchronization primitives.
  • scheduling services—the microkernel schedules threads for execution using the various POSIX realtime scheduling policies.
  • timer services—the microkernel provides the rich set of POSIX timer services.
  • process management services—the microkernel and the process manager together form a unit (called procnto ). The process manager portion is responsible for managing processes, memory, and the pathname space.

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