Kernel Architecture

  • Monolithic Kernel: Each “modules” one big program and it runs completely in kernel mode on behalf of any current process
    • Linux is monolithic but has “modules” which are object files linked and unlinked at kernel runtime.
    • Unlike microkernel modules which execute as an individual process these monolithic modules run in kernel mode on behalf of the current process
    • This method is currently faster and more convenient because
      1. Modularized Approach: Linking/Unlinking at runtime
      2. Platform independence
      3. Less main memory usage: If not needed will be unlinked
      4. No performance penalty unlike micro kernel (statically linked)
  • Micro Kernel: The kernel only has synchronization primitives, simple scheduler, and interprocess communication mechanisms.  Other system processes run on top of the kernel such as memory allocators, device drivers, and system call handlers.  (Currently slower than monolithic due to talking between modules)
    • Theoreticaly faster: “Modularized” approach.  Each module is its own program and only interacts through a clean interface with the outside world (API ish?)
    • Hardware-independent.  All dependent components are encapsulated in microkernel code

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s