• ↑↓ pour naviguer
  • pour ouvrir
  • pour sélectionner
  • ⌘ ⌥ ↵ pour ouvrir dans un panneau
  • ←→ pour naviguer
  • esc pour rejeter
⌘ '
raccourcis clavier

Framing

This synthesis compares the two dominant operating system kernel architectures — monolithic and microkernel. Both solve the same problem (how to organize the kernel’s internal components) but make opposite tradeoffs: monolithic kernels prioritize performance by running everything in kernel space, while microkernels prioritize safety and modularity by running only the minimum in kernel space. The choice between them shapes the entire OS’s performance profile, security posture, maintainability, and fault tolerance.

Structured Comparison

DimensionMonolithic KernelMicrokernel
Services locationAll in kernel spaceEssential only in kernel; rest in user space
CommunicationDirect function callsIPC (message passing)
PerformanceFast — no IPC overheadSlower — IPC and mode switch overhead
SecurityLower — large attack surfaceHigher — most services run with limited privilege
StabilityLower — one bug crashes the OSHigher — service crashes are isolated
Kernel sizeLarge (millions of LOC)Small (tens of thousands LOC)
ExampleLinux, traditional UnixMINIX 3, QNX, L4, Mach
Primary goalMaximum performanceMaximum reliability
MaintenanceComplex — tightly coupled codeEasier — modular, independent services

Insights Beyond Individual Concepts

The Performance-Safety Spectrum

Monolithic and microkernel architectures exist on a spectrum, not a binary divide. Modern Linux is not a “pure” monolithic kernel — it supports dynamically loadable kernel modules (LKMs), which adds a degree of modularity. Conversely, many microkernels allow certain performance-critical drivers to run in kernel space as an optimization. The practical distinction is where the boundary is drawn, not whether it exists.

Why Microkernels Haven’t Won

Despite their theoretical advantages in safety and modularity, microkernels are rare in mainstream computing. The primary reason is the IPC overhead: every service request between user-space components requires multiple mode switches and message copies, resulting in 5-30% performance degradation for I/O-intensive workloads. For desktop and server workloads, this penalty outweighs the safety benefits for most users. However, in safety-critical domains (automotive, aerospace, medical), the reliability guarantees of microkernels like QNX are non-negotiable.

The Hybrid Reality

Most deployed OSes are hybrids. Windows NT architecture places the kernel, executive, and hardware abstraction layer in kernel space, while many subsystems (graphics, printing) run in user space. macOS uses the XNU kernel, which combines a Mach microkernel core with a monolithic BSD layer. This hybrid approach tries to capture the best of both worlds: fast kernel-internal communication where it matters, and user-space isolation for crash-prone components like drivers.

Connections