The kernel is the central component of most computer operating systems; it
is a bridge between applications and the actual data processing done at the hard-
ware level.
Kernel facilities:
• process management – scheduling, creation and termination processes;
• memory management – sharing memory, virtual addressing, file system;
• device management – device drivers, interrupt processing, plug and play;
• system calls – software-simulated interrupts, call gates, system call in-
structions
There is four main types of OS kernel:
1 Monolithic kernel – all OS services run along with the main kernel
thread, thus also residing in the same memory area. This is an oldest and most pre-
valent type of kernel. It demands rebuilding after each update of hardware. So, a
modern monolithic kernel supports loadable modules, which allows working with
hardware devices without rebuilding.
Examples: BSD Kernel (BSD), Linux Kernel (GNU/Linux), DOS Kernel
(DOS, Windows 3.1, 95, 98, Me), Solaris Kernel (Solaris, OpenSolaris).
2 Microkernel – simple abstraction over the hardware, with a set of primi-
tives or system calls to implement minimal OS services. In general, this type of
kernel is used in real-time operating systems, where high processing speed is
needed. Nanokernel and picokernel are microkernel too.
Examples: QNX, Match(GNU/Hurd), Mac OS X, Symbian OS, Windows
CE Kernel.
3 Hybrid kernel – compromise between the monolithic and microkernel de-
signs. Driver in hybrid kernel is an application, which executes in kernel address
space. But it is not a part of kernel.
Examples: Windows NT Kernel (Windows NT, 2000, XP, Vista, 7),
ReactOS Kernel, Plan9, NetWare, Haiku.
4 Exokernel – no abstract hardware into theoretical models. It allocates
physical hardware resources to different programs.
Examples: XOmB, Nemesis, MIT Exokernel.