• Networking
  • Programming
  • DBMS
  • Operating System
  • Internet
  • Hardware
  • Software

Tech Differences

Know the Technical Differences

Difference Between Microkernel and Monolithic Kernel

microkernel-vs-monolithic-kernelKernel is the core part of an operating system; it manages the system resources. Kernel is like a bridge between application and hardware of the computer. The Kernel can be classified further into two categories, Microkernel and Monolithic Kernel. Microkernel is the one in which user services and kernel services are kept in separate address space.

However, in Monolithic kernel user services and kernel services both are kept in the same address space. Let us discuss some more differences between Microkernel and Monolithic kernel with the help of comparison chart shown below.

Content: MicroKernel Vs Monolithic Kernel

  1. Comparison Chart
  2. Definition
  3. Key Differences
  4. Conclusion

Comparison Chart

Basis for ComparisonMicrokernelMonolithic Kernel
BasicIn microkernel user services and kernel, services are kept in separate address space.In monolithic kernel, both user services and kernel services are kept in the same address space.
SizeMicrokernel are smaller in size.Monolithic kernel is larger than microkernel.
ExecutionSlow execution.Fast execution.
ExtendibleThe microkernel is easily extendible.The monolithic kernel is hard to extend.
SecurityIf a service crashes, it does effect on working of microkernel.If a service crashes, the whole system crashes in monolithic kernel.
CodeTo write a microkernel, more code is required.To write a monolithic kernel, less code is required.
ExampleQNX, Symbian, L4Linux, Singularity, K42, Mac OS X, Integrity, PikeOS, HURD, Minix, and Coyotos. Linux, BSDs (FreeBSD, OpenBSD, NetBSD), Microsoft Windows (95,98,Me), Solaris, OS-9, AIX, HP-UX, DOS, OpenVMS, XTS-400 etc.

Definition of Microkernel

Microkernel being a kernel manages all system resources. But in a microkernel, the user services and the kernel services are implemented in different address space. The user services are kept in user address space, and kernel services are kept under kernel address space. This reduces the size of the kernel and further reduces the size of operating system.

In addition to the communication between application and hardware of the system, the microkernel provides minimal services of process and memory management. The communication between the client program/application and services running in user address space is established through message passing. They never interact directly. This reduces the speed of execution of microkernel.

In a microkernel, the user services are isolated from kernel services so if any user service fails it does not affect the kernel service and hence Operating system remain unaffected. This is one of the advantages in the microkernel. The microkernel is easily extendable. If the new services are to be added, they are added to user address space and hence, the kernel space do not require any modification. The microkernel is also easily portable, secure and reliable.

Definition of Monolithic Kernel

The monolithic kernel manages the system resources between application and hardware of the system. But unlike microkernel, the user services and kernel services are implemented under same address space. This increases the size of the kernel further increases the size of operating system.

The monolithic kernel provides CPU scheduling, memory management, file management and other operating system functions through system calls. As user services and kernel services both reside in same address space, this results in the fast executing operating system.

One of the drawbacks of the monolithic kernel is if any one service fails entire system is crashed. If a new service is to be added in monolithic kernel, the entire operating system is to be modified.

Key Differences Between Microkernel and Monolithic Kernel

  1. The basic point on which microkernel and monolithic kernel is distinguished is that microkernel implement user services and kernel services in different address spaces and monolithic kernel implement both user services and kernel services under same address space.
  2. The size of microkernel is small as only kernel services reside in the kernel address space. However, the size of monolithic kernel is comparatively larger than microkernel because both kernel services and user services reside in the same address space.
  3. The execution of monolithic kernel is faster as the communication between application and hardware is established using the system call. On the other hands, the execution of microkernel is slow as the communication between application and hardware of the system is established through message passing.
  4. It is easy to extend microkernel because new service is to be added in user address space that is isolated from kernel space, so the kernel does not require to be modified. Opposite is the case with monolithic kernel if a new service is to be added in monolithic kernel then entire kernel needs to be modified.
  5. Microkernel is more secure than monolithic kernel as if a service fails in microkernel the operating sytem remain unaffected. On the other hands, if a service fails in monolithic kernel entire system fails.
  6. Monolithic kernel designing requires less code, which further leads to fewer bugs. On the other hands, microkernel designing needs more code which furher leads to more bugs.

Conclusion

Microkernel is slower but more secure and reliable than monolithic kernel. Monolithic kernel is fast but less secure as any service failure may lead to system crash.

Related Differences:

  1. Difference Between Kernel and Operating System
  2. Difference Between Linux and Windows Operating System
  3. Difference Between Network Operating System and Distributed Operating System
  4. Difference Between DOS and Windows
  5. Difference Between Primary and Secondary Memory

Comments

  1. Mahmood says

    November 12, 2017 at 6:26 pm

    Great one… thanks

    Reply
  2. Priyanka says

    November 14, 2018 at 4:12 am

    very nice

    Reply
  3. Shashidhar says

    November 25, 2018 at 1:44 pm

    This is a very good Explanation… Thanks 🙂

    Reply
  4. Apeksha Gupta says

    September 3, 2019 at 4:30 am

    Very helpful, very well explained. Thanks a lot for this.

    Reply
  5. Arjun says

    November 3, 2019 at 12:11 pm

    Thank you for the most precise and informative notes on the difference between Monolithic and Microkernel…

    Reply
  6. Bhagya says

    May 31, 2021 at 7:44 am

    Very helpful notes. Can we get in pdf format?

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Top 10 Differences

  • Difference Between OLTP and OLAP
  • Difference Between while and do-while Loop
  • Difference Between Guided and Unguided Media
  • Difference Between Preemptive and Non-Preemptive Scheduling in OS
  • Difference Between LAN, MAN and WAN
  • Difference Between if-else and switch
  • Difference Between dispose() and finalize() in C#
  • Difference Between for and while loop
  • Difference Between View and Materialized View
  • Difference Between Server-side Scripting and Client-side Scripting

Recent Addition

  • Difference Between Unit Testing and Integration Testing
  • 4G Vs 5G
  • Raster Vs Vector Images
  • JPEG Vs TIFF
  • RJ11 Vs RJ12

Categories

  • DBMS
  • Hardware
  • Internet
  • Networking
  • Operating System
  • Programming
  • Software

Copyright © 2023 · Tech Differences · Contact Us · About Us · Privacy