Monolithic Kernel vs Microkernel vs Hybrid Kernel

An operating system consists of two parts, the kernel space which operates in privileged mode, and the user space which operates in unprivileged mode. There are two basic types of kernels, monolithic and microkernel.

A monolithic kernel runs every system service like process and memory management, interrupt handling, I/O communication, and file system, etc. in kernel space. It is constructed in a layers, built up from the fundamental process management to the interfaces to the rest of the operating system. Linux is a typical representation of a monolithic kernel.

Why is Linux called a monolithic kernel? Do not confuse the term modular kernel to not be monolithic. The Linux kernels can be compiled to be modular. But what makes it monolithic is that the modules run in kernel space, the same space that handles core functionality.

To overcome the limitations of extensibility microkernel where developed. The basic process of communication and I/O control reside in kernel space, while the other system services reside in user space in form of normal processes (as so called servers). There is a server for managing memory issues, one server does process management, another one manages drivers, and so on. Because the servers do not run in kernel space anymore, "context switches" are needed to allow user processes to enter privileged mode (and to exit again).

The Windows operating system has a hybrid kernel. In the beginning of the 1990s It was planned to be a microkernel, but due lack of performance, Microsoft decided to put many of the system services back into kernel space, including, device drivers and communication stacks. It benefits from the performance of monolithic kernels while providing the updateabality of a microkernel.

More Computer Architecture Articles:
• The Motherboard Chipset
• The Evolution of Hard Disk Bit Recording
• Pentium P5 Processor
• Processor Affinity in Symmetric Multiprocessing
• Introduction to Boolean Algebra
• Introduction to Microprocessor Programming
• Operating System Memory Allocation Methods
• Intoduction to Digital Electronics
• Intel's Core 2 Processors
• Basic Decoder Circuitry