operating-systems

Definition

Microkernel

A microkernel is an operating system architecture that keeps the kernel as small and simple as possible by moving most non-essential OS services (such as file systems and device drivers) into user space.

In a microkernel design, the kernel only provides the most fundamental services required to manage the system and allow user-level services to communicate.

Core Services

The microkernel typically handles only the following tasks:

  • Process Switching: Managing the CPU and basic scheduling.
  • Basic Memory Management: Providing address space protection.
  • Low-level I/O and Interrupts: Basic hardware access.
  • Inter-Process Communication (IPC): Facilitating message passing between user-level services.

Characteristics

  • Portability: Since most of the OS is hardware-independent user code, porting to a new architecture is easier.
  • Flexibility and Extensibility: New services can be added or modified without changing the core kernel.
  • Reliability: A crash in a server process (e.g., the file server) does not necessarily crash the entire system.
  • Distributed System Support: Naturally supports distributed computing, as messages can be sent between services on different physical nodes.

For a specific implementation model of this architecture, see Process-Based Kernel.