Kernel

Kernel

A kernel is the part of the operating system that enables access to system resources like CPU, memory, disk, etc. It is responsible for enabling multiple applications to share the hardware by controlling access to CPU, memory, disk I/O, and networking.


Functions of Kernel

Resource allocation- Kernel allocate resources such as CPU memory and I/O devices to programs to run 


Process management- A process refers to a running job and defines which memory portion the application can access.

Memory management- Kernel allows processes to safely access the memory as they require it.

I/O management- Kernel maintains a list of available devices and provides physical access to the devices using their drivers.

Interprocess communication- Kernel provides methods of communication between processes which is called inter-process communication (IPC).

Scheduling- Kernel uses scheduling algorithms to determine which process running next and how much time it will be given and this function is very useful in a multitasking system.

System calls and interrupts handling- A system call is used to request a service from the operating system and interrupt is a signal to the processor that an event needs immediate attention. The kernel provides a library of functions, application programming interface(API) which are used to invoke a system call or an interrupt

Security or protection management- Kernel also provide protection from fault and malicious behavior