A kernel is the operating system kernel and thus one of the most important components of an operating system. It forms the transition between the application programs and the hardware. The kernel forms the lowest layer of the operating system. On it further layers are arranged layer by layer on top of each other, whereby each higher layer uses the structures and functions of the layer lying under it.
Among the tasks of the kernel is the management of communication between the hardware and software components. It has direct access to the hardware and forms the lowest level of the Hardware Abstraction Layer( HAL), and allocates processor and input/output (I/O) system resources to application programs.
Kernels differ among operating systems according to their tasks, design and implementation. While monolithic kernels run the operating system code under the same address space to improve their performance, microkernels run a large part of the operating system under the user address space, thereby improving the maintainability and modularity of the operating system.