Microkernel: Difference between revisions

m
[unchecked revision][unchecked revision]
No edit summary
Line 5:
In theory, this concept makes the kernel more responsive (since much functionality resides in preemptible user-space threads and processes, removing the need for context-switching into the kernel proper), and improves the stability of the kernel by reducing the amount of code running in kernel space. There are also additional benefits for OS's that support multi-CPU computers (much simpler re-entrancy protection and better suitability for asynchronious functionality) and distributed OS's (code can use services without knowing if the service provider is running on the same computer or not). A drawback is the amount of messaging and Context Switching involved, which makes microkernels conceptually slower than a Monolithic Kernel. (This isn't to say that a smartly designed microkernel could not beat a foolishly designed monolithic one.)
 
TheIn "inpractice theory"things startingcan abovebe paragraphquite meansdifferent. that,For yesexample, yourif kernelthe wouldfilesystem notcrashed crashthe alongsidekernel withwould e.g.continue arunning, crashingbut filesystem. But yourthe user would still be stucklose withsome data he- cannotunless save, unlessprovisions youwere made provisions to restart the filesystem server / daemon, and data a data recovery system exists. Microkernels can be more stable, but it requires additional design work and does not come free with the architecture. Likewise, the additional design work that has to be done to get a microkernel design right could also be spent on making a monolithic kernel preemptable.
 
AmigaOS, for example, was a microkernel - and an unusual one: Since the original AmigaOS had no memory protection, its messaging was as quick as it could get (passing a pointer to memory), making the AmigaOS kernel one of the fastest ever devised. On the other hand, that lack of memory protection also meant that the microkernel architecture gave no added stability (later versions did implement MMU support, but at the same speed cost that affects other microkernel systems).
Anonymous user