What is the Difference Between Microkernel and Monolithic Kernel

The main difference between microkernel and monolithic kernel is that the microkernel-based systems have OS services and kernel in separate address spaces while the monolithic kernel-based systems have OS services and kernel in the same address space.

Microkernel and monolithic kernel are two types of kernels. Kernel is the core of the operating system. Therefore, there is a special memory area to store the critical code of the kernel. The kernel is an important component as it maintains the proper functioning of the entire system. It performs hardware and process management, file handling and many other tasks.

Key Areas Covered

1. What is Microkernel
     – Definition, Functionality
2. What is Monolithic Kernel
     – Definition, Functionality
3. What is the Difference Between Microkernel and Monolithic Kernel
     – Comparison of Key Differences

Key Terms

Kernel, Microkernel, Monolithic Kernel, Operating System

Difference Between Microkernel and Monolithic Kernel -Comparison Summary

What is Microkernel

Microkernel is a type of kernel that allows customization of the operating system.  It runs on privileged mode and provides low-level address space management and Inter Process Communication (IPC). Moreover, OS services such as file system, virtual memory manager, and CPU scheduler are on top of the microkernel. Each service has its own address space to make them secure. Besides, the applications also have their own address spaces. Therefore, there is protection among applications, OS Services and kernel.

Difference Between Microkernel and Monolithic Kernel

Figure 1: Microkernel Architecture

When the application requests the OS services for a service, the OS services communicate with each other to provide the required service to the application. Here, the Inter Process Communication (IPC) helps to establish this communication. Overall, microkernel-based OS provides a great level of extensibility. It is also possible to customize the services of the operating system depending on the requirements of the application.

What is Monolithic Kernel

In monolithic kernel based systems, each application has its own address space. Therefore, each application is secure. Also, the kernel contains all the OS services. Therefore, the applications can request services from the kernel. Some OS services are file system, CPU Scheduler, network access, memory manager etc. However, the OS is in a separate address space. Therefore, it is secure from the normal applications and malfunctioned applications.

Main Difference -  Microkernel vs  Monolithic Kernel

Figure 2: Monolithic Kernel-based Architecture

If an application requires a service, the hardware address space of the application switches to the hardware address space of the operating system to execute it.

Difference Between Microkernel and Monolithic Kernel

Definition

A microkernel is a kernel type that provides mechanisms such as low-level address space management, thread management and interprocess communication to implement an operating system.  In contrast, a monolithic kernel is a type of kernel in operating systems where the entire operating system works in the kernel space. These definitions explain the main difference between microkernel and monolithic kernel.

OS Services

A notable difference between microkernel and monolithic kernel is that, in a microkernel-based system, the OS services and kernel are separated. But, in a monolithic kernel system, the kernel contains the OS services.

Speed

Speed is also a major difference between microkernel and monolithic kernel. A microkernel system is slow while monolithic kernel system is fast.

Failures

In a microkernel-based system, failure in one component will not affect the other components. However, in a monolithic kernel based system, failure in one component will affect the entire system. Hence, this is also an important difference between microkernel and monolithic kernel.

Customization

Another difference between microkernel and monolithic kernel is that it is easier to add new functionalities to the microkernel; therefore, it is more customizable. However, it is difficult to add new functionalities to the monolithic kernel; therefore, it is not customizable.  

Magnitude

Moreover, the microkernel is smaller in size while the monolithic kernel is larger in size.

Conclusion

Microkernel and monolithic kernel are two types of kernels. The difference between microkernel and monolithic kernel is that the microkernel-based systems have OS services and kernel in separate address spaces while the monolithic kernel-based system has OS services and kernel in the same address space.

Reference:

1. Monolithic Structure – Georgia Tech – Advanced Operating Systems, Udacity, 23 Feb. 2015, Available here.
2. Microkernel Based OS Structure – Georgia Tech – Advanced Operating Systems, Udacity, 23 Feb. 2015, Available here.

About the Author: Lithmee

Lithmee holds a Bachelor of Science degree in Computer Systems Engineering and is reading for her Master’s degree in Computer Science. She is passionate about sharing her knowldge in the areas of programming, data science, and computer systems.

Leave a Reply