Computadores modernos são sistemas complexos, consistindo muitas vezes em vários processadores, diferentes tipos de memórias e muitos dispositivos de IO. É evidente que os componentes de hardware são complexos e as vezes apresentam implementações muito específicas, nesse contexto os sistemas operacionais são essenciais para fornecer abstrações e recursos que possibilitam uma utilização mais eficiente do sistema computacional.

Um sistema operacional é um programa (ou conjunto de programas) interrelacionados cuja funcionalidade é:

  1. Fornecer uma camada de abstração para as aplicações interagirem com o hardware
  2. Gerenciar e alocar os recursos disponíveis no sistema computacional.