From Computer History Wiki
Jump to: navigation, search

A microkernel is a way of structuring an operating system; the kernel contains as little as possible, and many functions performed in the kernel in a 'monolithic' kernel (e.g. the file system) are moved out to 'privileged' processes, which perform those functions for users.

There is still no general agreement on the use of microkernels; although they are generally more robust, and have capabilities that the 'classic' monolithic kernels do not have (e.g. the ability to switch to a new version of the file system code while the system is running), the division usually imposes some overhead, which is un-acceptable to some.

Microkernels can, unless implemented cleverly, be slower than a normal operating system; the extra context switches required to activate the processes providing 'system' functions can be a source of overhead. The advantages of a microkernel are that the amount of code in the kernel is minimized, reducing the chance of a bug that can crash the entire system; and that the functions moved out to processes can be upgraded while the system is running.

Functions typically left in the kernel are the provision of processes (and their address spaces), including scheduling, and some sort of inter-process communication.

See also