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.