Kernel is central component of an operating system that manages operations of computer and hardware. It basically manages operations of memory and CPU time. It is core component of an operating system. Kernel acts as a bridge between applications and data processing performed at hardware level using inter-process communication and system calls.
Kernel loads first into memory when an operating system is loaded and remains into memory until operating system is shut down again. It is responsible for various tasks such as disk management, task management, and memory management.
It decides which process should be allocated to processor to execute and which process should be kept in main memory to execute. It basically acts as an interface between user applications and hardware. The major aim of kernel is to manage communication between software i.e. user-level applications and hardware i.e., CPU and disk memory.
Objectives of Kernel :
- To establish communication between user level application and hardware.
- To decide state of incoming processes.
- To control disk management.
- To control memory management.
- To control task management.
Types of Kernel :
1. Monolithic Kernel –
It is one of types of kernel where all operating system services operate in kernel space. It has dependencies between systems components. It has huge lines of code which is complex.
Example :
Unix, Linux, Open VMS, XTS-400 etc.
- Advantage :
It has good performance. - Disadvantage :
It has dependencies between system component and lines of code in millions.
2. Micro Kernel –
It is kernel types which has minimalist approach. It has virtual memory and thread scheduling. It is more stable with less services in kernel space. It puts rest in user space.
Example :
Mach, L4, AmigaOS, Minix, K42 etc.
- Advantage :
It is more stable. - Disadvantage :
There are lots of system calls and context switches.
3. Hybrid Kernel –
It is the combination of both monolithic kernel and mircrokernel. It has speed and design of monolithic kernel and modularity and stability of microkernel.
Example :
Windows NT, Netware, BeOS etc.
- Advantage :
It combines both monolithic kernel and microkernel. - Disadvantage :
It is still similar to monolithic kernel.
4. Exo Kernel –
It is the type of kernel which follows end-to-end principle. It has fewest hardware abstractions as possible. It allocates physical resources to applications.
Example :
Nemesis, ExOS etc.
- Advantage :
It has fewest hardware abstractions. - Disadvantage :
There is more work for application developers.
5. Nano Kernel –
It is the type of kernel that offers hardware abstraction but without system services. Micro Kernel also does not have system services therefore the Micro Kernel and Nano Kernel have become analogous.
Example :
EROS etc.
- Advantage :
It offers hardware abstractions without system services. - Disadvantage :
It is quite same as Micro kernel hence it is less used.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
Recommended Posts:
- Kernel I/O Subsystem in Operating System
- Difference between Operating System and Kernel
- Allocating kernel memory (buddy system and slab system)
- System Protection in Operating System
- User View Vs Hardware View Vs System View of Operating System
- System Programs in Operating System
- File System Implementation in Operating System
- Xv6 Operating System -adding a new system call
- Traps and System Calls in Operating System (OS)
- Difference between User Level thread and Kernel Level thread
- Monolithic Kernel and key differences from Microkernel
- The Linux Kernel
- Relationship between User level thread and Kernel level thread
- Difference between Process and Kernel Thread
- User mode and Kernel mode Switching
- Process Schedulers in Operating System
- Introduction of Deadlock in Operating System
- Thread in Operating System
- Paging in Operating System
- Banker's Algorithm in Operating System
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

