Kernels

From OSDev.wiki
Revision as of 07:08, 3 January 2007 by osdev>Jhawthorn
Jump to navigation Jump to search
This article concerns itself with the theory behind kernels. There also exist several Kernel tutorials.

Kernel Models

Monolithic Kernel

Main article: Monolithic kernel

Monolithic Kernels function with all of the kernel and device drivers inside one address space running in kernel mode. The principle advantage to this approach is efficiency (especially on x86 architectures where a task switch is a particularly expensive operation). Unfortunately, due to it's single address space, a bug in a device driver can bring down the entire system.

Microkernel

Main article: Microkernel

A Microkernel tries to run runs most of it's services and device drivers in userspace. This can result in an increase in stability and possibly security on machines that have a Memory Management Unit.

Exokernel

Main article: Exokernel

An Exokernel is intended to give untrusted programs as much control over the hardware as possible, and in a secure way. This allows programs to take advantage of the details of present hardware instead of having to rely on the kernel to do this, which in some cases can result in drastic performance improvements. This goes however at the cost of having to write more complex software.