If you are using a computer or any other electronic gadget which has an operating system. Then your device must have a kernel. And you should know about this.
A kernel is a computer program that is the core and heart of the operating system of any device. The kernel has full control over all computer hardware.
Kernel works as an intermediary between hardware and software. The kernel processes every data in every computer.
Function of kernel
Device management
Kernel controls all devices like keyboard and mouse etc with the help of device drivers. Device drivers are like a program that ensures the OS is properly able to communicate with the hardware. Connected devices to a system are required to perform a task. And all these devices are allocated by the kernel.
A kernel has a list of all available devices. This list is configured by the end-user or detected by the operating system at startup.
Memory management
A kernel has full control over computer memory. Every process requires some memory space. The kernel provides that memory to the process.
To allow memory space, Firstly kernel did paging or segmentation through which virtual addressing is done. This prevents software from overlapping each other.
Resource Management
The kernel provides and shares resources with processes. So that each process can access resources equally.
The kernel manages and initiates the connection between system hardware and software. it is responsible for the context switching between processes.
Accessing Computer resources
A kernel can access all devices connected to the computer. kernel decides which process will use which memory.
The kernel acts as a bridge between the user and device hardware. The kernel provides computer resources to computer OS and applications on their request.
Types of kernel
MicroKernels
In This, user services and kernel services are implemented in two different address spaces. Microkernels are easy to manage and maintain.
The size of the operating system is reduced when you use user space and kernel space separately. In the Microkernel system, the whole system does not crash when one process crashes.
Monolithic kernel
Monolithic kernels use the same memory for user services and kernel services. It increases the size of the kernel which ultimately increases the overall size of the operating system.
The execution of this kernel’s processes is also faster than other kernels. This kernel forms both sources and compiles smaller.
Hybrid Kernel
The hybrid kernel is a combination of a MicroKernel and a Monolithic kernel. It has the speed of a monolithic kernel and the separation property of a microkernel. In this kernel, some additional code is also included to improve the performance of the system.
This kernel is an extended version of the microkernel with some extra monolithic features. A hybrid kernel is mostly used in commercial OS.
Nano kernels
The complete code of the Nano kernel is very small. Nano kernel has a feature of hardware abstraction but is not efficient in system services.
Nanokernel is very efficient in performance. This kernel supports nanosecond clock resolution. It does not include a lot of features which is directly incorporated.
Exokernals
Exokernal is an operating-based kernel developed by the MIT Parallel and Distributed Operating System Group. In this kernel, resource protection and management are different.
This kernel allows you to perform application-specific customization. The system based on exokernels can incorporate multiple library operating systems.