The kernel is the major component of the Linux operating system. It is the bridge between the hardware and its processes. This means the kernel allows the users and services to communicate directly and effectively to the hardware.
The Linux kernel is responsible for a couple of tasks namely;
- Memory Management
- Process management
- Device drivers
- System calls and security
Memory management
This keeps track of how much memory is used to store what and where. It is divided into;
- Kernel space ( it is where the kernel executes and provides its services. It has unrestricted access to the hardware. )
- Userspace ( has restricted access to hardware, used by the user for normal activities ). User programs get access to data by making system calls to the kernel. E.g allocating memory or opening a file.
Process management
A Process can be said to be a running instance of a program after its executed. The process manager determines which processes can use the CPU, when, and for how long. It is responsible for controlling and adjusting processes.
Device drivers
This acts as a mediator between the hardware and the processes. It essentially helps the hardware interact with the operating system.
Two common types are;
Character devices – These devices whose driver communicates by sending and receiving single characters. They are used as a means of communication between user and system. Examples are keyboard, mouse, USB ports, etc.
Block devices – These devices transfer units of data storage called a block. They are used as a storage medium to store data externally. Examples are USB drives and hard drives
System calls and security
This part is responsible for receiving requests for services from the process.