Kernels: Difference between revisions

1,236 bytes removed ,  16 days ago
m
[unchecked revision][unchecked revision]
No edit summary
 
(12 intermediate revisions by 6 users not shown)
Line 1:
#REDIRECT [[Kernel]]
:''This article concerns itself with the theory behind '''kernels'''. There also exist several [[:Category:Kernel tutorials|Kernel tutorials]].''
 
{{Redirect page}}
==Kernel Models==
 
===Monolithic Kernel===
{{main|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|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|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.
 
[[Category:Kernel]]
409

edits