Um sistema operacional fornece a conexão entre o hardware fundamental de um computador, dispositivos periféricos e usuários. Ele também cria uma plataforma de desenvolvimento consistente para programadores. Computadores de todos os tamanhos, de telefones celulares a supercomputadores, precisam de sistemas operacionais para funcionar.
A maioria dos computadores possui um processador, que realiza cálculos e processa informações, memória, que contém informações do programa, e uma unidade de disco para armazenar programas e dados. Esses dispositivos precisam de um sistema operacional para funcionarem juntos. A RAM do computador, por exemplo, depende do sistema operacional para determinar onde as informações são armazenadas.
Os sistemas operacionais também gerenciam dispositivos externos. Os sistemas operacionais normalmente vêm com drivers para placas e chips gráficos e de som, e normalmente oferecem suporte a teclados, mouses e outros dispositivos de entrada. Outros dispositivos, como impressoras e scanners, geralmente precisam de drivers de terceiros para funcionar. A maioria dos sistemas operacionais fornece uma interface de driver para facilitar o processo de desenvolvimento de drivers de hardware.
Os programadores contam com a abstração fornecida pelos sistemas operacionais para tornar o desenvolvimento mais simples. Em vez de trabalhar diretamente com um teclado ou mouse, os programadores usam sinais fornecidos pelo sistema operacional. Em vez de criar um sistema gráfico de janelas para exibir informações, os programadores podem enviar comandos relativamente simples para o sistema operacional, que controla grande parte do trabalho. Essa abstração geralmente permite que os desenvolvedores direcionem vários sistemas operacionais com uma única base de código, enquanto fazem apenas pequenos ajustes específicos do sistema.