Système d’exploitation
Système d’exploitation (OS), programme qui gère les ressources d’un ordinateur, notamment l’allocation de ces ressources entre d’autres programmes. Les ressources typiques comprennent l’unité centrale de traitement (CPU), la mémoire de l’ordinateur, le stockage des fichiers, les périphériques d’entrée/sortie (I/O) et les connexions réseau. Les tâches de gestion comprennent la planification de l’utilisation des ressources afin d’éviter les conflits et les interférences entre les programmes. Contrairement à la plupart des programmes, qui achèvent une tâche et se terminent, un système d’exploitation fonctionne indéfiniment et ne se termine que lorsque l’ordinateur est éteint.
Les systèmes d’exploitation multiprocesseurs modernes permettent à de nombreux processus d’être actifs, où chaque processus est un « fil » de calcul utilisé pour exécuter un programme. Une forme de multitraitement est appelée le partage du temps, qui permet à de nombreux utilisateurs de partager l’accès à l’ordinateur en passant rapidement de l’un à l’autre. Le partage du temps doit éviter les interférences entre les programmes des utilisateurs, et la plupart des systèmes utilisent la mémoire virtuelle, dans laquelle la mémoire, ou « espace d’adressage », utilisée par un programme peut résider dans la mémoire secondaire (comme sur un disque dur magnétique) lorsqu’elle n’est pas utilisée immédiatement, pour être replacée à la demande dans la mémoire principale plus rapide de l’ordinateur. Cette mémoire virtuelle permet à la fois d’augmenter l’espace d’adressage disponible pour un programme et d’empêcher les programmes d’interférer les uns avec les autres, mais elle nécessite un contrôle minutieux par le système d’exploitation et un ensemble de tables d’allocation pour suivre l’utilisation de la mémoire. La tâche la plus délicate et la plus critique pour un système d’exploitation moderne est sans doute l’allocation de l’unité centrale ; chaque processus est autorisé à utiliser l’unité centrale pendant un temps limité, qui peut être une fraction de seconde, et doit ensuite abandonner le contrôle et être suspendu jusqu’à son prochain tour. Le passage d’un processus à l’autre doit lui-même utiliser le CPU tout en protégeant toutes les données des processus.
Les premiers ordinateurs numériques n’avaient pas de système d’exploitation. Ils exécutaient un programme à la fois, qui avait le commandement de toutes les ressources du système, et un opérateur humain fournissait les ressources spéciales nécessaires. Les premiers systèmes d’exploitation ont été développés au milieu des années 1950. Il s’agissait de petits « programmes superviseurs » qui assuraient les opérations d’entrée/sortie de base (comme le contrôle des lecteurs de cartes perforées et des imprimantes) et tenaient des comptes sur l’utilisation du processeur pour la facturation. Les programmes superviseurs offraient également des capacités de multiprogrammation permettant l’exécution simultanée de plusieurs programmes. Cela était particulièrement important pour que ces premières machines de plusieurs millions de dollars ne restent pas inactives pendant les opérations d’E/S lentes.
Les ordinateurs ont acquis des systèmes d’exploitation plus puissants dans les années 1960 avec l’émergence du partage du temps, qui nécessitait un système pour gérer plusieurs utilisateurs partageant le temps CPU et les terminaux. Deux des premiers systèmes de partage du temps étaient CTSS (Compatible Time Sharing System), développé au Massachusetts Institute of Technology, et le Dartmouth College Basic System, développé au Dartmouth College. Parmi les autres systèmes multiprogrammés, citons Atlas, à l’université de Manchester, en Angleterre, et OS/360 d’IBM, probablement le progiciel le plus complexe des années 1960. Après 1972, le système Multics pour l’ordinateur GE 645 de General Electric Co. (et plus tard pour les ordinateurs de Honeywell Inc.) devint le système le plus sophistiqué, avec la plupart des capacités de multiprogrammation et de partage du temps qui devinrent plus tard la norme.
Les mini-ordinateurs des années 1970 avaient une mémoire limitée et nécessitaient des systèmes d’exploitation plus petits. Le système d’exploitation le plus important de cette période était UNIX, développé par AT&T pour les grands mini-ordinateurs comme une alternative plus simple à Multics. Il est devenu largement utilisé dans les années 1980, en partie parce qu’il était gratuit pour les universités et en partie parce qu’il a été conçu avec un ensemble d’outils qui étaient puissants dans les mains de programmeurs compétents. Plus récemment, Linux, une version open-source d’UNIX développée en partie par un groupe dirigé par l’étudiant finlandais en informatique Linus Torvalds et en partie par un groupe dirigé par le programmeur américain Richard Stallman, est devenu populaire sur les ordinateurs personnels ainsi que sur les ordinateurs plus grands.
En plus de ces systèmes à usage général, des systèmes d’exploitation à usage spécial fonctionnent sur de petits ordinateurs qui contrôlent les chaînes de montage, les avions et même les appareils ménagers. Ce sont des systèmes en temps réel, conçus pour fournir une réponse rapide aux capteurs et utiliser leurs entrées pour contrôler les machines. Des systèmes d’exploitation ont également été développés pour les appareils mobiles tels que les smartphones et les tablettes. L’iOS d’Apple Inc., qui fonctionne sur les iPhones et les iPads, et Android de Google Inc. sont deux systèmes d’exploitation mobiles de premier plan.
Du point de vue d’un utilisateur ou d’un programme d’application, un système d’exploitation fournit des services. Certains d’entre eux sont de simples commandes utilisateur comme « dir »-afficher les fichiers sur un disque- tandis que d’autres sont des « appels système » de bas niveau qu’un programme graphique pourrait utiliser pour afficher une image. Dans les deux cas, le système d’exploitation fournit un accès approprié à ses objets, les tables d’emplacements de disques dans un cas et les routines de transfert de données à l’écran dans l’autre. Certaines de ses routines, celles qui gèrent l’unité centrale et la mémoire, ne sont généralement accessibles qu’à d’autres parties du système d’exploitation.
Les systèmes d’exploitation contemporains pour les ordinateurs personnels fournissent généralement une interface utilisateur graphique (GUI). L’interface graphique peut être une partie intrinsèque du système, comme dans les anciennes versions du Mac OS d’Apple et du Windows OS de Microsoft Corporation ; dans d’autres cas, il s’agit d’un ensemble de programmes qui dépendent d’un système sous-jacent, comme dans le système X Window pour UNIX et le Mac OS X d’Apple.
Les systèmes d’exploitation contemporains pour ordinateurs personnels fournissent généralement une interface graphique.