Kernel
Controls the hardware via device drivers and firmware, and manages interactions between hardware and software.
the Kernel is responsible for:
- Process scheduling
- Decides which processes get to run, when and for how long
- Inter-process communication
- Allows programs to talk to one another
- Memory Management
- Allocates memory for running programs, and manages contention when memory is scarce
- File Management
- Allows processes to read and write files
- Networking
- Enables communication with remote systems
- Device Management
- Interacts with system and peripheral hardware: graphics cards, keyboards, speakers, etc.