The kernel is the software that manages program access to machine resources.

In UNIX/Linux, the kernel provides process management, memory management, input/output management and file management.

  • The Process Management portion of the kernel controls the scheduling, creation, termination, and accounting of all processes, including making/terminating child processes.

  • The Memory Management portion of the kernel provides the control, accounting and management of real and virtual memory through paging and segmentation.

  • The Input/Output Management subpart of the kernel is the interface between the hardware and software. The management occurs between the user address space and the kernel address space. It also manages the data between the kernel address space and the hardware devices.

  • The File Management portion of the kernel controls the structure and storage of user and system data in long-term, non-volatile medium.