Kernal in the operating system main part or core part or heart of the operating system. It makes the operating system functional right from the beginning of the system run to its shutdown.
When the system boots , kernel is the part of the operating system loaded into the memory , it it fails ,the computer seizes to work ans shuts down.
we call that program as bootstrap loader. It is usually stored in the first sector of the hard disk. If this sector corrupted ,then we need to change the hard disk.
The Kernal performs many important function in the operating system, which are given below:
Functions of Kernel
The process in the operating system are managed well by kernel , and it involves many different techniques to handle this complicated task. There are two types of processionals: user process and system process. usually the system process has higher priority over the user process.
It is another crucial function of kernel , memory means primary memory like RAM , not hard disk or secondary memory . The size of the RAM is usually less compared to secondary memory storage, Kernel has to manage this small size of RAM efficently to run the system. Because CPU execute the process ,which are brought to RAM not any other memory.
Hence it is absolute important to manage the RAM efficiently . We have so many mechanism to do that , paging ,virtual memory etc.
The input and output devices connected to the computer will be managed efficiently with the help of kernel. It has different file system mechanism to perform this.
The computer contains many vital resources ,which are required by many process at a single time , it is the duty of kernel to allocate these resources efficiently to all the process without any deadlock situation .
Security and Protection
Along providing many vital functionalities to the user and computer resources , kernel also play a significant role in providing the security to the computer system from malware and viruses.
Kernel mode and User mode:
When the CPU is executing the system process , it will be in kernel mode otherwise it is in user mode. The cpu switch to user mode, when it is executing the user process.
Types of Kernel
Monolithic Kernels are a type of Kernels where the user services and the kernel services are implemented in the same memory space .
Means the different memory for user services and kernel services are not used in this case. By doing so, the size of the Kernel is increased and this, in turn, increases the size of the Operating System.
Since there is no separate User Space and Kernel Space, so the execution of the process will be more faster in Monolithic Kernels compared to others.
- It provides CPU scheduling, memory scheduling, file management through System calls .
- Execution of process is fast because there is no separation between memory space of user and kernel.
- If any service fails, then it leads to system collapse.
- If any new services need to be added ,it is required to modify the entire Operating System .
A Microkernel is completely differ from Monolithic kernel because in a Microkernel, the user services space and kernel services space are implemented into different spaces ,means we use User Space and Kernel Space in case of Microkernels.
As we are using User Space and Kernel Space separately, so it decreases the size of the Kernel and this, in turn, decrees the size of Operating System.
A Hybrid Kernel is a combination of Monolithic Kernel and Microkernel. It make use of the fastness of Monolithic Kernel and the modularity of Microkernel.
Hybrid kernels are micro kernels that have some “non-essential” code in kernel-space in order for the code to run more quickly than it would be in user-space.
As the name itself suggest , the kernel code is very small compared to others. It supports nanosecond clock resolution ,hence the name.
It contains a HAL(hardware abstraction layer) which forms the lowest level of abstraction.
It contains a hypervisor.
It is a kernel designed by MIT, The idea behind exokernels is to force as few abstractions as possible on application developers, enabling them to make as many decisions as possible about hardware abstractions.
Exokernels are small, since functionality is limited to providing protection and multiplexing of resources, which is considerably simpler than conventional microkernels implementation of message passing and monolithic kernels implementation of high-level abstractions.
Exokernels available as an application of the end-to-end principle to operating systems, in which they do not force an application program to layer its abstractions on top of other abstractions that were designed with different requirements in mind.
Compared to all other kernel, the design of exokernels is complex.
In this post ,I discussed definition of kernel, it’s functionality and types with detailed explanation , if you have any suggestion, please send through the comment.