Kernel

The kernel is the heart of an operating system. It is the code that runs in the processor’s privileged mode, with direct authority over the hardware, while ordinary programs run with restricted access. When a program needs something only the hardware can provide, such as reading a file or starting another process, it asks the kernel through a system call, and the kernel performs the operation on its behalf.

In Ritchie and Thompson’s 1974 description of the UNIX Time-Sharing System, the kernel is the part that implements processes, the file system, and device access. Programs see a small, consistent set of services; the messy details of scheduling the processor, allocating memory, and driving devices are hidden inside the kernel. This separation between privileged kernel and unprivileged user programs is what keeps one misbehaving program from crashing the whole machine.

Kernel design splits into two broad philosophies. A monolithic kernel, like classic Unix and Linux, puts most operating-system services, including device drivers and the file system, inside one large privileged program. A microkernel keeps the privileged core as small as possible and pushes services such as drivers out into ordinary processes that communicate by messages. The trade-off is between raw efficiency and modular isolation.

That trade-off became a famous public argument. Andrew Tanenbaum, who built the microkernel-based MINIX as a teaching system, debated Linus Torvalds over whether Linux’s monolithic design was the right choice. The dispute, sometimes called the Tanenbaum-Torvalds debate, captured a genuine and lasting tension in how the most important part of an operating system should be built.

Sources

Last verified June 7, 2026