Monolithic Kernel: Difference between revisions

[unchecked revision][unchecked revision]
Content deleted Content added
No edit summary
m BSD is not a single OS
 
(8 intermediate revisions by 7 users not shown)
Line 1:
{{Template:Kernel designs}}
 
==Design==
{|align="right"
|[[Image:Monolithic.png|frame|right|Basic overview of a monolithic kernel.]]
|}
 
A monolithic kernel includes all (or at least, most) of its services in the kernel proper.
 
This reduces the amount of context switches and messaging involved, making the concept faster than a [[Microkernel]]. On the downside, the amount of code running in kernel space makes the kernel more prone to fatal bugs.
 
The word "monolithic" by itself means a single piece (mono) that is of or like stone (lithic), however when applied to kernels the exact meaning is more general. Most people{{who}} consider that a kernel where device drivers and services run as part of the kernel is a monolithic kernel, regardless of whether parts are dynamically loaded "kernel modules" or if everything is a true single unchangeable binary. For this reason I draw, a distinction can be drawn between "monolithic" and "pure monolithic".
 
Modern versions of Linux are a well-known example of a monolithic kernel - while drivers are shipped as dynamically loaded "kernel modules" they are still loaded into and running in kernel space. Monolithic kernels are common for the 80x86/PC architecture.
Line 12 ⟶ 17:
 
In general most OS's aren't "pure monolithic" or "pure micro-kernel", but fall somewhere between these extremes in order to make use of the advantages of both methods.
 
==Examples==
*Linux
*MSDOS, including Windows 9x (95, 98, Me)
*Mac OS <= 8.6
*Most BSDs
*[[Xv6]]
 
[[Category:Kernel]]
[[Category:Design]]