The kernel provides an layer between hardware and software.

A is a type of program that allows users to interact with a computer system through text-based commands.

The kernel communicates directly with the .

The is responsible for managing the memory used by different processes running on a computer system.