What is Kernel ?
Kernel acts as a bridge between applications and data processing performed at hardware level using inter-process communication and system calls.
A Kernel is a computer program that is the heart and core of an Operating System. Since the Operating System has control over the system so, the Kernel also has control over everything in the system. It is the most important part of an Operating System. Whenever a system starts, the Kernel is the first program that is loaded after the bootloader because the Kernel has to handle the rest of the thing of the system for the Operating System. The Kernel remains in the memory until the Operating System is shut-down
Type of Kernel
- Monolithic Kernel. This kernel type has all required functionality inside the kernel, schedulers, device drivers, memory management etc all in a memory space owned by the kernel. Monolithic kernels typically have the highest data throughput of all kernels and is best used in large servers or job dedicated servers.
- MicroKernel. This kernel type uses the minimum set-up required for scheduling, memory management and inter-process communication. This vastly reduces the amount of memory required for kernel use. The minimum size of the kernel means that the amount of extra communication required by device drivers reduces the maximum data flow through the kernel but also decreases kernel response time to interrupts. Microkernels are typically found in real time systems.
- Hybrid Kernel. This is a mix between the 2 above. The kernel is larger than micro but smaller than monolithic. What you normally get is a stripped down monolithic kernel that has the majority of device drivers removed but still all of the system services within the kernel space. The device drivers will be attached to the kernel as required when starting up or running. These kernels are typically found on desktops, your Windows, Mac and Linux OS flavours.
- Nanokernel. In a Nanokrnel, as the name suggests, the whole code of the kernel is very small i.e. the code executing in the privileged mode of the hardware is very small. The term nanokernel is used to describe a kernel that supports a nanosecond clock resolution.
- Exo-Kernel. This kernel is the smallest kernel that I know of. It offers process protection and resource handling and nothing else. The programmer using this kernel is responsible for correctly accessing the device they wish to use.
Comments
Post a Comment