Un système d'exploitation, ou logiciel système, ou Operating System (OS), est un logiciel qui, dans un appareil électronique, pilote les dispositifs matériels et reçoit des instructions de l'utilisateur ou d'autres logiciels (ou applications). Ces logiciels doivent être adaptés à un système d'exploitation. Dans un ordinateur, le système d'exploitation gère le ou les processeurs ainsi que la mémoire. Il fait fonctionner les périphériques (clavier, souris, surface tactile, écran, disque dur, lecteur de DVD, lecteur de cartes mémoire...). Dans un appareil photo, il fait fonctionner les différents mécanismes, gère l'affichage de l'écran et détecte les actions de l'utilisateur, etc. Les systèmes d'exploitation comportent aussi l'interface avec l'utilisateur. Dans un ordinateur, par exemple, c'est lui qui affichera les fenêtres et présentera le contenu des unités de stockage (disque dur, CD, DVD...).
Il existe sur le marché des dizaines de systèmes d'exploitation différents, très souvent livrés avec l'appareil informatique. On peut les catégoriser en différents groupes : Les OS dit libres et les propriétaires (UNIXlike vs Windows/MacOS). Certains OS sont adaptés à un usage desktop et d’autres plus serveurs, sans oublier les OS pour mobiles. Exemple d’OS : UNIX (MacOS, iOS), UNIXlike (Toutes les distributions Linux : Debian, Ubuntu, Red Hat, Android), Windows, etc.
Le système d'exploitation est un intermédiaire entre les logiciels d'application et le matériel.
Fonctionnalités Le système d'exploitation offre une suite de services généraux facilitant la création et l'utilisation de logiciels applicatifs. Les services offerts sont en rapport avec l'utilisation des ressources de l'ordinateur par les programmes. Ils permettent en particulier d'exécuter des programmes, de lire et écrire des informations, de manipuler les fichiers, de communiquer entre ordinateurs et de déceler des erreurs. Ces services permettent à plusieurs usagers et plusieurs programmes de se partager les ressources de l'ordinateur. Le principal rôle du système d'exploitation est alors de gommer les différences entre les différentes architectures informatiques, et d'organiser l'utilisation des ressources de manière rationnelle.
Utilisation des périphériques Chaque périphérique a ses propres instructions, avec lesquelles il peut être manipulé. Le système d'exploitation en tient compte. Il permet au programmeur de manipuler le périphérique par de simples demandes de lecture ou d'écriture, lui évitant la perte de temps de traduire les opérations en instructions propres au périphérique.
Accès aux fichiers En plus des instructions propres à chaque périphérique (lecteur de disquette, disque dur, lecteur de CD-ROM, lecteur usb, lecteur de carte mémoire…), le système d'exploitation tient compte du format propre de chaque support servant au stockage de fichiers. Il offre également des mécanismes de protection permettant de contrôler quel utilisateur peut manipuler quel fichier.
Accès aux ressources Une des fonctions du système d'exploitation est de protéger les ressources contre l'utilisation par des personnes non autorisées, et de résoudre les conflits lorsque deux utilisateurs demandent simultanément la même ressource.
Détection et récupération en cas d'erreur Lorsqu'une erreur survient, qu'elle soit matérielle ou logicielle, le système d'exploitation traite l'erreur en adoucissant son impact sur le système informatique. Il peut tenter de réitérer l'opération, arrêter l'exécution du programme fautif, ou signaler le problème à l'utilisateur.
Contrôle Un système d'exploitation peut tenir des statistiques d'utilisation des ressources, surveiller la performance, et les temps de réponse.
Services Le système d'exploitation facilite le travail de programmation en fournissant une suite de services pouvant être utilisés par les logiciels applicatifs. Du point de vue du programmeur, son logiciel applicatif s'oriente en direction du système d'exploitation et du matériel, et les programmes sont considérés comme fonctionnant sur le système d'exploitation. Un système d'exploitation peut ainsi être vu comme une machine virtuelle. L'ensemble composé du matériel et du système d'exploitation forme la « machine » qui exécute le logiciel applicatif, une machine en partie simulée par du logiciel. Un système d'exploitation est composé d'une large palette de programmes. La composition exacte dépend de l'usage cible et du type d'appareil informatique auquel le système est destiné (ordinateur personnel, serveur, superordinateur ou encore système embarqué).
Utilisation Les utilisateurs et les programmeurs peuvent demander des services au système d'exploitation par son interface de programmation, ses commandes ou son interface graphique.
Processeur Lorsqu’il est multitâche, le système d'exploitation permet à plusieurs utilisateurs de se servir de l'ordinateur et donne à chaque utilisateur l'impression qu'il est le seul à utiliser l'ordinateur. Pour ce faire, l'utilisation du processeur est planifiée : chaque programme est exécuté durant une tranche de temps déterminé, puis le système d'exploitation bascule sur l'exécution d'un autre programme.
Mémoire Le système d'exploitation dirige l'utilisation de la mémoire. Il retient la liste des emplacements de mémoire utilisés, et par qui, ainsi que la liste des emplacements libres. Le système d'exploitation réserve un emplacement de mémoire lorsqu'un processus le demande, et le libère lorsqu'il n'est plus utilisé, par exemple lorsque le processus s'est arrêté.
Périphériques Les périphériques sont tous les dispositifs informatiques qui permettent au processeur de communiquer avec l'extérieur : clavier, imprimante, carte réseau, mémoire, disque dur12. Ils permettent en particulier de recevoir des informations, d'en envoyer, ainsi que de stocker des informations — les collecter dans le but de les renvoyer plus tard. Une des responsabilités du système d'exploitation est de suivre l'état d'utilisation — libre ou réservé — de tout le matériel du système informatique. Lorsqu'un matériel libre est demandé par un processus, il est alors réservé à ce processus. Pour utiliser un périphérique, le système d'exploitation se sert d'un contrôleur et d'un pilote de périphérique.
Fichiers Un fichier est une collection d'informations portant un nom, enregistrée sur un média tel qu'un disque dur, une bande magnétique ou un disque optique. Chaque médium a ses propres caractéristiques et sa propre organisation. Le système d'exploitation s'occupe de créer et de détruire des fichiers et des répertoires, de réserver de l'espace sur les médias ainsi que copier le contenu des fichiers de et vers la mémoire centrale. Il aide également les logiciels applicatifs à retrouver les fichiers, partager les fichiers entre plusieurs utilisateurs, modifier le contenu des fichiers et créer des répertoires (permettant de classer et d'organiser les fichiers). La vitesse du système informatique dépendra de la vitesse de manipulation des fichiers.
Réseau Dans un réseau informatique, deux ordinateurs reliés communiquent dès lors que les communications se font de part et d'autre selon les mêmes protocoles réseau. Selon le modèle OSI, les différents protocoles existants sont répartis sur sept niveaux, où un protocole d'un niveau donné peut être combiné avec n'importe quel protocole des niveaux situés en dessus et en dessous (voir encapsulation). Un système d'exploitation contient typiquement plusieurs programmes nécessaires pour des échanges d'informations dans différents protocoles des niveaux 1 à 4. Tandis que les niveaux 5 à 7 sont pris en charge par les logiciels applicatifs et les middleware. Pour les échanges d'informations selon les protocoles de niveau 1 et 2, le système d'exploitation demande l'opération au matériel de l'ordinateur par l'intermédiaire d'un pilote informatique, pilote qui peut faire partie intégrante du système d'exploitation ou être fourni par le constructeur du matériel.
Contrôle d'accès Les systèmes d'exploitation contemporains permettent à plusieurs usagers de se servir simultanément de l'ordinateur. Le système d'exploitation comporte des mécanismes destinés à contrôler l'utilisation des ressources par les utilisateurs, les processus et les programmes. Ces mécanismes permettent de certifier l'identité du programme ou de l'utilisateur et l'autoriser à accéder à une ressource en application de règlements de sécurité. Les mécanismes de sécurité du système d'exploitation servent à protéger le système informatique de l'intérieur comme de l'extérieur : les mécanismes de sécurité intérieure protègent les processus les uns des autres, et assurent la fiabilité du système informatique. Les mécanismes de sécurité extérieure protègent les données et les programmes enregistrés dans l'ordinateur contre des accès non autorisés et des erreurs de manipulation. Le système d'exploitation empêche la lecture par des personnes non autorisées, la falsification, la suppression de données, ainsi que l'utilisation non autorisée de périphériques.
Interface utilisateur Un ensemble de programmes du système d'exploitation reçoit les informations envoyées par les logiciels applicatifs, et les place sur une image numérique qui sera envoyée au matériel par l'intermédiaire d'un pilote. En complément un autre ensemble de programmes reçoit les manipulations effectuées par l'usager par l'intermédiaire de pilotes puis les transmettent au logiciel concerné. Ces deux ensembles créent l'interface homme-machine qui permet à un usager de dialoguer avec la machine. Le système d'exploitation peut dialoguer avec un usager par l'intermédiaire d'un autre ordinateur ou d'un terminal (interface distribuée).
Logiciels utilitaires Un logiciel applicatif sert à assister l'utilisateur dans une activité. Les logiciels utilitaires sont des logiciels applicatifs qui permettent à l'utilisateur d'effectuer des manipulations basiques telles que démarrer des programmes, copier des fichiers ou modifier des paramètres de configuration. Divers logiciels utilitaires sont fournis avec les systèmes d'exploitation. Un interpréteur de commandes est un programme qui permet d'exécuter d'autres programmes en écrivant leur nom éventuellement suivi de divers paramètres. Il est accompagné de plusieurs programmes qui permettent la manipulation des fichiers (copie, changement de nom…). Ce type de programme est utilisé pour effectuer des manipulations ou exécuter des scripts — suites de manipulations pré-enregistrées (voir commande informatique). Ce type de programme est souvent fourni avec le système d'exploitation, mais rien n'y oblige, et on peut très bien en importer. Un environnement de bureau est un programme dans lequel les différents éléments de l'ordinateur (programmes, fichiers, disques durs) sont présentés sous forme de pictogrammes sur lesquels il est possible d'effectuer différentes actions. Il permet d'exécuter des programmes, d'effectuer différentes opérations sur les fichiers (copie, changement du nom, déplacement ou suppression). Certains programmes permettent à l'utilisateur de modifier les paramètres de configuration du système d'exploitation. Ceux-ci proposent des listes à choix multiples et effectuent des contrôles de validité avant le modifier les paramètres. D'autres programmes servent à installer des logiciels, c'est-à-dire copier les fichiers dans les emplacements prévus à cet effet, et effectuer les modifications de configuration nécessaire pour rendre le logiciel opérationnel. Ces programmes peuvent aussi servir à consulter la liste des logiciels actuellement installés dans l'ordinateur.