The
kernel is a core or main part of an
operating system which is intermediate between
software and
hardware, and complete control over everything in the system. It is much like a operating system but its not an operating system. It is very very important part of any operating system. It handles everything to startup as well as input or output requests from software. Software is those are peaces of programming which is we can't touch but see, like VLC media player, MS Word and Ms Paint etc.. It is a bridge between
applications and the actual data processing done at the hardware level. Hardware is those components which is we can touch and see, like mouse, keyboard and speakers etc.. It is transfer raw data software to hardware and hardware to software. It is most important program that is loaded after the operating system installed and until the operating system uninstall again. Every operating system has needed a kernel. Without a kernel, you can’t have an computer that actually works. It also handles memory and other devices like keyboards, monitors, printers, and speakers.
|
Kernel |
How does kernel work:
Suppose you want to play the video on VLC media player, this software can't directly contact to hardware, their are need a middle man which is kernel. The
processor switches between the two mode,
user mode(set mode bit=1) and
kernel mode(set mode bit=0) for processing. Then the operating system send a request to kernel for need permission to CPU, GPU, Sound Box, Monitor etc., which called is system calls. Now an operating system is send mode bit=0 to go to kernel mode from user mode for play the video and after processing send mode bit=1 to go to user mode from kernel mode. At last you watched the video.
|
Kernel Layout
|
And it is decided the amount of resources to be used for every applications. Every program must get a limited amount of resources, so that all the other programs run well and not interfered.
Functions of Kernel:
The functions of kernel not limited an interface. It acts a central authority which is guard memory. It is responsible for resource management, process or task management, device management, disk management and security or protection management etc..
- Resource Management: Every program must get a limited amount of resources, to manage the computer’s resource and allow other programs to run and use these resources. Resource usage which can be controlled includes CPU usage, memory usage, I/O(Input/Output) bandwidth, etc..
- Process or task management: Kernel has allow the execution of applications. It provides a user interface that allows users to request a specific task. A process contains all the information about the task that needs to be done and the proper functioning of the systems, it is handled by the Kernel.
- Device Management: As device management is a very OS specific topic, which are handled differently by each kind of kernel design. The kernel provides the I/O(Input/Output) to allow drivers to physically access their devices through some port or memory location. A device driver is a computer program that enables the operating system to interact with a hardware device.
- Disk Management: The kernel keeps track about which part of the memory is currently allocated and which part is available for being allocated to the other processes. And the kernel has full access to the system's memory. It allows processes to safely access this memory as they require it.
- Security or protection Management: Kernel also provides protection from faults (error control) and from malicious, worms and trojan horses behaviors (Security). Basically this can be language based protection systems, in which the kernel will only allow code to execute which has been produced by a trusted language compiler.
|
Functions of Kernel
|
Types of Kernel:
- Monolithic Kernels: The monolithic kernel is older kernel used in UNIX, MS-DOS and early MAC-OS. This is basically makes the kernel handle all of operating system's jobs like I/O(Input/Output), device drivers, and the file system. It results in faster access, but if there is a bug in the device driver, the entire system crashes.
- Micro kernel: The micro kernel is used for both of kernel space and user space to run all of the system processes. In this type of kernel contains only the basic code needed to communicate with hardware and load an operating system. They should be used where security and the crashing system isn’t or will not happen.
- Hybrid Kernel: In this hybrid kernel is to have an implementation structure is same as monolithic kernel but a kernel structure similar to that of a micro kernel. This is a combination of both monolithic kernel and micro kernel.
- Nano Kernel: Nano kernel is smaller kernel than a micro kernel. Nano means small, The term of nano kernel means the whole code of the kernel is very small and the code executing in the highly privileged mode of the hardware is very small. It is higher levels of the system that implement policy access the nano-kernel through a single interface.
- Exo Kernel: An exo kernel is only offers process protection and resource handling. It is the mostly used when you are testing project and you want upgrade to a better Kernel type. It is remove the notion that an operating system should provide abstractions on which applications are built. And the design of the exo kernel is very complex.
|
Types of Kernel |
If you have any question in this topic, so you can ask me on comment box. If you like this post, so you can share this post on social media, because
'information is wealth'.
No comments:
If you have any doubts, please let me know.