Il principale tipo di software di sistema è il sistema operativo. Questo è generalmente composto da molti programmi separati; ci sono driver per ciascuno dei dispositivi collegati al computer, come monitor, tastiere, HDD, SSD, mouse, ecc. La caratteristica distintiva di tutti questi programmi è che forniscono la programmazione di basso livello per interfacciarsi direttamente con i vari componenti hardware. Forniscono anche un'interfaccia a cui il software applicativo può connettersi. Il loro scopo principale è quello di sollevare il programmatore di applicazioni dal dover programmare ogni pezzo di hardware separatamente. Il codice dell'applicazione invia semplicemente un comando al software di sistema per fare qualcosa, come 'leggere la prossima riga di testo dall'HDD'. Il software di sistema tiene traccia del punto in cui si trova la prossima riga di testo, e fa i passi necessari per leggere i byte di dati da quel punto dell'HDD finché non rileva la fine di quella riga di testo. Nel processo, se incontra un errore può intraprendere qualche azione correttiva per tentare di risolvere l'errore, o può semplicemente restituire un codice di errore all'applicazione. Supponendo che l'operazione di lettura abbia avuto successo, il software di sistema memorizza internamente il punto in cui ha interrotto la lettura nel caso in cui venga richiesta la riga di testo successiva e termina il processo. Facendo le cose in questo modo, se l'HDD viene cambiato con uno di maggiore o minore capacità, o con uno che ha caratteristiche interne diverse, il programma applicativo continuerà a funzionare correttamente poiché il software di sistema sarà in grado di adattarsi internamente alle differenze di hardware.