Un système d'exploitation fournit la connexion entre le matériel de base d'un ordinateur, les périphériques et les utilisateurs. Il crée également une plate-forme de développement cohérente pour les programmeurs. Les ordinateurs de toutes tailles, des téléphones portables aux superordinateurs, ont besoin de systèmes d'exploitation pour fonctionner.
La plupart des ordinateurs disposent d'un processeur qui effectue des calculs et traite les informations, d'une mémoire qui contient les informations sur les programmes et d'un lecteur de disque pour stocker les programmes et les données. Ces appareils ont besoin d'un système d'exploitation pour fonctionner ensemble. La RAM de l'ordinateur, par exemple, s'appuie sur le système d'exploitation pour déterminer où sont stockées les informations.
Les systèmes d'exploitation gèrent également les périphériques externes. Les systèmes d'exploitation sont généralement livrés avec des pilotes pour les puces et les cartes graphiques et audio, et ils prennent généralement en charge les claviers, les souris et autres périphériques d'entrée. D'autres périphériques, tels que les imprimantes et les scanners, ont souvent besoin de pilotes tiers pour fonctionner. La plupart des systèmes d'exploitation fournissent une interface de pilote pour faciliter le processus de développement de pilotes matériels.
Les programmeurs s'appuient sur l'abstraction fournie par les systèmes d'exploitation pour simplifier le développement. Au lieu d'avoir à travailler directement avec un clavier ou une souris, les programmeurs utilisent des signaux fournis par le système d'exploitation. Au lieu d'avoir à créer un système de fenêtrage graphique pour afficher les informations, les programmeurs peuvent envoyer des commandes relativement simples au système d'exploitation, qui gère une grande partie du travail. Cette abstraction permet souvent aux développeurs de cibler plusieurs systèmes d'exploitation avec une seule base de code tout en ne faisant que de petits ajustements spécifiques au système.