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.