Stack Exchange Network

Stack Exchange network consists of 175 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.

Visit Stack Exchange

Everything about UNIX kernels: development, configuration, compilation, design, etc.

The kernel of every operating system builds the bridge between the application and the actual processing on the hardware level.

A typical UNIX kernel is responsible for:

  • CPU Program execution
  • Memory Management
  • Processes (Scheduling, Synchronization, Interprocess Communication)
  • Signals (Exceptions, Interrupts)
  • Filesystems (Virtual, Block)
  • I/O Architecture (Devices, Files, Networking)

The two most common architectures for UNIX kernels are:

  • Monolithic kernel: Every kernel layer is integrated in into the whole kernel and therefore runs in kernel space. Every user application has to access the kernel through a high-level interface. Most UNIX(-like) kernel follow this approach.

  • Microkernel: Only the essential parts of the kernel run in kernel space. Applications are allowed to directly address different kernel layers (device drivers, filesystems, ..).


The kernel is a UNIX-like kernel initially created by Linus Torvalds in 1991 and now is maintained by developers around the world.

Linux kernel compilation

Linux kernel internals

Further reading

history | excerpt history