The kernel is the core piece of most operating systems. It is a
piece of software responsible for the communication between hardware and
software components. As a basic component of an operating system, a
kernel provides abstraction layers for hardware, especially for memory,
processors and communication between hardware and software. It also
provides software facilities such as process abstractions and makes
interprocess communication easier.