FOR FREE MATERIALS

Monolithic Kernel:

 

The most operating system, until recently, used a large monolithic kernel which provided services scheduling, file system, networking, device drivers, memory management, and more. Generally, a Monolithic Kernel is implemented into a single module in kernel space. 

 

This mechanism creates some disadvantages like huge size space and poor maintainability i.e. all elements sharing the same address space and same module. But nowadays the mechanism of monolithic architecture is a little bit different, replace of one single module, it has different modules which can be dynamically loaded.

 

This mechanism is very compatible with OS's capabilities because maintainability of the kernel is very easy and only necessary module is loaded, not loaded with subsystems that may not be needed.

 

Example:

Linux kernel is designed as Monolithic kernel architecture. 

 

Monolithic Kernel

 

Micro Kernel:

 

A microkernel assigns only a few essential functions to the kernel, including memory management, inter-process communication (IPC), and basic scheduling. Other OS services like device driver management, a protocol stack, file system, etc. to run in user space (User mode) by some processes, sometimes called servers which treated like any other application by the microkernel.

 

Microkernel reduces the code size of the kernel as a result it increases the maintainability, security, and stability of OS because of small code executing in kernel space. Microkernels are very small but in combination with all their necessary auxiliary code which often larger than monolithic kernels.

 

Advantages of microkernel architecture:

  • A) Maintainability is high.
  • B) The rapid development of new software can be tested without the need to reboot the kernel.
  • C) Bugs can be tested in a separate order, so if one instance is overflow then the other still functional. 
  • D) High persistency, if one instance getting erratic, then often can be substitute by mirror operation. 

 

Example: 

Some systems that use QNX and the HURD kernel based on microkernel architecture. 

 

Micro Kernel