Monolithic Kernel and Microkernel Difference
Comparison Between Monolithic Kernel and Microkernel
Summary: Kernel is the main core part of an operating system. It manages system resources. Kernel is a bridge between hardware and application of the computer. Let discuss the Difference between Microkernel and Monolithic kernel in Tabular Form.
|Kernel size is large.||Kernel size is small.|
|OS is complex to design.||OS is easy to design, implement and install.|
|A request may be serviced faster.||A request may be serviced slower than monolithic Kernel.|
|All the operating system services are included in the Kernel.||Kernel provides only IPC and low-level device management services.|
|No message passing and no context switching are required while the Kernel is performing the job.||Microkernel requires message passing and context switches.|
|Monolithic kernel used in Windows 95, Windows 98, Linux and FreeBSD, etc.||Microkernel used in QNX, Symbian, L4Linux, Singularity, K42, Mac OS X, Integrity, PikeOS, HURD, Minix, and Coyotos.|
- Traditional UNIX operating system uses monolithic kernel architecture. The entire operating system runs as a single program in kernel mode. The program contains an operating system core function and device drivers.
- Most of the operation performed by kernel is via system call. Required system calls are made within programs and a checked copy of the request is passed through a system call. Image shows monolithic kernel.
- LINUX operating system and FreeBSD uses modem monolithic kernel architecture. It loads the modules at run time. There is easy access of kernel function as required and minimize the code running in kernel space.
- Monolithic kernel used in Windows 95, Windows 98, Linux and FreeBSD, etc.
Advantages Monolithic kernel :
- Simple to design and implement.
- Simplicity provides speed on simple hardware.
- It can be expanded using a module system.
- Time tested and design well known.
Disadvantages Monolithic kernel :
- Runtime loading and unloading are not possible because of the module system.
- If code base size increases maintain is difficult
- Fault tolerance is low.
- Microkernel provides minimal services like defining memory address space. IPC and process management. It is a small operating core. Hardware resource, management is implemented whenever process is executing. The function Microkernel is to provide a communication facility between the client programs.
- It also provides a facility to various services which are running in user space. Message passing method is for communication two processes.
- Microkernel runs in kernel mode and rests run in normal user processes. Microkernel also provides more security and reliability. Most of the services are running as user rather than kernel processes. By running a device driver and file system as a separate user process, an error in one can crash only a single component. Image shows Microkernel.
- Mach operating system uses Microkernel architecture. Microkernel is a Windows NT operating system provides portability and modularity.The kernel is surrounded by a number of compact subsystems so that the task of implementing Windows NT on a variety of platform is easy.
- Microkernel architecture assigns only a few essential functions to the kernel, including address space. IPC and basic scheduling. QNX is a real-time operating system that is also based upon the Microkernel design.
- The main disadvantage is poor performance due to increased system overhead from message passing.
Advantages of Microkernel :
- Microkernel allows the addition of new services.
- Microkernel architecture design provides a uniform interface on requests made by a process.
- Microkernel architecture supports the object-oriented operating system.
- Modular design helps to Stance reliability.
- Microkernel fends itself to distributed system support.
- Microkernel architecture support flexibility. User according to the requirement.