Kernel
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 :
- 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.
- 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.
- Hybrid Kernel –
It is the combination of both monolithic kernel and microkernel. 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.
- 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.
- 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.
Comments