Architecture Overview

The MINIX 3 architecture can be understood as a very slim kernel plus a set of user-space system services with clear boundaries. Looking at the layers first, and only then at how they communicate, is more efficient than diving straight into concrete source code.

Layering

  • Microkernel: provides the most basic scheduling, inter-process communication, interrupts, and low-level mechanisms such as IPC, the scheduler, and low-level hardware abstraction.

  • System servers: take on many operating-system functions that traditionally live in the kernel, such as PM, VM, VFS, and RS.

  • Device drivers: interact directly with hardware devices but stay out of kernel mode whenever possible, such as disk, terminal, and network drivers.

  • User programs: use operating-system capabilities through system calls and service interfaces, such as the shell, toolchains, and applications.

Reading suggestions

  • If you are new to microkernels, understand why the system is split into layers first, then how those layers cooperate.

  • If you care more about engineering questions, focus on message passing, fault isolation, and service recovery.

  • If you care more about implementation details, the next page on microkernel and message passing is the right place to go.