This article covers- what is a kernel? what is micro-kernel, and what is the monolithic kernel?
Definition of Kernel:
A kernel is a program which runs after the bootloader and is in control of everything after it.
It manages various services as input and output management, handling various calls made to the system known as system calls, etc.
It resides on the low-level of abstraction. Also, it acts as an interface/bridge between the operating system and central processing unit (CPU).
Types of Kernel:
Currently, only two types of the kernel are in use which is a micro-kernel and monolithic kernel. Let’s see what is the difference between them.
1. What is Micro-kernel:
A micro-kernel is a software or a program in which user services and kernel services are present in different address space.
Because of which the size of the micro-kernel is smaller than that of a monolithic kernel.
But as the user services and kernel services are in different address space in order for a user service to use a kernel service, message passing was used. This makes the execution of micro-kernel slower.
The micro-kernel is easily extendible. Because of which if a new service has to be added then it would not require any changes to the kernel itself. Also, if any user service crashes it doesn’t affect the working of the micro-kernel.
The examples of micro-kernel would be QNX, Minix, Symbian, Mac OS X, L4Linux, Integrity, K42, etc.
2. What is Monolithic kernel:
A monolithic kernel is a program or software in which kernel services and user services are present in the same address space. So in order for a user services to use any kernel services, a system call is used.
It makes the execution of the monolithic kernel much faster than the micro-kernel. Also, the size of this kernel is much larger than that of a micro-kernel. Which makes the size of the operating system even larger.
A monolithic kernel is not easily extendible because the user services and kernel services are present in the same address space.
So to add any services, changes have to be made in the entire kernel itself. But, the major drawback of this is if a user service crashes, it may crash the whole system.
Examples of the monolithic kernel are Microsoft Windows, Linux, BSD (OpenBSD, NetBSD, FreeBSD), Solaris, DOS, OpenVMS, etc.
Also Read: How CPU is made! Explained everything.