What is a kernel- microkernel and monolithic kernel

what is microkernel

Read Time2 Minute, 3 Second

This article covers- what is a kernel? what is a microkernel, 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 Microkernel:

A microkernel 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 microkernel 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 microkernel 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 microkernel 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.