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 informatiques de l’utilisateur (traitement de texte, jeu vidéo…). Il fournit aux programmes applicatifs des points d’entrée génériques pour les périphériques.
Un système d’exploitation est typiquement composé :
Le noyau (ou cœur) assure les fonctionnalités suivantes :
Il s’agit de la couche primordiale, celle qui est lancée lors du démarrage de l’ordinateur que l’on appelle couramment le boot. Grâce à celui-ci, les premiers services peuvent accéder aux applications système : gestion de la mémoire, accès aux disques durs et accès aux périphériques, il gère donc les ressources de l’ordinateur et permet aux différents composants matériels et logiciels de communiquer entre eux.
Dans ces systèmes d’exploitation, la mémoire vive est divisée en deux parties indépendantes : le noyau et l’espace utilisateur (ce dernier est l’espace de la mémoire dédié aux applications, ce qui permet plus de sécurité : les applications de l’espace utilisateur ne peuvent ni accidentellement ni intentionnellement accéder à une zone mémoire ne leur appartenant pas.
Les noyaux ont comme fonctions de base d’assurer le chargement et l’exécution des processus, de gérer les entrées-sorties et proposer une interface entre l’espace noyau et les programmes de l’espace utilisateur.
Le système d’exploitation, par cette double structure noyau/utilisateur, permet le plus souvent aux applications d’être indépendantes de la machine sur lesquelles elles fonctionnent. Le système d’exploitation masque donc les particularités de chaque ordinateur, en garantissant les interfaces nécessaires à la compatibilité.
Les bibliothèques servent à regrouper les opérations les plus utilisées dans les programmes informatiques, afin d’éviter la redondance de la réécriture de ces opérations dans tous les programmes.
On distingue généralement deux types de bibliothèques: les bibliothèques système, et les bibliothèques utilitaires. Les bibliothèques système sont constituées de fonctions permettant l’utilisation agréable des fonctionnalités systèmes (généralement des points d’entrée vers des fonctions du noyau, mais pas seulement). Les bibliothèques utilitaires contiennent des fonctions d’usage courant et pratique (fonctions mathématiques, fonctions de tri, etc).
Du point de vue du système, les bibliothèques ont différentes caractéristiques. Il y a le caractère statique ou dynamique, et le caractère partagé ou non.
Une bibliothèque statique contient des fonctions qui seront intégrées au code généré par le compilateur (édition de liens statique). L’inconvénient est qu’un code ainsi obtenu n’est pas mis à jour lorsque la bibliothèque change. L’avantage est que le code à lui seul est autonome.
Une bibliothèque dynamique est une bibliothèque qui contient des fonctions qui seront intégrées au code au moment de son exécution (édition de liens dynamique). L’avantage est que le code est à jour vis-à-vis de la mise à jour des bibliothèques. L’inconvénient est que l’exécution dépend de l’existence de la bibliothèque. On raffine aussi l’aspect dynamique en liaison tardive (intégration de la fonction lorsqu’elle est appelée) ou au chargement (intégration des fonctions dès que le programme commence à s’exécuter).
Une bibliothèque partagée est une bibliothèque dont il est garanti que le contenu ne sera présent qu’en un seul exemplaire dans le système d’exécution, les fonctions seront partagées par toutes les applications les utilisant.
Un système de fichiers (FS ou filesystem en anglais) ou système de gestion de fichiers (SGF) est une structure de données permettant de stocker les informations et de les organiser dans des fichiers sur ce que l’on appelle des mémoires secondaires (disque dur, disquette, CD-ROM, clé USB, etc.). Ce stockage de l’information est persistant. Une telle gestion des fichiers permet de traiter, de conserver des quantités importantes de données ainsi que de les partager entre plusieurs programmes informatiques. Il offre à l’utilisateur une vue abstraite sur ses données et permet de les localiser à partir d’un chemin d’accès.
Les outils système permettent :
Ce type d’interface homme machine s’oppose à l’interface en ligne de commande (en anglais CLI pour Command Line Interface) comme MS-DOS. Les parties les plus typiques de ce type d’environnement sont le pointeur de souris, les fenêtres, le bureau, les icônes. De plus, des contrôles graphiques sont utilisés pour interagir avec l’utilisateur : les boutons, les menus, les barres de défilement. Cette interaction homme machine s’élabore que ce soit dans les interfaces graphiques ou en ligne de commande par le " Shell ". Un dispositif de pointage est nécessaire au bon fonctionnement d’une interface graphique. Cet environnement rend accessible et convivial un ordinateur .
L’interface graphique représente la partie visible du système d’exploitation, ce qui explique qu’à chaque évolution majeure de son système d’exploitation, les fabricants de systèmes d’exploitation font évoluer également l’interface graphique donnant ainsi son identité à chaque génération de ses systèmes d’exploitation.
L’interface graphique est séparée du noyau. Il est ainsi possible dans certains systèmes d’exploitation de changer ou de personnaliser son environnement graphique (certaines distributions Linux ne possèdent même pas d’environnement graphique de base). L’interface de Windows XP est cependant également modifiable grâce à certains programmes annexes, cette fonctionnalité n’étant pas incluse par défaut.
La plupart des systèmes d’exploitation sont pourvus d’une interface graphique, conviviale, simple d’utilisation à tel point qu’utiliser un ordinateur personnel ne demande plus de compétences informatiques. Les systèmes d’exploitation tels que Windows et Macintosh intègrent des outils système qui gèrent l’interface graphique nommés le GUI (comme Graphical User Interface) ainsi que des utilitaires de gestion de fichiers et de configuration du système. Ces fonctions sont communément considérées comme faisant naturellement partie de tout système d’exploitation, ce qui n’est pas forcément le cas comme le montrent certaines versions GNU/Linux ou de BSD. Certains système d’exploitation tel OpenBSD n’incluent pas d’interface graphique par défaut pour des raisons de rapidité ou de sécurité.
Les systèmes d’exploitation gèrent de plus en plus l’interface graphique de manière vectorielle (la carte graphique est chargée de l’affichage 2D comme 3D). Ces interfaces permettent de tirer profit des progrès réalisés ces dix dernières années dans les puces 3D. Le premier système à intégrer une interface vectorielle fut Mac OS X 10.2 avec un moteur graphique Quartz. En 2007, l’interface 3D la plus développée est Compiz-fusion, développée conjointement par les créateurs de Compiz et de Beryl, son dérivé (fork), fonctionnant sur des systèmes GNU/Linux. La dernière version du système d’exploitation Windows, Vista (2007) intègre également un bureau avec une interface 3D du nom d’Aero.
Des programmes applicatifs de base offrent des services à l’utilisateur (calculatrice, éditeur de texte, navigateur web, etc.). Ces programmes applicatifs sont souvent fournis en paquet promotionnel (bundle]) avec le système d’exploitation. Certaines personnes estiment qu’ils ne font pas réellement partie du système d’exploitation. La séparation entre les programmes applicatifs de base et le système d’exploitation est difficile à définir, du fait que l’un devient inutile sans l’autre, et que bon nombre d’applications sont programmées en supposant que les programmes applicatifs de base sont toujours présents.
Les micro-ordinateurs sont parmi les dernières générations d’ordinateurs. Les systèmes d’exploitation qui leur sont dédiés ont donc été développés après les autres types de systèmes d’exploitation (systèmes pour ordinateur central et pour station de travail dont le plus connu aujourd’hui est GNU/Linux). Un autre type de systèmes d’exploitation existe et a été créé après l’informatique personnelle : les systèmes d’exploitation embarqués.
À cette époque les systèmes n’avaient ni la capacité ni la nécessité d’utiliser les systèmes d’exploitation pour mini et grands ordinateurs. Les premiers systèmes d’exploitation appelés moniteurs offraient seulement des fonctionnalités très basiques, et étaient chargés le plus souvent depuis de la mémoire morte.
CP/M fut l’un des pionniers en matière de système d’exploitation installé sur un disque (et non sur mémoire morte). Ce système d’exploitation influença largement la conception de PC-DOS. Ce dernier, choisi par IBM comme système d’exploitation pour ses premiers PC, fit de Microsoft l’une des compagnies les plus rentables au monde. Les principales alternatives durant les années 1980 sur le marché des systèmes d’exploitation furent Mac OS en 1984, AmigaOS et Atari en 1985 et OS/2 en 1987.
La fin des années 1990 a vu les exigences des utilisateurs s’accroître en terme de fiabilité, de sécurité et de convivialité de l’interface graphique.
C’est ainsi que Microsoft a opéré une migration de tous ses systèmes d’exploitation, y compris ceux destinés au grand public vers la plate-forme Windows NT, mettant fin à la famille des Windows 9x.
Durant la même période, l’entreprise Macintosh a totalement repensé le noyau et l’interface de son système d’exploitation en lançant Mac OS X. Le noyau est basé sur un système UNIX et le moteur d’affichage de l’interface graphique, Quartz, géré en mode vectoriel.
Enfin, le troisième acteur des systèmes d’exploitation est constitué par l’ensemble des distributions Linux. Conçu et utilisé par des développeurs chevronnés, ses parts de marché dans le domaine des ordinateurs personnels sont minoritaires mais très présent sur le marché des serveurs. Depuis quelques années, la communauté de développeur de Linux étend les services auprès des néophytes avec des distributions comme Ubuntu ou Mandriva. Cette ouverture est réussie tant sur le plan technique que commercial puisque certaines marques proposent leurs ordinateurs grand public avec Linux. Par exemple certains ordinateurs DELL sont proposés avec une système d’exploitation Mandriva ou Ubuntu.
Plate-formes et système d’exploitation :
Mac OS est un matériel seulement compatible avec les produits de marque Apple; Microsoft Windows est un matériel compatible avec les produits Microsoft Linux et BSD) sont compatibles avec tous les produits
Les systèmes d’exploitation ne sont pas égaux vis-à-vis de leur compatibilité sur les différentes plates-formes matérielles:
- Linux fonctionne sur de nombreux types de plates-formes, notamment les principaux micro-ordinateurs : Macintosh et PC .
- En revanche, les systèmes d’exploitation développés pour les Macintosh n’étaient pas portables vers d’autres plates-formes, du fait d’une politique de fermeture de la firme Apple. (En corollaire, les systèmes d’exploitation dits " compatibles PC " ne peuvent utiliser les plates-formes Mac (sauf les distributions Linux et BSD prévues pour ces architectures : 68k et PowerPC). Depuis janvier 2006, l’architecture des Macintosh a été profondément modifiée : les microprocesseurs sont dorénavant basés sur une architecture Intel (Mac-Intel) et non plus conçus par IBM-Motorola (PowerPC). La conséquence directe fut que Mac OS X a dû être totalement réécrit et cette modification d’architecture processeur permet au Macintosh désormais d’entrer dans la grande famille des " IBM PC compatibles ". En revanche, le système d’exploitation Mac OS X ne peut pas fonctionner sur un ordinateur d’une autre marque : Apple a intégré dans son système une protection pour empêcher ce type d’utilisation. Cependant, certaines parties du système Mac OS X n’appartenant pas à Apple (comme le noyau Darwin) et peuvent légalement fonctionner sur tous les ordinateurs compatibles PC.
- Windows de la firme Microsoft, tout comme Apple possède une politique de fermeture. (Ses nombreux procès pour incompatibilité monopolisant la presse informatique)
Principaux systèmes d'exploitation |
BSD |
FreeBSD - NetBSD - OpenBSD |
DragonFly BSD - PC-BSD |
GNU/Linux (Liste) |
Debian - Fedora - Gentoo |
Mandriva - Red Hat - Slackware |
SuSE - Ubuntu |
Mac OS |
Système 5 - 6 - 7 - 8 - 9 |
Mac OS X -.0 -.1 -.2 -.3 -.4 -.5 - Server |
MS-DOS - Microsoft Windows |
1.0 - 2 - 3.x - 95 - 98 - Me |
NT - 3.5x - 4.0 - 2000 |
XP - 2003 - Vista |
2008 (prochainement) |
Seven (en développement) |
Autres |
AmigaOS - BeOS - Inferno |
LynxOS - Haiku OS - OS/2 |
QNX - Solaris - UNIX - MVS |
OS/360 - OS/390 - OS/400 - Plan 9 |
ReactOS - VMS - ZETA - FreeDOS |
Liste non-exhaustive de systèmes d’exploitation :