Le système d'exploitation (SE, en anglais Operating System ou OS) est un ensemble de programmes responsables de la liaison entre les ressources matérielles d'un ordinateur et les applications de l'utilisateur (traitement de texte, jeu vidéo...).
Il assure le démarrage de l'ordinateur, et fournit aux programmes applicatifs des interfaces standardisées pour les périphériques. Les programmes applicatifs n'ont traditionnellement pas vocation à être considérés comme partie intégrante du système, mais ce point de vue est en train d'évoluer.
Le système d'exploitation est composé d'un ensemble d'applications permettant de gérer les interactions avec le matériel. Parmi cet ensemble de logiciels on distingue généralement les éléments suivants :
Le noyau (kernel) représentant les fonctions fondamentales du système d'exploitation telles que la gestion de la mémoire, des processus, des fichiers, des entrées-sorties principales, et des fonctionnalités de communication.
L'interpréteur de commande (shell - coquille par opposition au noyau) permettant la communication avec le système d'exploitation par l'intermédiaire d'un langage de commandes, afin de permettre à l'utilisateur de piloter les périphériques en ignorant tout des caractéristiques du matériel qu'il utilise, de la gestion des adresses physiques, etc.
Le système de fichiers (file system) permet d'enregistrer les fichiers dans une arborescence.
Un système d'exploitation est dit multi-tâche (multithreaded) lorsque plusieurs tâches (également appelées processus) peuvent être exécutées simultanément.
Le multiprocessing est une technique consistant à faire fonctionner plusieurs processeurs en parallèle afin d'obtenir une puissance de calcul plus importante que celle obtenue avec un processeur haut de gamme ou bien afin d'augmenter la disponibilité du système (en cas de panne d'un processeur).
Gérer le processeur : c'est-à-dire gérer l'allocation du processeur entre les différentes applications grâce à un algorithme d'ordonnancement.
Gérer la mémoire : c'est-à-dire gérer l'espace mémoire alloué à chaque application et, le cas échéant, à chaque usager.
En cas d'insuffisance de mémoire physique (RAM), le système d'exploitation peut créer une zone mémoire sur le disque dur, appelée mémoire virtuelle.
Gérer les entrées/sorties : c'est-à-dire gérer l'accès des programmes aux ressources matérielles par l'intermédiaire des pilotes.
Gérer l'exécution des applications : c'est-à-dire s'assurer de la bonne exécution des applications en leur affectant les ressources nécessaires à leur bon fonctionnement, mais aussi permettre de tuer une application ne répondant plus correctement, par exemple.
Gérer les fichiers : c'est-à-dire gérer la lecture et l'écriture dans le système de fichiers et les droits d'accès aux fichiers par les utilisateurs et les applications.