Un sistema operativo fornisce la connessione tra l'hardware fondamentale di un computer, i dispositivi periferici e gli utenti. Crea inoltre una piattaforma di sviluppo coerente per i programmatori. I computer di tutte le dimensioni, dai telefoni cellulari ai supercomputer, hanno bisogno di sistemi operativi per funzionare.
La maggior parte dei computer dispone di un processore che esegue calcoli e elabora informazioni, memoria, contenente informazioni sul programma e un'unità disco per la memorizzazione di programmi e dati. Questi dispositivi hanno bisogno di un sistema operativo per lavorare insieme. La RAM del computer, ad esempio, si basa sul sistema operativo per determinare dove sono conservate le informazioni.
I sistemi operativi gestiscono anche dispositivi esterni. I sistemi operativi in genere sono dotati di driver per schede grafiche e chip audio e schede e in genere supportano tastiere, mouse e altri dispositivi di input. Altri dispositivi, come stampanti e scanner, spesso hanno bisogno di driver di terze parti per funzionare. La maggior parte dei sistemi operativi fornisce un'interfaccia driver per facilitare il processo di sviluppo dei driver hardware.
I programmatori fanno affidamento sull'astrazione fornita dai sistemi operativi per semplificare lo sviluppo. Invece di dover lavorare direttamente con una tastiera o un mouse, i programmatori usano i segnali forniti dal sistema operativo. Invece di dover creare un sistema di finestre grafiche per visualizzare le informazioni, i programmatori possono inviare comandi relativamente semplici al sistema operativo, che gestisce gran parte del lavoro. Questa astrazione spesso consente agli sviluppatori di scegliere come target più sistemi operativi con un singolo codice base, apportando solo piccole modifiche specifiche del sistema.