Um sistema informatizado qualquer pressupõe a existência de um ou mais hardwares e de um ou mais usuários. Até certo ponto, a existência da informática justifica-se na existência destes dois personagens. No entanto, para que possa haver interação entre o hardware e o usuário, precisamos de um intermediário – o sistema operacional.
O sistema operacional oferece ao usuário uma abstração simplificada do hardware, ou seja, facilita e viabiliza seu uso. Para que isto seja possível, o sistema operacional atua gerenciando todo o hardware disponível dentro deste computador – seja ele um simples PC ou um supercomputador da lista TOP500.
Se prestarmos atenção ao usarmos um computador, perceberemos que normalmente fazemos uso de aplicações – também conhecidos como programas. Estas aplicações NÃO SÃO o sistema operacional e sim programas que rodam sobre ele. Este conceito de camadas pode ser visualizado na figura A.1.
Existem diversos sistemas operacionais disponíveis para se trabalhar e o funcionamento de todos é semelhante, do ponto de vista conceitual, mas diferente do ponto de vista de implementação. Em outras palavras o desenvolvedor A desenvolve um sistema operacional de um jeito a, enquanto o desenvolvedor B desenvolve um sistema operacional do jeito b. Ambos fazem a mesma coisa – mas de formas diferentes.