Système d'exploitation

Un article de Wikipédia, l'encyclopédie libre.

Pour les articles homonymes, voir SE et OS.

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.

Sommaire

[modifier] Composition

Un système d’exploitation est typiquement composé :

[modifier] Le noyau du système

Icône de détail Article détaillé : Noyau de système d'exploitation.

Le noyau (ou cœur) assure les fonctionnalités suivantes :

  • gestion des périphériques (au moyen de pilotes) ;
  • gestion de l’exécution des programmes (aussi nommée processus) :
    • gestion de la mémoire attribuée à chaque processus ;
    • ordonnancement des processus (répartition du temps d’exécution sur le ou les processeurs).
    • synchronisation et communication entre processus (services de synchronisation, d’échange de messages, mise en commun de segments de mémoire, etc.)
  • gestion des fichiers (au moyen de systèmes de fichiers) ;
  • gestion des protocoles réseau (TCP/IP, IPX, etc.).

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é.

[modifier] Les bibliothèques

Icône de détail Article détaillé : Bibliothèque logicielle.

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.

[modifier] Le système de fichiers

Icône de détail Article détaillé : Système de fichiers.

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.

[modifier] Les outils système

Les outils système permettent :

  • de configurer le système (gérer les comptes des utilisateurs, configuration des paramètres réseau, démarrage automatique des services, etc.) ;
  • de passer le relais aux applications proposant des services à un ou plusieurs utilisateurs ou à d’autres ordinateurs, grâce au réseau par exemple.

[modifier] L'interface utilisateur

L'interface utilisateur aussi nommé interface homme-machine (IHM) permet à un homme de se servir de l'ordinateur.

Historiquement constitué à l'origine d'interrupteurs et de lampes, puis de cartes perforées, la plupart des ordinateurs sont maintenant équipés de clavier, souris et moniteur.

[modifier] La commande en ligne

La ligne de commande (en anglais CLI pour Command Line Interface) était la seul interface disponible sur les ordinateurs des années 1970. Elle est encore utilisée en raison de sa puissance (Turing-complétude du langage), de sa grande rapidité et du peu de ressources nécessaires à son fonctionnement.

[modifier] L’interface graphique

Icône de détail Article détaillé : Interface graphique.

Ce type d’interface homme machine s’oppose à l’interface en ligne de commande. 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. L’interface de Windows XP est modifiable grâce à partir de 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.

[modifier] Les programmes applicatifs de base

Icône de détail Article détaillé : Application informatique.

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.

[modifier] Historique

[modifier] Un type de programme héritier d’autres systèmes d’exploitation

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 les plus connus aujourd’hui sont GNU/Linux et Windows). 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.

[modifier] Les années 1980

À 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.

[modifier] Depuis les années 1990

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, Apple 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. 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 Ubuntu.

[modifier] Architecture matérielle

Microsoft Windows n'est actuellement[1] compatible qu'avec les processeurs Intel et AMD, en utilisant les multi-processeurs (et le multicore) en deux versions : mode 32 bits et mode 64 bits.

Microsoft Windows CE est compatible qu'avec les processeurs ARM et MIPS.

Linux s'est vu adapté sur à peu près toutes les architectures disponibles. Les diverses distributions Linux proposent un ensemble plus ou moins étendues d'architecture.

Jusqu'en 2006, Mac OS n'était compatible qu'avec les ordinateurs Apple, équipés de processeurs Motorola.

Depuis 2006, les ordinateurs Apple utilisent des processeurs Intel rendant possible l'utilisation de Windows sur les ordinateurs Apple et Mac OS sur Intel et AMD.

Il est possible de réaliser un triple boot, à savoir installer les trois systèmes Windows, MacOS et Linux sur une seule et même machine, en ayant le choix du système au démarrage.

[modifier] Compatibilité des pilotes

Mais ces problèmes peuvent aussi venir des pilotes des différents périphériques qui proviennent d'une part des périphériques pour lesquels aucun pilote n'a été développé, comme c'est parfois le cas pour Linux. Et d'autre part pour Mac OS où certains pilotes ne sont jamais développés pour les périphériques qui ne sont pas censés être montés dans un ordinateur Macintosh.

Ces manques sont généralement compensés par le travail de développeurs indépendants ou de communautés de développeurs libres.

[modifier] L’interopérabilité

Icône de détail Article détaillé : Interopérabilité en informatique.

[modifier] Pour les systèmes de fichiers

L'un des problèmes d'interopérabilité et celui de l'échange de données au travers des mémoires de masses c'est à dire les systèmes de fichiers :

Prise en charge de certains système de fichiers sur différents OS, en natif
système de fichiers action Linux Mac OS X Windows
ext2/ext3 lire Fait Non Non Non Non
écrire Fait Non Non Non Non
FAT 32 lire Fait Fait Fait
écrire Fait Fait Fait
HFSX lire Fait Fait Non Non
écrire Fait Fait Non Non
NTFS lire Fait Fait Fait
écrire Fait Non Non Fait

L'utilisation de programmes utilitaires adaptés peut être nécessaire pour échanger des données d'un système à l'autre.

[modifier] Par réseau

La popularité d'Internet a permis de généraliser l'utilisation de ses protocoles. L'échange de données par réseau n'est plus un problème majeur.

[modifier] Liste

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- .6 - Server
MS-DOS - Microsoft Windows
1.0 - 2 - 3.x - 95 - 98 - Me
NT - 3.5x - 4.0 - 2000
XP - 2003 - Vista - 2008
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
Icône de détail Article détaillé : Liste des systèmes d'exploitation.

Liste non-exhaustive de systèmes d’exploitation :

[modifier] Voir aussi

[modifier] Liens internes

[modifier] Bibliographie

  • Andrew Tanenbaum, Systèmes d’exploitation, Pearson Education France, 2003, 2e éd. (ISBN 2-7440-7002-5) ;
  • Laurent Bloch, Les systèmes d’exploitation des ordinateurs. Histoire, fonctionnement, enjeux, Vuibert, 2003, (ISBN 2-7117-5322-2)

[modifier] Liens externes

[modifier] Références

  1. Notez que Windows NT tournait sur les processeurs Alpha