Monolithic Kernel

The architecture used in the design of an OperatingSystem where one big kernel provides almost all necessary services for other user programs running. Most UnixOperatingSystems, including LinuxOperatingSystem, and other classic OperatingSystems use MonolithicKernel.

Given the criticism that MonolithicKernel is less flexible, less portable, and is error-prone, MicroKernel has become popular, mostly in academic circles. MonolithicKernel, though, is much easier to implement and shows better runtime performance than OperatingSystems based on MicroKernel. That's why many working OperatingSystems today still use classic MonolithicKernel.

Correct me if I'm wrong, but I've read somewhere that MicroKernel performs slower only because on x86 the ContextSwitch? is so expensive. On a PowerPC it's cheap (something to do with the amount of registers and rename registers, etc?) so MicroKernel works much better on it. MicroKernel is more dynamic (think upgrading some service without rebooting), has better error tolerance (restart a crashed service), and reduces system-wide stalls (things that don't have to be in the kernel are in multitasking processes), so speed on x86 is the only reason for the success of MonolithicKernel. AFAIK?

See also LinuxKernel, WhatIsaKernel, OperatingSystemsDesign


CategoryOperatingSystem


EditText of this page (last edited April 15, 2014) or FindPage with title or text search