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
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.
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.
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.
Leave a Reply