Kernel

The so called “Kernel” is the core unit and central component of most computer operating systems.
It is the actual connection between the software (the actual operating system as-is) and the hardware (cpu, ram, harddisk). It further manages data and resources.

Thus it is also desginated as the lowest level of the abstraction layer for software and applications. In general there are two different sorts of Kernels.
On the one hand monolithic Kernels, where all operating system services run along one single thread and memory block, and on the other hand micro Kernels, consisting of multiple abstract primitives, each with it’s own special tasks.

Depending on design and functionality of a Kernel the tasks done by a operating systems differ in relation to the actual used Kernel. Most of the modern operating systems are based on the concept of a Kernel. Further more Kernel is the designation for the sum of all application layers, the lowest level of execution of the software.

The bridge between hardware and software

Without a Kernel the designing and programming of an operating system would be much more difficult as the thus loosely organized abstraction layers offer no such standardized execution platform.

Being a difficult task programming and designing a Kernel it is one of the most complex works in programming as one has to bridge the difference between hardware and software and their communication.

Functions and services

The Kernel as such is a critical component of an operating system, being responsible for performance, security, functionality, stability.
Other than that a Kernel provides functions and services for the following low-level tasks: memory management, processing, inter-process communication, hardware-software-communication, interrupt handling, system calls, general device management, process handling (controlling, starting, terminating a process).

As a core and low-level unit of an operating system the Kernel mostly has direct access to the CPU (central processing unit, or: processor), memory (Ram, hard disk), basic input / output routine (I/O subroutines in association with the BIOS).