39
CAHIER 06 Le Système d'exploitation Avertissement L'étude présentée sur les système d'exploitation se veut avant tout généraliste. Le but est de donner une idée des problèmes qui se posent aux concepteurs de ces systèmes et de la complexité des mécanismes mis en oeuvre pour satisfaire les exigences, souvent contradictoires, de simplicité, d'efficacité, de fiabilité et de transparence. Mais cette étude devrait surtout mettre en évidence le fait que, dans un système informatique moderne, le matériel et le logiciel-système sont intimement liés, et forment ensemble une véritable machine virtuelle. INTRODUCTION AU SYSTEME D'EXPLOITATION LOGICIEL ET MATERIEL Dans son fonctionnement même, la composante "matérielle" d'un ordinateur est indissociable de l'aspect "logiciel". L'un comme l'autre sont intimement liés dans la machine. Pour illustrer cette idée, on peut considérer que l'aspect logiciel est à l'ordinateur ce qu'un tableau de bord est à un avion. Dans la très grande diversité de logiciels, certains sont regroupés sous la catégorie "système d'exploitation" (operating system). EXPLOITATION DE L'ORDINATEUR - SYSTEME D'EXPLOITATION Ces logiciels sont d'une grande importance puisqu'ils sont à la base de l'exploitation proprement dite de l'ordinateur. Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur. Aussi peut-on proposer la définition suivante d'un système d'exploitation: "Ensemble de programmes conçus dans le but de faciliter l'exploitation de l'ordinateur et d'en optimiser son fonctionnement". Un système d'exploitation assure un certain nombre de grandes fonctionnalités dont les principales sont :

CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

C A H I E R 06�Le Système d'exploitation

Avertissement

L'étude présentée sur les système d'exploitation se veut avant tout généraliste.

Le but est de donner une idée des problèmes qui se posent aux concepteurs de ces systèmes et de la complexité des mécanismes mis en oeuvre pour satisfaire les exigences, souvent contradictoires, de simplicité, d'efficacité, de fiabilité et de transparence.

Mais cette étude devrait surtout mettre en évidence le fait que, dans un système informatique moderne, le matériel et le logiciel-système sont intimement liés, et forment ensemble une véritable machine virtuelle.

� INTRODUCTION AU SYSTEME D'EXPLOITATION

� LOGICIEL ET MATERIEL

Dans son fonctionnement même, la composante "matérielle" d'un ordinateur est indissociable de l'aspect "logiciel". L'un comme l'autre sont intimement liés dans la machine.

Pour illustrer cette idée, on peut considérer que l'aspect logiciel est à l'ordinateur ce qu'un tableau de bord est à un avion.

Dans la très grande diversité de logiciels, certains sont regroupés sous la catégorie "système d'exploitation" (operating system).

� EXPLOITATION DE L'ORDINATEUR - SYSTEME D'EXPLOITATION

Ces logiciels sont d'une grande importance puisqu'ils sont à la base de l'exploitation proprement dite de l'ordinateur.

Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur. Aussi peut-on proposer la définition suivante d'un système d'exploitation:

"Ensemble de programmes conçus dans le but de faciliter l'exploitation de l'ordinateur et d'en optimiser son fonctionnement".

Un système d'exploitation assure un certain nombre de grandes fonctionnalités dont les principales sont :

Page 2: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

• la gestion des ressources de l'ordinateur en coordonnant l'ensemble des tâches essentielles à son bon fonctionnement ;

• l'interaction directe entre l'homme et la machine, en offrant une interface qui permette l'expression des besoins de l'utilisateur ;

• la gestion des tâches fastidieuses et complexes d'entrées-sorties, comme le contrôle des périphériques ou le stockage et les manipulations des fichiers ;

• la sécurité et l'intégrité des données, des programmes et des utilisateurs.

� SYSTEME D'EXPLOITATION – CLASSIFICATIONS

Il est possible d'appréhender les systèmes d'exploitation au travers de deux grands types de classification.

L'une selon leur nature: systèmes "ouverts" ou "propriétaires".

L'autre en fonction des familles d'ordinateur auxquelles ils sont destinés.

� LES SYSTEMES D'EXPLOITATION OUVERT/PROPRIETAIRE

Les systèmes ouverts sont portables sur différentes machines, c'est-à-dire qu'ils ont été conçu pour fonctionner indépendemment de l'architcture matériel de l'ordinateur sur lequel ils ont été installé.

Le système Unix, qui a été un précurseur en la matière, est l'exemple type d'un système ouvert. Il a été implanté sur des machines très diverses allant des micro-ordinateurs jusqu'aux super-ordinateurs tels que les Cray.

Les systèmes d'exploitation propriétaires, quant à eux, sont des systèmes spécifiques à une machine ou une gamme de machine d'un certain constructeur (et en général conçus, réalisés et commercialisés par le constructeur lui-même).

On peut citer des systèmes tels que MS/DOS pour les micro-ordinateurs basés sur les microprocesseurs d'Intel, MacOS pour les Macintosh d'Apple basés sur les microprocesseurs Motorola, VMS développé par DEC pour la gamme VAX, MVS et GCOS7 pour les gros ordinateurs respectivement d'IBM et de Bull, etc.

� LES FAMILLES D'ORDINATEUR

Les micro-ordinateurs

La plupart des ordinateurs personnels sont gérés par des systèmes mono-utilisateur. Le but essentiel est de faciliter l'exploitation de la machine. Ces systèmes offrent un langage de commande (interface utilisateur/système) facile à utiliser, un système de gestion des fichiers aussi simple que possible et des facilités d'entrées-sorties permettant l'utilisation aisée du clavier, de l'écran et des unités de disques.

Page 3: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

Un certain nombre de systèmes d'exploitation existent pour les micro-ordinateurs dont les plus importants sont MS-DOS, Windows, Unix, MacOS, OS/2, Windows 95, etc.

MS-DOS (MicroSoft Disk Operating System) est certainement le plus répandu. Comme son nom l'indique, son but initial était de gérer les fichiers sur disque. Il ne gère qu'une seule tâche d'un seul utilisateur. Il a évolué en même temps que les micro-ordinateurs, mais il comporte toujours des limitations importantes telles que la limitation de l'espace mémoire adressable. Il s'est doté d'une interface utilisateur graphique, appelée Windows. Malgré cela il n'est plus capable de gérer pleinement les capacités des machines actuelles et est progressivement remplacé par le système d'exploitation Windows95.

Le système MacOS du Macintosh mérite d'être mentionné comme le précurseur des interfaces graphiques qui est une référence en matière de cohérence, mais d'autres fonctionnalités lui font cruellement défauts telles qu'un vrai multitâche. Car il ne s'agit que d'un multitâche non-préemptif, ce qui implique qu'il n'y a pas répartition de tranches de temps aux différents processus. Ainsi, lorsque l'on formate une disquette il est impossible de faire autre chose.

Les mini-ordinateurs

Bien que le système Unix soit implantable sur une grande diversité d'ordinateur, on le trouve très fréquemment installé sur la gamme des mini-ordinateurs.

Le système Unix est multitâche, multi-utilisateur, et il dispose de la mémoire virtuelle et de possibilités de communication inter-processus. Il est le standard de fait pour les stations de travail et une norme standard, appelé OSF1 a été développé par l'organisme OSF (Open Software Foundation). Il s'est doté d'interfaces utilisateur graphiques telles que l'interface OSF/Motif basée sur le système de fenêtres X.

Une nouvelle génération de systèmes d'exploitation est en train d'apparaître, tels que le système Windows NT de Microsoft, qui sont des systèmes ouverts multitâches, multi-utilisateurs, avec une interface utilisateur graphique et intégrant les possibilités offertes par les réseaux.

Il a été conçu pour pouvoir être installé facilement sur différentes machines RISC et CISC, ainsi que sur des machines multiprocesseurs.

C'est un système multitâche et multi-utilisateur, c'est-à-dire que plusieurs utilisateurs peuvent effectuer plusieurs tâches simultanément, des tranches de temps étant allouées périodiquement par le système à chaque processus.

Les gros systèmes (mainframe)

Les systèmes d'exploitation sur gros ordinateurs sont essentiellement de type propriétaire. Citons MVS pour le monde IBM et GCOS7 pour le monde Bull.

Les ordinateurs haut de gamme sont le plus souvent des architectures multiprocesseurs exploitées dans les modes batch et temps réel. Ils servent simultanément plusieurs centaines d'utilisateurs et ils accomplissent les tâches les plus variées (édition de textes, compilation, petits travaux de mise au point, grands jobs de production, etc.).

Page 4: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

La tendance à connecter les ordinateurs en réseau a poussé les systèmes d'exploitation à se doter de modules de communications (Network Operating Systems). Des systèmes distribués (Distributed Operating Systems) sont développés qui exploitent les ressources de plusieurs machines, tout en donnant l'impression à l'utilisateur de dialoguer avec un seul ordinateur.

� STRUCTURE D'UN SYSTEME D'EXPLOITATION

� RAPPEL DE NOTIONS DE BASE

Avant d'aborder la description d'un système d'exploitation actuel, il est nécessaire de préciser certains concepts de base.

Un programme peut être défini comme une suite statique d'instructions. Il est écrit dans un langage de programmation "source". Il n'est véritablement exploitable par l'ordinateur qu'après une traduction (compilation ou interprétation) en langage machine binaire sous une version "exécutable".

Un processus est un programme (en version "exécutable") en cours d'exécution, c'est-à-dire où une séquence d'instructions est déroulée pour réaliser un traitement déterminé.

Le processeur est un dispositif matériel (hardware) qui exécute les processus. Le processus est l'unité de travail de base du système d'exploitation.

L'exploitation d'un ordinateur s'organise autour de l'exécution de processus très divers comme par exemple un processus d'entrées-sorties des données, un processus de calcul déterminé, ou encore un processus lié à l'activité d'un terminal interactif.

En généralisant, on peut distinguer les processus "utilisateurs" des processus "systèmes" générés par le système d'exploitation lui-même.

� DESCRIPTION STRUCTURELLE D'UN SYSTEME D'EXPLOITATION

Le modèle stratifié proposé décrit l'organisation d'ensemble d'un ordinateur géré en multiprogrammation, en groupant les différentes fonctions logicielles typiques d'un système d'exploitation moderne.

Ces fonctions ne sont pas toutes d'un même niveau. On peut considérer qu'un système d'exploitation est basé sur une superposition de couches fonctionnelles, les couches les plus basses étant celles qui servent d'interaction directe avec le matériel, et les plus hautes, celles qui servent d'interface avec l'utilisateur.

Chaque couche utilise les fonctions définies par les couches inférieures à l'instar de l'approche adoptée pour la définition des niveaux fonctionnels concernant les protocoles de communications d'un réseau (cf. modèle OSI cahier 07 & 3.7.2).

Sans véritablement être parties intégrante du système d'exploitation proprement dit, on trouve au plus bas niveau les fonctions fournies par le matériel. Mélange de matériel et de logiciel, elle

Page 5: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

constitue ce que l'on nomme le Bios (Basic Input Output System), programme constitué d'instructions "micro-codées" et mémorisées sur des mémoires mortes (ROM) encore appelé (firmware).

La fonction du Bios est d'initialiser l'ordinateur à sa mise sous tension. Il vérifie l'état de disponibilité de l'environnement interne et externe de l'ordinateur (périphériques) et procède ensuite au chargement, en mémoire vive (RAM) du système d'exploitation mémorisé sur disque magnétique.

� MODULES RESIDENTS

Mais seule une partie du système d'exploitation est chargé. Plusieurs modules sont implantés dont le fonctionnement capital nécessite une présence permanente dans la mémoire centrale de l'ordinateur pendant toute la durée de son fonctionnement. De ce fait, ils sont appelés et regroupé sous le terme de "résidents".

Parmi les programmes résidents on trouve tout d'abord le noyau (ou superviseur, moniteur). Interface entre le matériel et le logiciel, sa finalité est de gérer :

• l'allocation du CPU ;

• la gestion des interruptions ;

• le support de l'environnement des processus.

Le noyau est la seule partie du système qui doit entièrement résider en mémoire centrale. Ses fonctions impliquent des interventions fréquentes et rapides. On ne saurait attendre un module stocké sur disque pour répondre à une disponibilité soudaine du CPU ou pour réagir à une interruption.

On rencontre ensuite le module de gestion de la mémoire, suivi par la gestion des entrées-sorties.

� MODULES NON RESIDENTS - PROGRAMMES UTILITAIRES

Un certain nombre de module ne font pas partie des fonctions de base du système d'exploitation. Ils sont chargé en mémoire au fur et à mesure des besoins. Ils intègrent de services du système, comme la gestion des fichiers, la planification des travaux (l'allocation des ressources) et enfin l'interface utilisateur avec l'interpréteur de commandes.

Les logiciels utilitaires aident à développer les applications, tels les compilateurs, assembleurs, éditeurs de liens, chargeurs et débogueurs. Ils comprennent aussi d'autres outils tels que des outils graphiques, des outils de communication, etc.

Le système de gestion des fichiers fait appel, par exemple, aux services du système de gestion des entrées-sorties, qui, à son tour, utilise le module de traitement des interruptions, etc.

Il faut noter que, dans ce modèle, des programmes tels les compilateurs, les assembleurs, les éditeurs de liens, les interpréteurs, les éditeurs de texte, et les utilitaires divers (tri, fusion, sélection, etc. ...).

Page 6: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

� PERSPECTIVES D'EVOLUTION

Pendant un quart de siècle, les systèmes d'exploitation et les matériels ont évolué en parallèle, en s'influençant mutuellement.

Les fonctionnalités des systèmes contemporains trouvent leurs racines dans un matériel toujours plus performant, où des dispositifs spécifiques ont été conçus à leurs intentions. Les canaux d'E/S, le système d'interruption, les différents types de mémoires "caches", les mémoires auxiliaires comme les unités de disque et les terminaux interactifs ont joué un rôle déterminant dans l'évolution des concepts fondamentaux des systèmes d'exploitation tels que la protection des programmes et des données, la réallocation dynamique des programmes en mémoire centrale ou pour la gestion de la mémoire virtuelle.

Les tâches d'un système d'exploitation n'ont ainsi cessé de croître au fil des années en terme de services et de convivialité. Il n'est donc pas surprenant de constater un accroissement continuellement de leur taille et de leur complexité. Un système d'exploitation moderne est constitué de centaines de milliers, voire de millions d'instructions.

Après un quart de siècle de développement et une somme d'expériences plus ou moins concluantes, les fonctions de base de tout système d'exploitation commencent à être assez bien identifiées et une certaine structure hiérarchisée entrevue. On observe une convergence des idées et des structures, bien que les réalisations restent pour la plupart encore assez différentes et incompatibles.

Cependant, on assiste actuellement à un certain effort de normalisation où la tendance est de se conformer aux systèmes existants plutôt que d'en développer des nouveaux.

Les systèmes propriétaires ont tendance à disparaître au profit de systèmes ouverts qui essayent de s'imposer comme "systèmes standard" pour tout type de machine.

Les progrès spectaculaires à attendre dans les domaines des technologies matérielles et logicielles nous laissent entrevoir, pour les années à venir, des changements et des innovations dans les développements des systèmes d'exploitation et des logiciels associés.

� LA GESTION DE LA MEMOIRE

Les programmes ont besoin de mémoire pour leur exécution (pour le stockage des instructions et des données). Seules les instructions stockées en mémoire centrale peuvent être exécutées par le processeur (CPU).

La mémoire centrale est une ressource coûteuse: par conséquent elle est limitée et devient facilement un élément critique dans la performance d'un ordinateur. La taille des mémoires a augmenté considérablement avec l'adoption des mémoires électroniques, mais la taille des programmes a suivi une tendance semblable. Il s'est avéré donc nécessaire de gérer l'espace mémoire efficacement.

Page 7: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

Au fil des années, des techniques ont été développées, allant des plus simples aux plus sophistiquées.

� LA GESTION DE L'ESPACE MEMOIRE EN MONOPROGRAMMATION

Lorsqu'un l'ordinateur est exploité en monoprogrammation, le problème se réduit au partage de la mémoire entre le programme d'application à exécuter et la partie du système résidant en mémoire.

C'est la technique la plus simple à mettre en œuvre.

Le programme utilisateur dispose alors de toutes les ressources de l'ordinateur pour son exécution. Tel était le cas des ordinateurs de la première génération qui étaient dépourvues de tout logiciel. Ils étaient programmées en binaire et les programmes étaient chargés en mémoire, exécutés et mis au point depuis un pupitre de commande.

Ces machines ne pouvaient exécuter qu'un seul programme à la fois, chaque unité passait la plupart de son temps à attendre qu'une autre unité ait terminé son travail.

Cela s'explique, dans la mesure où une disproportion énorme existe entre les temps de traitements internes (nanoseconde) et externes (milliseconde pour les disques magnétiques), et que par ailleurs, en informatiques de gestion les manipulations de données (E/S) sont très fréquentes, il s'est très rapidement avéré que ce type de gestion de la ressource mémoire devenait très coûteuse.

� LA GESTION DE L'ESPACE MEMOIRE EN MULTIPROGRAMMATION

A la fin des années 50, avec l'amélioration des performances, le coût relatif du temps perdu était devenu prohibitif. C'est pourquoi, avec l'arrivée des ordinateurs de la deuxième génération, on chercha à réduire les temps morts en automatisant les opérations manuelles et en améliorant l'exploitation des différentes unités.

Aussi, l'idée s'est développée selon laquelle, plusieurs programmes pouvaient être stockés en mémoire et être traités successivement par le processeur lorsque celui-ci était libéré par une demande d'opération d'E/S.

Plusieurs techniques ont été développé en fonction l'état d'avancement de la technologie disponible. Elles sont regroupé sous le terme de multiprogrammation.

En multiprogrammation, plusieurs programmes sont implantés en mémoire centrale et sont exécutés alternativement par un seul processeur.

Dans ce type de gestion, la problématique revient à organiser la mémoire afin qu'elle puisse contenir un nombre maximum de programmes.

Ainsi naquit le "moniteur", ou exécutif, programme chargé d'assurer la bonne marche des opérations. Il s'occupait du séquence ment des travaux des utilisateurs et de la continuité des opérations.

Page 8: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

� PARTITIONS DE TAILLE FIXE

L'idée la plus simple a consisté à découper la mémoire physique en partitions fixes, mais non nécessairement de tailles identiques, fixées de façon paramétrable à chaque début de session de fonctionnement de l'ordinateur.

Ces partitions étant fixées à l'avance, leur allocation présentait quelques problèmes, notamment du fait d'un certain gaspillage de mémoire, à cause des différences entre les tailles des processus et celles des partitions. La taille des processus à exécuter étant difficilement prévisible, leur taille ne correspondait pas exactement à celles des partitions établies à l'avance. L'utilisation de la mémoire n'était pas totalement optimum du fait de la présence de ces espaces perdus "trous de mémoire", elle prit, de ce fait, le qualificatif de "mémoire en gruyère".

� PARTITIONS DE TAILLE VARIABLE

L'inévitable gaspillage de mémoire des systèmes à partitions fixes conduisit à la conception de partitions adaptables à la taille des programmes. Ainsi naquit la partition de taille variable.

La solution consiste naturellement dans la possibilité de déplacer physiquement les programmes en mémoire. De temps en temps le système suspend les exécutions et effectue un compactage. Cela permet de ressasser la mémoire émiettée et de faire place aux programmes en attente.

Pour réaliser cette opération de ressassement, ou compactage, on doit disposer d'une technique pour déplacer correctement les programmes, afin qu'ils puissent continuer leur exécution. On appelle cette technique, la "relocation" (réallocation), ou translation dynamique (dynamic relocation).

Elle est réalisée à l'aide des registres de base et du dispositif calculant, au moment de l'exécution, l'adresse effective. L'adresse effective est égale à la somme de l'adresse de base et de l'adresse relative au début du programme. La réallocation dynamique de l'espace mémoire peut ainsi être réalisée en déplaçant le programme et en modifiant le contenu du registre de base associé.

Les techniques des systèmes multiprogrammés, s'accompagnent également de dispositif de sécurité, protégeant chaque programme contre les fautes éventuelles des autres usagers. Les fautes susceptibles de mettre en danger l'exécution correcte d'un programme d'autrui sont liées à la possibilité de déborder dans la zone mémoire d'un autre programme. En principe, il suffit donc de vérifier que toute adresse calculée pendant l'exécution soit interne à l'intervalle des adresses allouées au programme exécutant.

La solution consiste à comparer, à l'aide d'un dispositif spécial, l'adresse effective calculée avec les adresses extrêmes de la zone allouée au programme, stockées dans des registres bornes.

Cependant, si la gestion à partitions de taille variable permet une optimisation de l'occupation de la mémoire, elle ne supprime pas la difficulté pour un programme volumineux à obtenir de la ressource mémoire suffisante.

Dans ce système, l'attribution de la ressource mémoire est dépendante de la taille de celui-ci.

Page 9: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

Dans l'évolution conceptuelle des systèmes de gestion de la mémoire, l'étape suivante a consisté à chercher des méthodes de fractionnement des programmes et de partitionnement de la mémoire, de telles sorte qu'un programme puisse être chargé par module ("morceaux"), et ceci indépendamment de sa taille.

� LA SEGMENTATION

Une technique offrant une solution à ce problème est la segmentation. Elle concerne la division du programme en modules, ou segments, chaque segment correspondant à une entité logique, telle une procédure ou un bloc de données, indépendante des autres segments.

La segmentation permet au programmeur de définir plusieurs espaces d'adresses séparés. Le système d'exploitation se charge de placer en mémoire les segments nécessaires à l'exécution des programmes prêts à utiliser le processeur. C'est le système qui doit savoir où sont stockés les différents segments. Pour cela, il organise et il gère un ensemble de tables de segments, une table par processus, contenant les adresses de chargement des segments de chaque programme.

L'adresse est structurée et contient deux champs : le numéro du segment et le déplacement à l'intérieur du segment. Chaque processus est associé à une table de segments. Le calcul de l'adresse effective est réalisé, comme d'habitude, à l'aide d'un dispositif spécial, en ajoutant le déplacement à l'adresse de chargement du segment, qui est stockée dans la table des segments.

La protection peut être assurée au niveau de la table des segments, en y ajoutant la taille de chaque segment ou la dernière adresse du segment. Ces informations sont utilisées pour vérifier que l'adresse calculée ne tombe pas en dehors de la portion de mémoire occupée par le segment.

� LA NOTION DE MEMOIRE VIRTUELLE

L'idée de mémoire virtuelle (virtual memory) consiste à traiter séparément les adresses référencées par un programme (adresses virtuelles) et les adresses de la mémoire physique (adresses réelles).

L'ensemble des adresses virtuelles utilisées dans un programme est indépendant de l'implantation du programme en mémoire physique. C'est un espace mémoire virtuel qui n'existe donc pas, mais qui peut être utilisé par le programmeur comme modèle de mémoire centrale à sa disposition. Tout se passe comme si l'utilisateur avait accès à une mémoire ayant 2n locations adressables (les adresses allant de 0 à 2n-1), n étant le nombre de bits utilisés pour les adresses du programme.

Ce nombre n peut être naturellement beaucoup plus grand que le nombre m déterminant la taille de la mémoire physique. Une table de correspondance, dite topographie de mémoire ou table des pages (page table), gérée par le système, met en relation ces deux espaces d'adresses. Un dispositif matériel assure la transformation d'une adresse virtuelle en adresse réelle.

Un processus utilisera donc une partie de l'espace des adresses virtuelles à sa disposition, notamment celle déterminée par l'éditeur de liens et constituée des adresses comprises entre 0 et une adresse extrême correspondant à la taille du programme prêt au chargement (load module). L'allocation de mémoire réelle à un tel processus sera traitée par le système d'exploitation sans

Page 10: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

tenir compte de la taille du programme dans l'espace virtuel. L'idée est de libérer le programmeur de toute contrainte imposée par la taille de la mémoire physique.

Par exemple, un champ adresse de 32 bits permet d'adresser un espace virtuel de 4 Gmots (4 milliards de mots). Si la mémoire réelle est de taille beaucoup plus petite (par exemple, 16 Mmots, correspondant à des adresses réelles de 24 bits), le programmeur ne doit pas s'en soucier. Des mécanismes transparents, gérés par le système d'exploitation, assurent la correspondance entre adresses virtuelles et adresses réelles, donnant ainsi la possibilité d'exécuter tout programme contenu dans les limites de l'espace virtuel. Pour réaliser un tel miracle, le système sera amené à utiliser des mémoires auxiliaires (disques, tambours, mémoires électroniques d'appui, etc. ), comme extensions de la mémoire centrale.

Le concept de mémoire virtuelle, développé pendant les années 60, fut à la base de nombreux projets de recherche avant de devenir une réalité. Au début des années 70, la plupart des gros ordinateurs étaient dotés de mémoire virtuelle. La technique qui permit la réalisation du concept de mémoire virtuelle, est appelée pagination.

� LA PAGINATION Pour réaliser une mémoire virtuelle, il faut d'abord avoir suffisamment de mémoire secondaire pour y stocker le programme tout entier et ses données. A l'exécution, des fragments du programme seront chargés en mémoire par le système d'exploitation. Il s'agit, bien sûr, de copies des fragments originaux, qui resteront sur disque ou sur d'autres supports auxiliaires et qui ne seront modifiés qu'en cas de changements effectués sur la copie en mémoire principale. Pour éviter des complications inutiles, il convient de définir une taille fixe et unique pour tous ces fragments de programme, qu'on appelle des pages. Le concept de pagination consiste à découper les deux espaces adresses en pages de la même taille et à mettre en œuvre un mécanisme de transfert de pages entre la mémoire virtuelle et la mémoire réelle.

L'espace des adresses virtuelles est donc divisé en pages de taille fixe, par exemple, 1.024 ou 2.048 mots (la taille des pages étant toujours une puissance de 2). La mémoire réelle est aussi divisée en pages réelles de la même taille. Les pages réelles sont allouées par le système d'exploitation aux processus en attente. A tout instant, un programme prêt à l'exécution n'aura que quelques copies de ses pages en mémoire, opportunément choisies pour permettre à l'exécution d'avancer.

Une table des pages fait correspondre à chaque page virtuelle toute une série d'informations, mises à jour par le système et concernant son emplacement sur disque et, le cas échéant, en mémoire. Un bit indicateur signale la présence (ou l'absence) de la page en mémoire principale.

Lorsqu'une adresse référencée appartient à une page n'ayant pas de copie en mémoire, on se trouve en "défaut de page "(page fault). Le système cherche alors sur disque une copie de la page demandée, la charge en mémoire en déplaçant une autre page et met à jour la table des pages.

� PAGINATION ET ANTEMEMOIRE

L'antémémoire est une mémoire relativement petite mais très rapide, annexée au processeur dans le but d'augmenter la performance de l'ordinateur. Si l'instruction ou la donnée cherchée se trouve

Page 11: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

dans l'antémémoire, elle sera immédiatement transférée à l'unité de commande ou à l'UAL, sans attendre le temps, beaucoup plus long, d'un accès à la mémoire.

Si le CPU est doté d'une antémémoire, dite aussi cache (cache memory), les instructions et les données d'un programme peuvent être stockées sur trois niveaux : la mémoire auxiliaire, où se trouve le programme tout entier; la mémoire principale, où se trouve un petit ensemble de pages du programme; le cache, où se trouve une partie (lignes ou blocs) des pages chargées en mémoire centrale.

� PAGINATION DU SYSTEME D'EXPLOITATION

Le système d'exploitation est composé de logiciels, même s'ils ne sont pas tout à fait comme les autres (instructions privilégiées, mode superviseur, etc.) et est, à ce titre, également soumis à la pagination. A cause de sa taille, le système d'exploitation ne peut pas être entièrement stocké en mémoire principale. Seuls font exception le noyau et une partie des programmes de gestion de la mémoire et des entrées-sorties (par exemple, ceux qui s'occupent de la pagination).

Les programmes de service, tels les compilateurs, les éditeurs de texte, etc., sont aussi paginés et traités de la même manière que les programmes utilisateurs.

� CONCLUSION

En règle générale, les programmes qui s'exécutent dans un système multiprogrammé moderne n'ont que quelques pages en mémoire centrale.

Les tendances actuelles sont, d'un côté, de traiter la plupart des fonctions du système d'exploitation comme des processus utilisateurs et, d'un autre côté, de profiter de la micro-électronique pour confier au matériel ou au niveau de microprogrammation les tâches les plus fréquemment exécutées.

� LA GESTION DU TEMPS DU CPU

La gestion du temps du processeur (CPU) se pose dans un contexte de fonctionnement multiprogrammée.

Cette fonctionnalité fondamentale d'un système d'exploitation revient à gérer l'exécution d'un ensemble de processus concurrents.

La gestion du temps CPU est donc une technique qui vise l'attribution entre plusieurs processus de la ressource que constitue le processeur (ressource CPU) par l'élimination des temps d'attente du processeur.

En assurant la présence en mémoire centrale de plusieurs programmes ou parties de programmes capables de profiter de tout cycle CPU disponible, elle cherche à exploiter plus efficacement l'ordinateur.

La différence entre systèmes mono et multiprogrammés réside dans le nombre de programmes chargés en mémoire et prêts à utiliser le CPU.

Page 12: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

Mais cette exécution de processus concurrents par un seul processeur n'est pas simultanéité car dans la réalité elle s'effectue en alternance. La fréquence (extrêmement rapide à l'échelle humaine) des passages d'une activité à l'autre donne une impression de simultanéité.

� FONCTIONNALITES DE L'ALLOCATEUR (DISPATCHER)

L'allocateur, un des modules du noyau (appelé également dispatcher) est responsable de la répartition du temps disponible de l'unité de traitement (ou des unités de traitement dans le cas d'une architecture multiprocesseur) entre les différents processus. Sa tâche implique la gestion d'une file d'attente, où les processus prêts à utiliser le CPU sont classés par ordre de priorité. La priorité d'un processus est attribuée par le planificateur (scheduler) selon l'urgence du traitement et les ressources requises; elle est ensuite modifiée dynamiquement sur la base du temps d'attente entre deux exécutions partielles.

L'allocateur se contente d'allouer le CPU au processus qui se trouve en tête de la queue au moment où le CPU devient disponible. Il intervient dans tous les cas où il faut changer le processus maître du CPU. Par exemple, lorsque le processus exécutant déclenche une opération d'entrées-sorties, ou lorsqu'une interruption d'horloge signale que la tranche de temps allouée s'est écoulée (cf. temps partagé) et qu'il faut suspendre l'exécution (préemption). L'allocateur sera aussi activé dès qu'une interruption externe modifie l'état du processus maître du CPU, ou le rend momentanément inopérant (par exemple, traitement d'une erreur). Il attribue alors la ressource CPU à un autre processus. L'allocateur doit aussi sauvegarder l'état du processus dont l'exécution s'interrompt et doit fournir au CPU les éléments de l'environnement du processus désigné comme successeur.

� SUPPORT DE L'ENVIRONNEMENT DES PROCESSUS

Cependant, les processus sont parfois en compétition pour le partage de certaines ressources (CPU, mémoire, périphériques, fichiers, etc.). Il est donc nécessaire de coordonner leur progression.

Des méthodes ont été développées, qui permettent la synchronisation et la communication entre processus évoluant de manière asynchrone. C'est la responsabilité d'un module du noyau de pourvoir à ces mécanismes.

Dans le domaine de la synchronisation on peut citer le problème posé par deux processus se trouvant dans une relation producteur/consommateur, où l'un produit des résultats qui doivent être traités par l'autre. Bien que les vitesses d'avancement des deux processus ne soient pas prévisibles, on doit éviter que le deuxième processus ne consomme plus vite que le premier ne peut produire. On dit que ces deux processus sont en compétition pour une ressource partageable et qu'ils se trouvent dans une situation de course de vitesse.

Il faut éviter que deux processus compétitifs puissent accéder simultanément à une même ressource non-partageable qu'ils convoitent. C'est le cas dit de l'exclusion mutuelle et la solution consiste à s'assurer que les ressources non partageables ne sont accessibles que par un processus à la fois.

Page 13: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

Enfin, on peut citer la possibilité de tomber dans des situations de blocages (appelées étreinte fatale: "deadlock") où plusieurs processus cherchant à obtenir une même ressource n'arrivent plus à sortir d'une situation d'impasse. Le système d'exploitation doit prévenir et éviter ces blocages et, le cas échéant, intervenir pour débloquer la situation.

Parmi les mécanismes de synchronisation et de communication entre processus utilisés dans les systèmes d'exploitation, on peut citer les sémaphores, proposés par Dijkstra en 1965.

Pour donner une idée de ces méthodes nous introduisons brièvement le concept de sémaphore : un sémaphore est une variable entière positive (un compteur, prenant les valeurs 0,1,2...n) pouvant être modifiée seulement par deux opérations primitives, appelées Wait et Signal.

L'opérateur Signal (S) incrémente le sémaphore S d'une unité. L'opérateur Wait (S) décrémente S d'une unité, à condition que le résultat ne devienne pas négatif. Cela signifie que si S = "0" l'opération Wait (S) ne peut pas être effectuée; par conséquent elle doit attendre que le sémaphore S devienne positif (à la suite d'une opération Signal (S) effectuée par un autre processus).

� GESTION DES INTERRUPTIONS

La tâche de ce module est de déterminer la source de l'interruption et d'activer la procédure de service, ou de réponse, correspondante.

Parmi les interruptions qu'il faut traiter à ce niveau, il faut inclure les interruptions internes provoquées, par exemple, par la détection d'une erreur, ou par une action requérant le passage à l'état superviseur, ainsi que toutes les interruptions externes.

Comme exemples d'actions causant le passage à l'état superviseur, on peut citer le cas d'un utilisateur essayant d'exécuter une instruction privilégiée ou cherchant à accéder à une information protégée, etc. Si l'interruption implique un changement d'allocation du processeur, ce module du noyau activera le dispatcher.

� TEMPS PARTAGE

Les systèmes à temps partagé (time-sharing), sont une variante des systèmes multiprogrammés où le temps CPU est distribué par petites tranches prédéfinies à un très grand nombre d'utilisateurs en mode de fonctionnement interactifs ou non.

Le système d'exploitation partage les ressources de traitement entre les différents utilisateurs, de telle sorte que chacun d'entre eux ait l'impression de disposer de la machine pour lui tout seul.

� LA GESTION DES TRAVAUX

Une des fonctionnalités d'un système d'exploitation concerne l'organisation de l'exploitation proprement dite de l'ordinateur.

La gestion des travaux assure un ensemble de tâches telles que :

Page 14: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

• la communication de l'utilisateur avec le système d'exploitation notamment par la rédaction et la formulation de la demande (interface utilisateur),

• la prise en charge de la demande (affectation des ressources et planification),

• la comptabilité et les statistiques concernant l'utilisation des ressources,

� NOTIONS DE BASE

Les ressources matérielles et logicielles d'un système informatique (CPU, mémoires, dispositifs d'entrées-sorties, etc.), sont disponibles en quantité limitée et doivent être partagées entre les différents processus.

D'une façon générale, on peut définir une ressource comme un élément nécessaire à un processus pour mener à bien son exécution (CPU, mémoires centrale et auxiliaire, périphériques d'entrées-sorties, fichiers, programmes utilitaires divers, liaisons à d'autres systèmes, etc.).

La demande d'exploitation est formalisée par un langage de commande, le JCL (Job Control Language) et au travers d'une entité appelée "travail" ou Job.

Le job se décompose en "étape" (step) qui correspondent à un processus.

Un job est toujours identifié et rattaché à un utilisateur connu du système d'exploitation (cf. catalogue § 9.1 du présent cahier).

� INTERFACE UTILISATEUR

La communication entre utilisateur et système d'exploitation s'effectue par l'intermédiaire d'un langage de commande, appelé JCL (Job Control Language) relativement souple et puissant, permettant à l'utilisateur de spécifier à l'avance :

• l'identification de l'utilisateur et du job,

• les différents processus à exécuter (step),

• les ressources nécessaires à leur déroulement.

• l'enchaînement à réaliser en tenant compte de toutes les alternatives possibles.

Les environnements interactifs (TSO pour IBM, IOF pour Bull) offrent des interfaces plus simples. L'utilisateur peut suivre le déroulement de son job par l'intermédiaire d'un terminal et décider de la suite des opérations au fur et à mesure que les alternatives se présentent.

Les demandes que l'utilisateur soumet au système à l'aide du langage de commande, sont interprétées par l'interpréteur de commandes (command interpreter). Celui-ci lit les commandes provenant du terminal et, après les avoir interprétées, fait parvenir les requêtes aux services appropriés. C'est ainsi que, si l'utilisateur commande une compilation, l'interpréteur en informe le scheduler, qui va créer un processus utilisant le compilateur demandé.

La plupart des langages de commande sont de type propriétaire car ils reflètent la structure interne de l'ordinateur. Ils ne peuvent que difficilement être changés. Cependant, dans le cas d'un

Page 15: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

système d'exploitation ouvert comme Unix, l'interface constituée par l'interpréteur de commandes, appelée shell, peut être modifiée ou même remplacée par l'utilisateur, qui peut ainsi communiquer par un langage de son choix.

En effet, l'interpréteur ou shell ne fait pas partie du système d'exploitation Unix, comme d'ailleurs les éditeurs, assembleurs, compilateurs, éditeurs de liens, débogueur, ainsi que le système de fichiers. Tous ces programmes de service, aussi importants qu'ils soient, sont traités comme des programmes utilisateurs.

� ALLOCATION DES RESSOURCES ET PLANIFICATION

� SOUMISSION DES JOBS

Les systèmes actuels combinent les traitements batch et temps réel.

Dans un système à temps réel, tout job soumis à partir d'un terminal peut être contrôlé directement par l'utilisateur (mode de soumission nommé "Remote job entry"). Il peut, par exemple, décider de corriger des erreurs, recompiler et resoumettre le job pour exécution. Ce mode d'exploitation est particulièrement adapté à la phase de mise au point d'un programme, tandis que le mode batch ("Remote batch processing") est généralement utilisé pour des travaux de production et pour d'autres tâches non interactives.

� ALLOCATION DES RESSOURCES

Les jobs sont lus et traduits au fur et à mesure de leur soumission par les utilisateurs puis rangés en leur attribuant les ressources demandées dans un fichier système sur disque ("spool": Simultaneous Peripheral Operation On-Line).

Les mécanismes d'allocation d'une ressource particulière sont réalisés par le dispatcher, un des modules du moniteur.

Mais la stratégie de répartition et d'allocation des ressources doit être déterminée globalement pour tout le système.

Les objectifs de cette couche du système peuvent être ainsi résumés :

• permettre à chaque processus existant d'obtenir les ressources nécessaires dans des limites de temps raisonnables;

• exclure mutuellement les processus qui demandent une même ressource non-partageable et éviter les situations de blocage (attente sans fin d'une ressource par plusieurs processus).

• comptabiliser et fournir des statistiques sur l'exploitation des ressources principales;

� LA PLANIFICATION

Le planificateur (scheduler) détermine l'ordre d'exécution des jobs soumis par les utilisateurs.

Page 16: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

Sa fonction principale est d'assurer une exploitation équilibrée et, par conséquent, un service satisfaisant à tous les usagers. Il choisit le moment pour lancer une exécution et il refuse l'accès à un utilisateur interactif si le nombre d'utilisateurs connectés est tel qu'on peut craindre une dégradation inacceptable du temps de réponse.

Le moniteur procède à l'exécution des processus sur la base de critères de priorités attribuées par le planificateur.

� LA GESTION DES ENTREES/SORTIES

Les entrées-sorties sont le domaine le plus délicat dans la conception et la réalisation d'un système d'exploitation. La gestion des entrées-sorties revêt une importance fondamentale, mais les procédures d'entrées-sorties utilisées par les ordinateurs actuels sont complexifiées par la grande variété des unités périphériques gérées.

� QUELQUES ASPECTS DU PROBLEME

Les difficultés proviennent de causes matérielles et de facteurs objectifs, mais aussi du souci de gestion optimale des ressources et de simplification de la tâche de l'utilisateur. Voici quelques exemples :

• la diversité fonctionnelle des unités périphériques (imprimantes à laser, unités de disques magnétiques et optiques, cartouches magnétiques, etc.) ;

• l'énorme différence de vitesse entre les unités (de quelques caractères par seconde du clavier d'un terminal, à quelques millions de caractères transférés en une seconde par une unité de disques) ;

• la diversité de codage et de structure des informations échangées (ASCII, EBCDIC, binaire ; mots, octets, blocs) ;

• la différence entre les méthodes d'accès aux unités (accès séquentiel ou aléatoire : adressage complètement différent des unités de bande, de disques, ou des grandes mémoires d'archivage);

• la différence des conditions de partage des périphériques (une unité de disques peut être utilisée en même temps par plusieurs processus; l'écran d'un terminal peut être partagé entre des processus d'un même utilisateur tandis qu'une imprimante ne peut être partagée que dans le temps et par jobs entiers) ;

• la grande diversité des conditions d'erreur (erreur de parité, imprimante sans papier, erreur de positionnement d'une tête de lecture/écriture sur disque, unité déconnectée, erreurs d'adressage ou de format, etc.) ;

• la complexité des systèmes de liaison entre périphériques et unité centrale (DMA, canaux, bus, unités de commande, unités de télécommunications, etc.);

• le haut degré de parallélisme des opérations ;

Page 17: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

• la nécessité de protéger les utilisateurs et de leur cacher les détails des opérations d'entrées-sorties, les idiosyncrasies (les réactions individuelles propres à chaque homme) des unités périphériques et les incidents de parcours ;

• la nécessité de rendre les programmes le plus possible indépendants des types de périphériques concernés (un même programme doit pouvoir recevoir des données d'une disquette, d'un disque dur ou d'une unité de bande ; doit pouvoir envoyer ses résultats sur l'écran d'un terminal ou à l'imprimante).

� EVOLUTIONS TECHNOLOGIQUES

Une étape importante est franchie au milieu des années 60, elle suit une série de développements fondamentaux dans le domaine des entrées-sorties.

D'abord, l'arrivée sur le marché des tambours magnétiques mais surtout des unités de disques à des prix de plus en plus abordables. Ils offrent l'accès aléatoire et des capacités importantes; ce qui permet le stockage de tout programme d'application ou de système dans ces mémoires auxiliaires rapides.

Ensuite, l'introduction des canaux et du système d'interruption élimine la dépendance des E/S, qui peuvent désormais procéder en parallèle avec les traitements.

C'est le cas notamment des opérations d'entrée-sortie, strictement réservées au système d'exploitation et qu'il serait trop difficile et trop risqué de laisser effectuer par les utilisateurs. Dés que l'utilisateur doit faire une opération d'entrées-sorties, il fait appel à un ensemble de procédures spéciales (system calls), fournies par le système d'exploitation.

Ces procédures, tout en simplifiant la programmation des E/S, contiennent une requête au superviseur qui provoque le passage à l'état superviseur, permettant ainsi au système d'effectuer toute opération délicate ou dangereuse, sous sa responsabilité.

� LA GESTION DES ENTREES/SORTIES

Le système d'exploitation réalise cette gestion en s'efforçant de traiter tous les périphériques de la même manière (périphériques virtuels, codification interne standard des caractères, etc.) et en confinant tous les traitements particuliers dans des modules spécialisés, appelés gestionnaires d'unité périphérique (device handlers, drivers).

La gestion des entrées-sorties est organisée autour de quatre modules :

• des modules standard (programmes de bibliothèque) utilisées par les applications et contenant des requêtes au superviseur provoquant le passage en mode privilégié ;

• des modules d'entrées-sorties indépendants des unités périphériques ;

• des drivers commandant chaque unité dans le détail ;

• des programmes de service des interruptions agissant en collaboration avec les fonctions du noyau.

Page 18: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

L'utilisateur dispose d'un jeu d'instructions d'entrées-sorties virtuelles. Elles s'opposent aux instructions d'entrées-sorties machine, qui ne sont utilisées que par le système d'exploitation. Une instruction d'entrées-sorties virtuelle se présente, selon le langage de programmation utilisé, sous la forme d'un appel de procédure système (Read, Write, Print, etc.), contenant les arguments nécessaires (noms des variables ou des fichiers, taille, format, unité logique, etc.).

Au niveau de la compilation, ces instructions sont remplacées par les procédures système correspondantes, contenant des instructions privilégiées.

A l'exécution, le système d'exploitation est invoqué par l'activation d'une requête au superviseur. Cette demande n'est pas nécessairement traitable immédiatement, le chemin d'accès à l'unité désirée pouvant être occupé par un autre transfert de données. Le système gère des files d'attente pour chaque type de ressource. A ce niveau, les entrées-sorties ne concernent pas encore des ressources physiques. On parle, par exemple, de canal logique, pour indiquer un processus exécutable par un canal physique.

Dés que le périphérique demandé est libre, et que l'on dispose d'une voie d'accès (canal, bus, contrôleur, etc.), le module spécifique à l'unité concernée (handler) est activé. Le handler est chargé des échanges avec ce type de périphérique. Il y a un handler par type de contrôleur de périphérique. Il s'occupe de l'initialisation, de la supervision (vérification de parité, traitement des erreurs, etc.) et de la terminaison correcte d'un transfert.

Dans certains cas, le système empêche l'accès direct à une unité. Par exemple, l'accès à des périphériques lents, tels les lecteurs de cartes ou les imprimantes, ne peut se faire que par l'intermédiaire de fichiers disques servant de tampons (technique de spooling).

Il y a aussi des questions de protection au niveau des entrées-sorties. Le système doit vérifier, par exemple, que les adresses virtuelles concernées par un échange sont converties en adresses réelles au moment de l'initialisation.

Il doit aussi s'assurer que l'attribution de ces adresses en mémoire n'est pas modifiée avant la fin de l'opération d'entrées-sorties (par exemple, en verrouillant les pages concernées).

� LA GESTION DES FICHIERS

Les ordinateurs de première génération stockaient leurs fichiers sur cartes perforées. Avec l'arrivée des bandes magnétiques ces données furent recopiées sur ce support que l'on entreposait dans des bandothèques.

Dans les années 70, avec l'introduction des systèmes interactifs, il devint de plus en plus attrayant de stocker les fichiers sur des supports reliés en permanence à l'ordinateur. Les unités de disques, qui offraient en plus un accès quasi aléatoire, devinrent le lieu privilégié de stockage des fichiers.

Cette multiplication des besoins de stockage rendit de plus en plus impérieux la nécessité d'une gestion optimale des données.

Page 19: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

Aussi le système d'exploitation s'est-il vu également confier la responsabilité de l'organisation des fichiers, de leur stockage sur un support matériel et de l'accès aux informations contenues dans les fichiers.

La fonction fondamentale d'un système de gestion de fichiers (file system) est d'établir un lien entre le modèle logique des données, avec lequel travaille l'informaticien (analyste et programmeur), et la réalité physique des dispositifs de stockage.

De manière primordiale, tout système de gestion de fichiers doit assurer une interface simple et conviviale pour l'utilisateur et que les fichiers soient protégés et leurs intégrités assurées.

Ses grandes fonctionnalités assurent :

• la création et la destruction de fichiers, et sa manipulation en supportant une variété d'opérations telles que la fusion, la concaténation, la subdivision, la reproduction, etc. ;

• son identification par l'attribution d'un nom symbolique ;

• la protection d'accès aux fichiers selon les directives de ceux qui les ont créés et contre toute défaillance du matériel ou du logiciel ;

• l'offre de méthodes d'accès aux données efficaces et adaptées aux différentes applications (par exemple, accès séquentiel, direct, séquentiel indexé) ;

• le partage des fichiers ;

Du point de vue du concepteur/réalisateur, d'autres aspects du système sont extrêmement importants, par exemple :

• la gestion efficace de l'espace disque ;

• le choix et l'implantation d'un système de catalogage ;

• la manipulation des fichiers physiques de façon transparente pour l'utilisateur travaillant sur des fichiers logiques ;

• la mise en œuvre d'un système de sauvegarde acceptable, pour assurer l'intégrité des données ;

• la réalisation d'une certaine indépendance du matériel spécifique ;

• l'efficacité et la rapidité du système ;

• la protection des fichiers contre les erreurs des utilisateurs et du système et envers les accès non autorisés.

� RAPPELS ET DEFINITIONS

Fichier

Page 20: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

Un fichier, dans l'environnement informatique, est une collection de données, d'informations enregistrées de façon à être lues et traitées par ordinateur, et qui représente une entité pour l'utilisateur.

Mais plus généralement et d'un point de vue système, on peut considérer tout entité codifiée comme un fichier, comme par exemple un programme source, un programme objet, des résultats, un texte, une collection d'images, etc.

Enregistrement logique

Un fichier est composé d'enregistrements logiques (logical record) regroupés par bloc (enregistrement physique).

Un enregistrement logique est un ensemble de données ayant un sens pour l'utilisateur et demeure l'unité de traitement des données du programme. Un enregistrement contient des zones (ou champ) significatives de stockage des données proprement dites (nom, identifiant, adresse, prix , etc.).

La notion d'enregistrement logique est indépendante du dispositif physique sur lequel est stocké le fichier. L'utilisateur organise ses données en enregistrements et en fichiers selon un dimensionnement prédéfini.

Enregistrement physique

L'enregistrement physique (bloc) est l'unité de stockage manipulée par le système.

Ces blocs physiques sont numérotés par le système et forment la base de toute structure de fichiers. Si le bloc est l'unité de stockage, le caractère (octet, byte) est, dans la plupart des cas, la plus petite quantité d'information manipulée par le système.

Vu par le système, un fichier est donc un ensemble de blocs de taille fixe, chaque bloc étant une suite de caractères.

Sur disque magnétique par exemple, et à cause de la nature et de la structure de ce support, la longueur des blocs est un multiple de la taille d'un secteur (512 octets en général).

L'enregistrement physique (bloc) est également l'unité d'échange entre la mémoire centrale et l'unité périphérique. Les enregistrements logiques sont en effet regroupés par bloc pour des raisons d'optimisation des E/S dont la multiplication est une source de lenteur au déroulement d'un programme.

On peut définir un enregistrement physique comme la quantité d'information d'un fichier transférée entre la mémoire principale et son support de stockage permanent.

Page 21: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

� ORGANISATION DE FICHIER CLASSIQUE

Les systèmes d'exploitation des gros ordinateurs comportent un gestionnaire de données (Ufas pour Bull, Vsam pour IBM) dont les fonctions assurent l'organisation et offrent des méthodes d'accès aux données sur les supports périphériques.

On distingue 3 grandes organisations :

• l'organisation séquentielle,

• l'organisation relative,

• l'organisation séquentielle indexée.

L'avantage de ses organisations est d'assurer une totale indépendance dans la gestion des données entre le niveau applicatif (l'utilisateur) et le niveau matériel, de telles sortes qu'un changement d'une unité de disque et de ses caractéristiques (nombre et densité des secteurs, des pistes, des cylindres, ...) n'implique pas une maintenance des programmes applicatifs correspondants.

En dehors de ses organisations, l'utilisateur à la possibilité de développer ces propres méthodes d'accès (généralement en langage assembleur) et connues sous le qualificatif d'organisation adressée.

Chaque organisation offre des méthodes d'accès :

• l'organisation séquentielle: méthode d'accès séquentielle ;

• l'organisation relative: méthodes d'accès séquentiel, directe et dynamique ;

• l'organisation séquentielle indexée: méthodes d'accès séquentiel, directe et dynamique.

L'accès séquentiel

En accès séquentiel, il est nécessaire lire tous les blocs précédant un bloc donné avant de pouvoir le traiter. Cette méthode n'utilise pas les possibilités d'adressage éventuelles du support.

L'accès direct

L'accès direct ou aléatoire permet d'obtenir un enregistrement quelconque quel que soit son emplacement sur disque, indépendamment des autres enregistrements à partir d'une clé d'accès (le plus souvent un identifiant). Cette méthode nécessite l'implantation du fichier sur un support adressable.

Dans ce type d'utilisation des fichiers (le plus souvent en télétraitement), le temps d'accès est une composante importante.

L'accès séquentiel indexé associe une clé à chaque enregistrement, et organise une table de correspondance (index) entre les clés et les numéros d'enregistrement (qui peuvent être les adresses physiques des blocs) ; une recherche sur l'index des clés, permet de trouver l'adresse de l'enregistrement.

Page 22: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

L'accès dynamique

L'accès dynamique conjugue l'accès direct et l'accès séquentiel. Ce type d'accès est particulièrement adapté aux fichiers naturellement structurés en "sous-populations".

� LA GESTION DES RESSOURCES DISQUES

Les disques magnétiques sont constitués d'un empilement de plateaux, appelé dispack.

Pour des raisons d'optimisation de temps d'accès, les fichiers sont implantés sur les pistes situées sur une même verticale. L'ensemble de ces pistes est appelé "cylindre".

En effet, le dispositif de lecture/écriture en forme de peigne évite des déplacements pour les données du fichier se situant sur le même cylindre.

Le gain de temps de positionnement des têtes n'est pas négligeable dans la mesure où il est l'ordre de plusieurs milli-secondes par rapport au temps de traitement interne de l'unité centrale (nano-seconde). Si le système identifie l'emplacement sur disque (numéro de cylindre, piste et secteur) de chaque fichier dans une table "répertoire des fichiers " (appelée "file directory", Vtoc, ...).

En fonction des traitements qui leur sont appliqués, les fichiers ont tendance à s'accroître, ce qui requièrt de gérer des extensions d'espaces.

Pour rechercher les extensions désirées, certains systèmes gèrent une table de pointeurs, contenant les indications nécessaires pour déterminer l'emplacement d'un bloc cherché. Il suffit de suivre l'enchaînement des blocs sur cette table, qui peut être transférée en mémoire centrale, où elle est traitée rapidement.

On peut gagner en flexibilité, si l'on adopte une structure de bloc, selon le modèle des listes chaînées : chaque bloc contient un pointeur indiquant l'emplacement du bloc suivant. Cette approche facilite les modifications et l'accroissement, mais alourdit la recherche d'un enregistrement, qui devient pratiquement séquentielle.

Un autre problème est celui de l'allocation de l'espace disque. Le système tient à jour des tables facilitant la recherche de secteurs disponibles. Un premier type de table donne des indications sur les suites de blocs contigus disponibles sur une unité. Un deuxième type de table associe un bit à chaque bloc physique d'une unité de disques, indiquant si le bloc est libre ou occupé.

� PERFORMANCE

L’accès aux disques est beaucoup plus lent que l'accès à la mémoire centrale. Pour lire ou écrire un mot en mémoire, il faut quelques dizaines ou centaines de nanosecondes. Pour effectuer la même opération sur disque il faut compter des dizaines de millisecondes, ce qui fait 100.000 fois plus de temps. Il est donc important de minimiser le nombre d’accès disques nécessaires au traitement d'un fichier.

On peut accroître la performance du système si les blocs d'un fichier sont stockés dans des secteurs consécutifs d'une même piste ou, au moins, d'un même cylindre.

Page 23: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

Pour des blocs fréquemment référencés, on utilise une technique, dite bloc cache, consistant à garder quelques blocs dans une zone mémoire utilisée de façon semblable au cache du CPU, avec, bien sûr, tous les problèmes que cela comporte.

Dans les cas des fichiers à fort taux de mise à jour comportant plusieurs extensions, il devient alors nécessaire de réallouer un nouvel espace fichier plus grand pour contenir l'intégralité des données.

Le système de gestion de fichier fournit un ensemble de données statistiques sur l'activité de chaque fichier.

� SERVEURS DE FICHIERS

Une approche récente, de plus en plus répandue grâce à l'essor de l'informatique distribuée, consiste à confier à un ordinateur indépendant, toute la gestion des fichiers d'une communauté d'utilisateurs connectés à un réseau local. On appelle serveur de fichiers un tel ordinateur. Dans une telle architecture, la majeure partie de l'espace disque est concentrée autour du serveur, les autres machines du réseau n'ont pas besoin de capacité disque locale pour leurs fichiers.

Un autre développement récent, dû à l'intégration toujours plus poussée des ordinateurs et des réseaux, est celui des systèmes de fichiers dispersés dans un réseau (network file system). L'ordinateur de stockage de ses fichiers n'est pas connu de l'utilisateur. Dés qu'une requête d'accès parvient au système des fichiers, celui-ci détermine la position du fichier cherché et, en utilisant les services du réseau, en fait parvenir une copie au demandeur.

� LA GESTION DES SECURITES

La gestion de la sécurité revêt principalement deux aspects.

Le premier concerne la protection des données et des programmes. Le second aspect relève de l'organisation interne des utilisateurs, des ressources qui leurs sont attribuées et des droits d'accès qui leur sont attachés.

En confiant de plus en plus de données aux systèmes d'informations, en les mettant à la disposition d'un nombre croissant d'utilisateurs via des connexions en réseau, les sites informatiques deviennent de plus en plus exposés aux connexions malveillantes.

Les systèmes d'exploitation sont exposés aux attaques des intrus, pirates et autres "hackers", cherchant à accéder aux données confidentielles d'une entreprise, d'une organisation civile ou militaire.

C'est pourquoi les systèmes d'exploitation sont dotés d'une quantité de techniques et d'outils mis au point, pour mieux protéger les données et les programmes.

Mais beaucoup reste encore à faire pour rendre les systèmes informatiques moins vulnérables face notamment à l'ingéniosité des intrus.

Page 24: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

Tous les utilisateurs, les projets (applications) auxquels ils sont rattachés ainsi que les ressources privatives (bibliothèques JCL, de programme, fichiers, etc ...) qui leurs sont attribuées sont mémorisés dans un fichier système dénommé "Catalogue".

� LE CATALOGUE

Le catalogue recense les données d'identifications relatives aux projets, aux utilisateurs qui y sont rattachés, à leur ressources privatives et à leur droits d'accès et priorité d'exploitation.

Le projet constitue l'élément central du catalogue. Un projet est associé à des utilisateurs identifiés, à un numéro comptable et à un ensemble de ressources privatives (bibliothèques JCL, de programme, fichiers, etc. ...). En associant un objet de facturation à un projet, le système d'exploitation est à même de fournir des information de comptabilité analytique quant aux coûts de fonctionnement de chaque application.

Le catalogue permet également de réglementer les droits d'accès et de priorité à l'ensemble des ressources de l'ordinateur.

On peut concevoir des catalogues sur un seul niveau, contenant donc les noms de tous les fichiers gérés par le système, ou sur deux niveaux, c'est-à-dire un catalogue système contenant des pointeurs vers les catalogues utilisateurs.

Une structure mieux adaptée aux exigences actuelles est celle prévoyant plusieurs niveaux, permettant ainsi à chaque utilisateur d'organiser ses fichiers de façon hiérarchique.

Le système Unix permet une organisation arborescente des fichiers et des catalogues. Ces derniers sont considérés comme les autres fichiers. L'inconvénient d'un tel système est la longueur du chemin d'accès à un fichier particulier.

En général, le catalogue contient, pour chaque utilisateur, le nom de tous les fichiers qui lui appartiennent et pour chaque fichier les informations suivantes :

• son nom symbolique ;

• le type du fichier (caractère, binaire, exécutable, etc.) ;

• les bits de protection d'accès (lecture, écriture, exécution, etc.) ;

• la taille en blocs ;

• l'adresse du fichier sur disque: cette information dépend du système de stockage (adresse du premier bloc pour les listes, adresse de la table des pointeurs, etc.) ;

• la date de création et celle de la dernière manipulation.

Le catalogue est lui-même un fichier, stocké sur disque, accessible aux utilisateurs seulement en lecture, et mis à jour par le système.

Dans les systèmes arborescents, les catalogues peuvent être éclatés sur plusieurs niveaux, mais leur fonction et leurs restrictions d'accès ne changent pratiquement pas.

Page 25: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

� INTEGRITE ET SAUVEGARDE

Etant donné que l'utilisateur dépend du système de fichiers pour tout ce qui concerne son travail et ses données, il est essentiel que le système soit doté de mécanismes de sauvegarde, permettant l'éventuelle reconstitution des fichiers perdus lors d'un accident du matériel ou du logiciel.

Parmi les méthodes communément utilisées, nous citerons :

• la sauvegarde complète (backup), consistant à recopier sur bande magnétique (ou cartouche, cassette) les fichiers disque selon une fréquence déterminée. En cas d'accident, on peut reconstituer, par une opération inverse la restauration, les fichiers tels qu'ils étaient au moment du dernier backup ;

• la sauvegarde incrémentale, permettant de recopier seulement les informations modifiées après le dernier backup. Cette approche permet de réduire la fréquence des backups massifs (par exemple une fois par semaine ou par mois). En cas de besoin de reconstruction de fichiers, les procédures sont plus complexes ;

• le doublement systématique des fichiers sur disque, consistant à garder toujours deux copies de chaque fichier sur deux unités disques différentes. Cette méthode exige moins d'interventions de la part des opérateurs, mais implique que l'espace disque disponible soit doublé ;

• la technique de la "journalisation" utilisée surtout en matière de télétraitement dans laquelle tous les mouvements de mise à jour affectant un fichier sont sauvegardés. Dans le cas d'un incident disque, il est alors possible de reconstituer le fichier dans le dernier état où il se trouvait en appliquant l'ensemble des mouvements de mise à jour à la dernière sauvegarde effectuée ;

• les technologies "Raid".

Avec la croissance spectaculaire de la capacité disque, le problème de la sauvegarde des fichiers est devenu très important et très complexe. Les ordinateurs passent un temps considérable à faire des copies des informations qui leur sont confiées. Même si la fiabilité du matériel s'accroît continuellement et que les pannes se font de plus en plus rares, on n'est pas à l'abri d'une mauvaise surprise. Il arrive qu'une tête de lecture/écriture touche la surface du disque (head crash) et ne l'abîme irrémédiablement, ou qu'un "bug" dans le système provoque la destruction d'un catalogue.

Il devient impérieux de préserver des données irremplaçables afin d'éviter que des années de travail ne soient perdues.

Actuellement les serveurs de fichiers, les systèmes d'archivage sur cassettes magnétiques ou disques optiques, et le logiciels adaptés permettent de résoudre ce problème de façon plus simple, plus économique et plus automatique.

Page 26: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

� A QUOI SERVENT LES SAUVEGARDES ?

Un système d'information même fiable et récent n'est jamais à l'abri d'une défaillance matérielle ou logicielle, d'une erreur humaine, d'un acte de malveillance, d'une infection virale, d'une panne de courant, d'un vol, d'un sinistre (incendie, dégât des eaux, foudre, …), etc. Le destin du système est de tomber en panne. Ce n'est qu'une question de temps. Le problème de la restauration des données se pose toujours après réparation du système. Ceci montre l'importance qui doit être accordée à la sauvegarde des données. Afin de limiter les risques, tout doit être mis en œuvre pour éviter la perte des données et garantir leur disponibilité et leur intégrité, en établissant une procédure systématique de sauvegarde. Il est primordial de ne pas sous-estimer l'importance des données des utilisateurs et de garder à l'esprit les conséquences liées à leur disparition. Les règles élémentaires de sécurité informatique imposent l'élaboration d'une stratégie de sauvegarde. Celle-ci nécessite une planification allant de la sélection du matériel de sauvegarde à la détermination du schéma de sauvegarde. La sauvegarde consiste à enregistrer les données vitales sur un support généralement autre que le(s) disque(s) se trouvant à l'intérieur de l'ordinateur. Elle se fait principalement sur des unités amovibles.

� LES DIFFERENTS SUPPORTS DE SAUVEGARDE

De la simple disquette au disque optique ou aux bibliothèques de sauvegarde, le choix ne manque pas. On s'y perd allègrement d'autant que les technologies évoluent sans cesse... Tout dépendra une fois encore du budget que vous comptez accorder à votre système de sauvegarde… Malgré tout, la fiabilité et la capacité des supports restent un choix des plus objectifs. Voici un tableau non exhaustif qui vous présente les types de supports les plus connus ainsi que leurs caractéristiques principales : Nom Capacité Débit Technologie Fiabilité

Disquette de 1,44Mo à 2,88Mo jusqu'à 0,5Mo/s Magnétique La plus faible

ZIP 2 formats disponibles : 100Mo ou 250 Mo

de 0,6Mo/s (port parallèle) à 2,4 Mo/s (en ATAPI interne pour le modèle 250)

Magnétique Peu fiable

JAZZ 2 formats disponibles : 1Go ou 2Go de 5,5Mo/s à 8Mo/s Magnétique Peu fiable

Disque Dur Plusieurs Go selon interface (IDE ou SCSI et technologie associée)

Magnétique Assez fiable

QIC : Quarter Inch Cartridge

de 250Mo à 8Go (compressé) jusquà 0,8Mo/s Magnétique Assez Fiable

DAT : Digital Audio Tape de 2 à 24 Go (selon lecteur) 1,5Mo/s

taux de compression de 2 pour 1. Magnétique

Assez bonne fiabilité usure assez rapide : 2000h pour les têtes et 20000 passages pour les bandes

DDS : Digital Data Storage (évolution du DAT)

jusqu'à 40 Go jusqu'à 4,7Mo/s Magnétique Bonne fiabilité (bandes garantie sans erreur au contraire du DAT)

DLT : Data Linear Tape 10 Go en natif 3Mo/s taux de compression de 2 pour 1 Magnétique Bonne fiabilité

usure moins rapide :

Page 27: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

10000h pour les têtes et 500000 passages pour les bandes

SDLT : Super Data Linear Tape nouvelle technologie

de 110Go à 1,2To (non compressés) de 11Mo/s à plus de 100 Mo/s

Magnéto-optique (guidage des têtes)

Bonne fiabilité

CD-ROM

de 600 à 700Mo nb: une nouvelle technologie permettrait de plus grandes capacités)

multiple de 153,6Ko/s (1x). Optique Très bonne fiabilité

Disque Magnéto-Optiques de 128Mo à 1,3Go jusqu'à 5,9Mo/s Optique Excellente fiabilité

DVD : Digital Versatile Disk à partir de 3,2 Go Multiple de

1,35Mo/s (1x) Optique Excellente Fiabilité

Ce tableau ne mentionne pas les bibliothèques de sauvegarde pouvant contenir plusieurs centaines de bandes et pilotées par le logiciel de sauvegarde.

� CHOIX DU LOGICIEL

Pour réaliser les sauvegardes il est conseillé d'utiliser des programmes conçus pour faciliter cette opération. Ces programmes permettent de gérer : la fréquence de sauvegarde, l'heure d'exécution, les données à sauvegarder, etc. On trouve de nombreux logiciels plus ou moins conçus pour réaliser ces tâches. Les plus connus sont :

• Backup Exec de Veritas, • ARC ServeIT de Computer Associates.

� STRATEGIE DE SAUVEGARDE

L'intervalle maximal qui s'écoule entre deux sauvegardes successives dépend de plusieurs facteurs:

• la vitesse d'évolution du travail, • la quantité d'information que l'on accepte de perdre entre deux copies

Selon le service, ça peut être le mois, la semaine ou la journée. Dans le cas de données sensibles, les sauvegardes peuvent être planifiées de la manière suivante :

• une sauvegarde totale par jour (du lundi au jeudi), conservée 1 semaine, • une sauvegarde totale le vendredi, conservée 2 semaines, • une sauvegarde totale à la fin du mois, conservée 1 an, • une sauvegarde totale annuelle à mettre à l'abri pour archivage.

Les bandes journalières sont réutilisées la semaine suivante et celle du vendredi est réutilisée deux semaines après. Les bandes mensuelles sont réutilisées d'année en année.

Les sauvegardes doivent être réalisées régulièrement en fonction de règles pré-établies : • s'assurer de la validité des procédures de sauvegarde ;

Page 28: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

• vérifier que les procédures de restauration ont été testées ; • contrôler périodiquement la validité des opérations par des restitutions de fichiers en

"vraie grandeur" ; • ne jamais stocker dans la même pièce les serveurs et les copies de sauvegardes ; • les copies de sauvegarde doivent être rangées dans un coffre, sinon loin de tout objet de

convoitise et nécessairement dans un lieu loin de la pièce où se trouvent les serveurs ; • disposer au moins des deux dernières sauvegardes ; • étiqueter soigneusement les médias avant de les introduire dans le lecteur enregistreur,

puis glisser la languette de protection contre l'écriture immédiatement à la sortie du média ;

• préférer les sauvegardes automatiques à date fixe aux opérations manuelles.

� CONCLUSION

Les sauvegardes font partie de manière plus globale de la politique de sécurité des données. Que ce soit suite à un crash système, un crash matériel ou une infiltration malveillante (hack), une sauvegarde peut vous faire économiser parfois tout un mois de travail. Il ne faut pas ignorer cet aspect de la sécurité...

Page 29: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

� EXEMPLES DE SYSTEME D'EXPLOITATION

� DOS

("disk operating system", "système d'exploitation de disque").

C'est un ensemble de fonctions qui se charge dans la mémoire de l'ordinateur et permet d'échanger des données cohérentes entre le processeur, la mémoire, le disque dur, les disquettes et plus généralement avec tous les périphériques. Un des premiers DOS a été CP/M. Le plus célèbre est le PC DOS des premiers IBM-PC qui est devenu par la suite MS DOS (MS pour Microsoft, son créateur).

Windows 95 intègre la version 8 du DOS. Microsoft a précisé que DOS était destiné à disparaître définitivement dans les prochaines versions de son environnement graphique.

� LES SYSTEMES D’EXPLOITATION WINDOWS

� DOS/WINDOWS 3.1X.

"DOS" est un système d'exploitation mis au point par la société Microsoft pour les ordinateurs autonomes ("stand alone" en anglais). La dernière version en 1996 porte le numéro de version 6.22.

Windows 3.x est une interface graphique que l'on peut également utiliser en réseau (Windows for Workgroups ou Windows 3.11). Les programmes qui ont été écrits pour DOS et pour Windows peuvent être généralement exécutés sous Windows 95 , OS/2 et Windows NT.

L'ensemble Dos/Windows 3.1x est en voie de disparition au profit de Windows 98.

� WINDOWS 95/98.

Système d'exploitation 32 bits de la société Microsoft lancé en août 1995 après moult péripéties et retards. L'équipe de développement est dirigée par Brad Silverberg, transfuge de chez Borland. C'est un descendant du tandem DOS/Windows 3.11.

Il supporte, entre autres, le mode multitâches et des noms d'une longueur maximum de 255 caractères. Parce qu'il est capable de fonctionner en mode 16 bits, il permet toujours d'utiliser DOS. Cependant, de nombreux éditeurs proposent leurs nouveaux logiciels ou leurs nouvelles versions, en mode 32 bits afin de profiter pleinement des capacités de ce système d'exploitation.

� MULTI-TACHES.

Le mode multi-tâches augmente la rapidité d'un ordinateur, car il permet d'exécuter simultanément les tâches ("tasks" en anglais) d'un ou de plusieurs programmes. Comme le CPU perd beaucoup de temps à attendre (les instructions de l'utilisateur et le fonctionnement des périphériques sont lents), on a pensé qu'il pourrait l'utiliser pour effectuer d'autres tâches. En fait, le multitâches n'est pas véritablement simultané, car le processeur ne peut traiter qu'une opération

Page 30: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

à la fois. Mais les tâches qui attendent sont divisées en petites "tranches de temps" et le "programmateur" du système d'exploitation décide quelles sont les tranches prioritaires et les fait exécuter tour à tour quand il y a du temps disponible. Autrefois, les systèmes multitâches ne se trouvaient que dans les ordinateurs centraux ou en mini-informatique. Mais avec UNIX, OS/2, Windows NT, Windows 95/98, ils sont de plus en plus souvent utilisés par les PC. D'autre part, il faut absolument qu'un ordinateur supporte le mode multitâches si l'on veut que plusieurs utilisateurs puissent s'en servir en même temps (des anciens systèmes d'exploitation comme Concurrent DOS permettaient le multi-user sans être véritablement multitâches).

� WINDOWS NT.

Système d'exploitation 32 bits de la société Microsoft lancé en 1994.

Deux versions sont proposées :

♦ Windows NT WorkStation est exploité sur des machines individuelles ayant besoin d'un système d'exploitation évolué ou sur des machines interconnectées selon une configuration poste à poste ;

♦ Windows NT Server est un système d'exploitation réseau.

Contrairement à toutes les versions de Windows jusqu'à la version 3.11, Windows NT est un système indépendant. Il intègre le mode multitâches préemptif, des noms de fichiers d'une longueur maximum de 255 caractères, et l'utilisation simultanée de plusieurs processeurs. Enfin, il est multi-plateformes.

En créant Windows 95, la volonté de Microsoft fut d'orienter les utilisateurs, recherchant une fiabilité maximale, vers Windows NT. D'ailleurs, la nouvelle interface de ce système (version 4.0) est identique à celle de Windows 95. De plus, la plupart des logiciels qui sortent à l'heure actuelle sont en 32 bits, ce qui implique qu'ils tournent aussi bien sous Windows 95/98 que sous Windows NT.

Des offres complémentaires, regroupées sous le nom de BackOffice, sont également proposées pour ce système d'exploitation.

Enfin, avec la montée en puissance d'Internet, la nouvelle mouture de Windows NT intègre le logiciel serveur Internet Information Server ainsi que de nombreux outils de communication.

Cette version va progressivement disparaître au profit de la gamme 2000.

� WINDOWS 2000

Rebaptisé Windows 2000 (NT 5.0) la nouvelle gamme de Microsoft a été commercialisé le 17 février 2000. Quatre versions sont proposées :

♦ Windows 2000 Professional; ♦ Windows 2000 Server ; ♦ Windows 2000 Advenced Server ; ♦ Windows 2000 Datacenter Server.

Page 31: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

Cette nouvelle version se veut résolument universelle et évolutive afin de résister à Unix et à ses multiples potentialités.

� TALON D'ACHILLE DE NT 4.0, LES OPTIONS DE SECURITE ONT ETE RENFORCEES

Ainsi, Windows 2000 Professionnel a pour cœur de cible les stations bureautiques et les ordinateurs portables de celles ci. Cette version remplace Windows NT 4.0 Workstation et facilite le travail des responsables de parcs informatiques. En effet, Windows 2000 prend désormais en charge le Plug and Play, ainsi que la gestion de l'énergie, des ports USB (Universal serial bus, bus série universel) et AGP (Accelerated graphics port). Outre le service d'annuaires, Active Directory, compatible avec LDAP (Lightweight directory access protocol) et les NetWare Directory Services (NDS) de Novell, Windows 2000 Server bénéficie d'outils d'administration nouveaux et de fonctions de sécurité supplémentaires telles que Kerberos et PKI (Public key infrastructure). Il prend également en compte la gestion des terminaux légers, héritée de Windows Terminal Server.

Conçu pour s'adapter aux plates-formes serveurs d'applications et de bases de données, Windows 2000 Advanced Server constitue l'héritier de Windows NT 4 Enterprise Server. Il peut gérer jusqu'à 64 Go de mémoire et quatre processeurs mais aussi disposer du Load Balancing(1) et du groupage. Cette nouvelle version peut donc sérieusement concurrencer les systèmes Unix. Enfin, axé sur le datawarehouse et le workflow, Windows 2000 Datacenter Server constitue un serveur à haute disponibilité optimisé pour l'OLPT (On line processing transaction).

� L'UTILISATEUR, SOULAGE DES TACHES FASTIDIEUSES

L'utilisateur trouvera, dans ce dernier-né NT, des améliorations notables. Son interface, tout comme celle d'Office 2000, s'appuie sur Internet Explorer 5.0. Par ailleurs, les fonctions de recherche ont été étendues aux services d'annuaires. De même, des fonctions de synchronisation des fichiers sont proposées. Il est inutile de se soucier d'effectuer manuellement, ou de programmer, la copie des documents stockés sur le disque dur de son poste vers un des répertoires d'une unité réseau. Grâce à Active Directory, l'accès aux ressources de l'entreprise est simplifié. En effet, la centralisation des informations autorise l'adoption d'une convention de nommage identique pour tous les éléments partagés du réseau local, qu'ils soient hébergés par un seul serveur ou sur des machines distinctes. Le mode multi-utilisateur exploite une nouvelle technologie, baptisée IntelliMirror. Couplé à Active Directory et aux stratégies systèmes (system policies), IntelliMirror récupère l'environnement de travail d'un utilisateur, y compris les documents, lorsque ce dernier se connecte à partir de n'importe quelle station Windows 2000 du réseau. Il est même possible de déclencher l'installation en ligne d'une version personnalisée de Windows 2000 sur un PC distant. Enfin, de nombreux assistants prennent l'utilisateur par la main, afin qu'il exécute des opérations réputées complexes, comme la création d'un accès réseau à distance pour se connecter à Internet ou au réseau de l'entreprise.

1 Load Balancing (répartition de charges): technologie qui gère les ressources d'une machine (système d'exploitation, réseau ou capacité disque) de manière à redistribuer les

données et/ou les processus parmi les ressources des autres éléments du réseau.

Page 32: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

� UNE ADMINISTRATION SIMPLIFIEE ET PLUS LARGE.

Pour faciliter les tâches d'administration, de surveillance et de gestion du matériel et du réseau, Windows 2000 propose les modules MMC (Microsoft management console) accessibles à partir d'une interface commune. Les MMC peuvent même être personnalisés avec des snap-in, de manière à concevoir des tableaux de bord mieux adaptés aux besoins réels de l'entreprise. Par exemple, l'administrateur peut construire une première console comprenant tous les outils nécessaires au fonctionnement des unités disques de son PC, et un second tableau de bord pour la surveillance des unités du serveur. Cette centralisation des informations en provenance du matériel et du réseau local n'est possible qu'avec Active Directory. Cet annuaire apporte une plus grande souplesse dans l'administration des réseaux étendus homogènes, constitués de serveurs sous NetWare (NDS) ou sous Unix (LDAP). Pour limiter l'engorgement des disques réseaux, les administrateurs ont désormais la possibilité de définir des quotas (pourcentages d'espace disques réservés) pour chaque utilisateur en fonction de ses besoins, tel que cela se fait sur les systèmes Unix. Ce qui évite des opérations de maintenance coûteuses, comme le remplacement des disques durs. La sécurité, talon d'Achille de NT sous Windows NT 4.0, a aussi été renforcée sous Windows 2000. Le nouveau système de fichiers, NTFS 5, inclut ainsi des fonctions de cryptage fondées sur la norme DES (Data encryption standard) et recourant à une clé aléatoire. Seuls le propriétaire des fichiers (grâce à sa clé) et l'administrateur réseau (à l'aide d'une clé de sauvegarde) peuvent les décrypter. De même, l'affectation des permissions sur les fichiers et les dossiers bénéficie d'une interface plus claire et plus élaborée.

� LA DISPONIBILITE DES SERVEURS, ACCRUE.

En outre, avec SmartCard for Windows, l'utilisateur dispose d'un moyen d'identification par carte à puce pour accéder à ses données. La prise en charge de VPN (Virtualprivate network, réseau virtuel privé), d'IPsec et des standards PKI et Kerberos assure à l'administrateur une sécurité accrue lors de transactions en mode client-serveur et d'échanges de données sur Internet. Ces technologies, héritées du monde Unix pour la plupart, doivent améliorer la mise en oeuvre de machines Windows 2000 à des environnements hétérogènes. Les défauts de NT par rapport au matériel ont également été gommés. Il est désormais inutile de redémarrer le serveur après avoir modifié la configuration d'un périphérique. Les temps d'arrêt de celui-ci sont ainsi réduits et sa disponibilité est donc plus grande. Autre progrès matériel, la norme 120 (Intelligent input/output) - qui permet de désengorger le processeur du serveur - est totalement prise en compte par le système. Microsoft a développé un plus grand nombre de gestionnaires de périphériques répondant à la norme WDM (Windows driver model), dont profite déjà Windows 98. Les ingénieurs se sont aussi souciés de l'interopérabilité du système. Ainsi, des outils de migration de NetWare vers Windows 2000 sont proposés. Il est donc permis de récupérer les annuaires des NDS et les données de la Bindery. Pour Unix, des outils de connexion (TeInet et NFS) sont également disponibles.

� LA CONCURRENCE AVEC UNIX DEVIENT REELLE.

Bien qu'il ne soit plus possible d'exécuter des programmes Windows 16 bits sous Windows 2000, la majorité des applications écrites pour NT 4.0 fonctionnent. Cependant, il faut attendre des versions spécifiques au nouveau système d'exploitation pour les utilitaires systèmes. En théorie, les solutions développées en interne telles que les frontaux de bases de données reposant sur des technologies Microsoft ne seront pas remaniées.

Page 33: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

� ACTIVE DIRECTORY, LA CLE DE VOUTE DE WINDOWS 2000.

Le service d'annuaires Active Directory est l'élément le plus important de la nouvelle mouture du système d'exploitation de Microsoft. Compatible avec LDAP, présent sur de nombreuses machines Unix, il permet, à l'instar des NDS de Novell, de retrouver des ressources partagées situées sur tous les PC du réseau local. Si l'on étend ou modifie la structure du réseau (par un ajout de postes de travail, par exemple), les changements sont rapidement pris en compte et ne nécessitent aucune intervention de l'administrateur pour les rendre visibles par tous les utilisateurs. En effet, les éléments du réseau sont considérés comme des objets de l'annuaire, et des informations, comme l'état de l'impression sur une imprimante partagée peuvent être obtenues dynamiquement.

� UNIX

Le système d'exploitation UNIX est devenu un standard de l'informatique. Il se trouve au carrefour de l'informatique et des télécommunications. En effet, une de ses originalités est d'avoir su prendre en compte très tôt le phénomène des télécommunications (au travers du protocole TCP/IP).

C'est en 1969 que débute l'histoire d'Unix, après l'échec d'un autre système "multics" qui avait été élaboré par les Bell Laboratories, la General Electric et le très célèbre Massachusetts Institute of Technology.

Le système "multics", multi-utilisateurs, devait permettre un partage convivial des données et d'autres ressources systèmes avec des temps de réponse convenables. Malheureusement la puissance de traitement de ce système fut insuffisante et le projet abandonné.

Les objectifs du système "multics" n'ayant pas été atteints, d'éminents chercheurs dont, Brian Kernighan mirent au point un nouvel environnement de travail plus simple et plus convivial, baptisé UNIX par Brian Kernighan.

Les premières versions d'Unix écrites en langage B ne donnèrent pas une entière satisfaction, d'où la réécriture du système UNIX en 1973 par Ken Thompson et Dennis Ritchie en langage C.

En 1979 on trouve deux filiations du système Unix :

• la lignée des Bells Laboratories (ATT),

• celle de l'université de Berkeley.

Ces deux filières restant incompatibles, les utilisateurs ont dû s'organiser dans un groupement "/USR/GROUP" (aujourd'hui "UNIFORUM") afin d'essayer d'imposer une norme internationale qui permettrait aux utilisateurs de s'affranchir des constructeurs.

� LA NORMALISATION DES SYSTEMES

Le besoin de normalisation est nécessaire pour favoriser les échanges internationaux en général, et le développement de l'économie en particulier.

Les enjeux de la normalisation sont considérables et plus particulièrement sur les plans :

Page 34: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

• techniques : amélioration régulière des fonctionnalités, phase de recherche et de développement facilitée ;

• économiques : production de masse et pérennité des produits, formation plus aisée et plus durable ;

• géopolitiques : diffusion planétaire des idées et des technologies, accès pour tous à l'information, meilleurs échanges.

Il ne faut pas confondre une norme et un standard. Par exemple, "POSIX" (Portable Operating System Interface) est une norme qui décrit l'interface de programmation entre les applications et le système d'exploitation. Par contre, le langage Postscript est devenu un standard car il n'y a pas de document qui décrit la norme Postscript.

La norme POSIX fut élaborée en 1988 sur la base des travaux du "/usr/group". L'organisme chargé de développer le document est l'IEEE (Institute of Electrical and Electronics Engineers). Le groupe international de normalisation sert à faire remonter les commentaires des différents pays et à assurer le consensus sur la norme au travers d'un mécanisme de votes nationaux.

Plus généralement, l'idée de compatibilité par les interfaces, qui définissent une même syntaxe et sémantique pour les appels systèmes sur toutes les plates-formes, débouche sur le concept même de "systèmes ouverts".

Un système dit "ouvert" doit posséder des propriétés telles que :

• la compatibilité (fonctionnement dans différents environnements) ;

• la portabilité (fonctionnalités identiques sur différentes architectures) ;

• la graduabilité (faculté d'évolution avec la taille des systèmes) ;

• l'interopérabilité (fonctionnement coopératif entre environnements hétérogènes).

Un système ne peut se prétendre ouvert sans engagement de l'éditeur ou du constructeur à :

• partager les spécifications (accès public) ;

• permettre d'autres implémentations ;

• rendre transparent les procédés d'évolution.

Par exemple Windows NT n'est pas un système ouvert, ne serait ce que parce que ses spécifications ne sont pas publiques. L'interface "win32" reste la propriété de Microsoft.

� MULTITACHES -MULTI-UTILISATEURS

Unix est un système multitâche et multi-utilisateur. Il accepte de gérer simultanément plusieurs utilisateurs (multi-utilisateurs).

Il permet également d'exécuter plusieurs programmes au même moment (multitâches).

Pour définir un processus, on peut dire que lorsqu'un utilisateur exécute un programme sous Unix celui-ci est un processus. Bien entendu, la plupart des systèmes Unix ne disposent que d'un

Page 35: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

processeur central et ne peuvent en fait traiter qu'un seul processus à la fois. Le système crée l'illusion de travailler simultanément pour plusieurs utilisateurs en même temps en passant rapidement d'un processus à l'autre.

Unix possède un langage de commande (SHELL). Il permet par l'intermédiaire du clavier et de l'écran de gérer le dialogue entre l'utilisateur et le système. Par exemple, sur un micro-ordinateur qui fonctionne sous MS-DOS, l'utilisateur tapera la commande "DIR" pour obtenir la liste des fichiers, la commande shell Unix correspondante est "Is" .

Le plus souvent les utilisateurs d'applications Unix n'auront pas d'accès au shell, lors de la connexion au serveur, leur applicatif sera lancé automatiquement. Lorsqu'ils quitteront leur application la déconnexion sera également automatique. Ce mécanisme se comprend pour des raisons de sécurité.

Il n'est pas souhaitable que des utilisateurs plus ou moins avertis manipulent directement des commandes systèmes qui peuvent être préjudiciables à l'ensemble des utilisateurs connectés (perte de documents ...).

� LES METHODES DE COMMUNICATION

Pour avoir accès au serveur Unix, il existe plusieurs méthodes :

• soit le terminal est relié directement au serveur par un câble : c'est une liaison point à point. Dans ce cas, l'utilisateur ne peut atteindre que ce serveur ;

• soit le terminal utilise le réseau général où sont connectés tous les serveurs et dans ce cas, l'utilisateur devra indiquer son serveur de connexion à l'aide d'une adresse appelée adresse IP et qui est unique sur le réseau.

Selon le mode de connexion utilisé, l'architecture matérielle et logicielle ne sera pas la même. Par contre dans tous les cas lors de la connexion, il existera une procédure d'accès au serveur (login). Cette procédure n'est pas compliquée mais nécessite un minimum de connaissances.

Avant d'autoriser l'accès au système, Unix demande un nom d'utilisateur et compare ensuite la réponse de l'utilisateur à une liste de noms d'utilisateurs autorisés. Cette liste est stockée dans un fichier appelé "passwd".

La première démarche qu'effectue le système d'exploitation est de vérifier que le nom d'utilisateur est valide et respecte la saisie majuscule et/ou minuscule. En règle générale, ce nom de "login" n'a pas d'accentué et sa longueur est de huit caractères maximum.

Lorsque le nom de login a été saisi, le système demande un mot de passe qui lui aussi doit respecter la saisie minuscule/majuscule. Après plusieurs tentatives, il faut réitérer la connexion voire appeler l'administrateur système pour recréer le login qui aura été inhibé par le système si celui-ci est en mode sécurisé. Le système peut également demander de saisir un nouveau mot de passe, dans ce cas il y aura une double saisie pour plus de sécurité.

Page 36: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

Lorsque la connexion sera établie, l'utilisateur sera directement relié à son application, sans qu'il ait à lancer manuellement son programme ; ceci étant effectué dans un fichier appelé ".profile" (sorte de fichier "autoexec.bat").

L'ensemble des actions login, travail, sortie, est appelé "session". Une sortie de session doit s'effectuer proprement, il ne faut jamais éteindre son terminal sans être complètement sorti de son application afin d'éviter tout risque de laisser un processus chargé en mémoire, ce qui encombre le serveur.

De plus l'administrateur système a la possibilité de limiter le nombre de processus attribués à un utilisateur et dans ce cas il ne pourra plus se connecter. Le risque de non-déconnexion est souvent lié à l'utilisation de PC sous Windows qui permet d'ouvrir plusieurs fenêtres (Word, Excel, ...) et souvent l'utilisateur quitte Windows sans s'assurer qu'il n'a plus de session active avec le serveur Unix.

L'accès au serveur ne suffit pas pour travailler sous Unix, les fichiers utilisés sont soumis à des droits d'accès. Ces droits permettent les actions suivantes :

• lecture, qui permettra la simple consultation ;

• écriture, qui autorisera la création et modification des fichiers ;

• exécution, pour pouvoir exécuter un programme en mémoire. Par exemple lorsque l'on tape la commande "win" sur un micro-ordinateur afin d'exécuter le système d'exploitation Windows.

Un fichier exécutable s'appelle un programme. Il existe sous Unix plusieurs langages de programmation dont les plus connus sont les langages C, C++, SQL, FORTRAN, COBOL.

� LINUX

Grâce au soutien sans faille des principaux rivaux de la société Microsoft, le logiciel libre Linux connaît un succès sans précédent. Il pourrait, un jour, s'imposer comme une alternative aux systèmes "Windows", au moins en tant que système d'exploitation pour serveurs Internet.

� HISTORIQUE

Lancé de façon confidentielle en 1991 par un jeune étudiant finlandais Linus Torvalds.

Il décide très tôt de partager son savoir-faire en choisissant de diffuser le code source de son programme Linux sur Internet et de le rendre "libre", ouvert et gratuit.

De ce fait, des centaines de programmeurs ont pu l'utiliser, le dupliquer, l'analyser dans ses moindres détails, le corriger ou l'améliorer et contribuer à l'enrichir mais aussi à créer des programmes de toutes sortes diffusés selon les mêmes règles : "les logiciels libres".

Linux compte entre sept et dix millions d'adeptes, un nombre qui croît de plus de 80% par an, sans marketing ni publicité, tandis que plus de 10.000 programmeurs travaillent quotidiennement à son amélioration, transmise immédiatement et gratuitement via le Web à tous les intéressés.

Page 37: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

Du coup, on ne compte plus les associations, les groupes de pressions et même les entreprises concurrentes de Microsoft qui clament aux Etats-Unis que Linux pourrait bientôt devenir une alternative crédible à l'hégémonie du numéro un mondial du logiciel.

L'idée de départ de Linux a consisté à imaginer un nouveau système d'exploitation basé sur la puissance du système Unix, mais adapté au micro-ordinateur (alors qu'Unix est habituellement pleinement efficace sur des mini-ordinateurs), et de le rendre gratuit, chacun pouvant librement accéder aux lignes du programme informatique qu'il a conçu.

Linux fonctionne aujourd'hui sur de nombreux types de machines : PC. Macintosh, stations de travail ... Peu gourmand en puissance, il fonctionne sur de vieux PC dotés d'une puce 486 et même 386. Les utilisateurs peuvent en cumuler les avantages avec ceux des autres systèmes en les installant côte à côte, le choix se faisant au démarrage de l'ordinateur.

� POURQUOI CET ENGOUEMENT ?

Suscitant d'abord l'intérêt du milieu universitaire (les étudiants y voyaient un moyen d'accéder à peu de frais à un système par ailleurs très efficace pour leurs besoins), Linux est resté confidentiel jusqu'à l'explosion du Web. Linux a été conçu par Internet et pour Internet, et le Réseau le lui rend bien : le quart des sites de la planète l'utilisent pour fonctionner. Cet environnement correspond parfaitement aux besoins d'exploitation d'un serveur Internet de taille moyenne, surtout pour les sites aux moyens financiers limités.

� UNE CREDIBILITE CROISSANTE

Linux est très intéressant parce qu'il est gratuit. En fait, ce sont surtout ses qualités techniques et la libre diffusion de son code source qui plaident en sa faveur. Linux n'a que quelques années et il est déjà très complet : 64 bits, multiprocesseur, Java, clusters, etc. Il peut même se targuer d'être aujourd'hui l'un des rares Unix multi-plateformes fonctionnant sur Alpha, x86, Mips, Power PC et Sparc. Linux apparaît désormais en quatrième position des Unix les plus cités.

La gratuité ne nuit pas à la qualité, au contraire. Bien souvent, les logiciels commerciaux sont revus par des personnes très proches des auteurs, et qui commettent les mêmes erreurs. A l'inverse, un programme libre est analysé dans ses moindres détails par une armée de passionnés, sans aucun lien avec les créateurs: les logiciels libres sont faits par des artisans amoureux de leur art. Ce ne sont pas des produits fabriqués en grande série qui doivent respecter un calendrier, quitte à comporter des défauts.

Au fil des années, Linux s'est taillé une réputation de fiabilité, de stabilité et de rapidité bien supérieure à Windows NT. Il a démontré ses aptitudes à faire fonctionner des ordinateurs en réseaux.

A la différence de Windows, il est totalement insensible aux blocages intempestifs dus aux dysfonctionnements de certains logiciels, si bien que la NASA l'utilise pour conduire des expériences dans les navettes spatiales.

Dès lors de nombreuses entreprises ont commencé à adopter Linux. Le récent investissement des sociétés Intel et Netscape dans la petite société Red Hat Software a immédiatement apporté une

Page 38: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

nouvelle légitimité à cet environnement. Cette société commercialise en effet des produits et des services destinés à aider les entreprises à installer Linux pour leur applications professionnelles.

Cette décision d'Intel s'ajoute aux annonces de l'été 1998, où les principaux acteurs du marché des bases de données pour entreprise (Oracle, Informix, Computer Associates et Sybase) ont tous annoncé qu'ils allaient proposer des versions de leurs application pour Linux.

En matière de logiciels d'application, l'utilisateur a l'embarras du choix. Et si les outils de bureautique sont encore rares, les éditeurs commencent à diffuser des suites bureautiques (traitement de texte, tableurs et une base de données) comme Star Office et Applixware. La société Netscape propose depuis longtemps des outils de communication (messagerie, programme de navigation Netscape sur le Web). L'éditeur Corel a annoncé une version de son traitement de texte Word Perfect gratuite pour les particuliers. Seule manque encore la reconnaissance des éditeurs de CD-ROM multimédias, qu'il s'agisse de jeux, de titres éducatifs ou culturels.

Linux peut être récupéré soit gratuitement sur Internet soit par acquisition commerciale auprès d'éditeurs.

Les distributions commerciales de Linux, plus onéreuses, offrent une assistance technique par courrier électronique. Mais la plupart des utilisateurs préfèrent s'en remettre aux forums de discussion d'Internet pour trouver réponse à leurs questions.

La communauté Linux s'est vu attribuer en 1997 le titre de meilleure assistance technique par le magazine américain Infoworld, devant des services spécialisés des géants du logiciel payant.

Page 39: CAHIER 06 Le Système d'exploitation · Le système d'exploitation est l'ensemble des programmes qui se chargent de tous les problèmes relatifs à l'exploitation de l'ordinateur

� DES FREINS A LA GENERALISATION DE LINUX

Linux, emblème du logiciel libre, devient une réalité d'entreprise. Pour autant et même si de grandes entreprises américaines se sont ralliées à Linux, celui-ci est loin d'être déjà un concurrent sérieux pour Windows. Selon la société Dataquest, en 1998 seul 1% des PC ayant une fonction serveur étaient dotés de ce système, contre plus de 60% équipés de Windows NT. Selon la société Microsoft, il existe plus de 100.000 applications professionnelles pour son système d'exploitation, alors que celles disponibles pour Linux sous forme de progiciel se comptent encore en dizaine.

Aujourd'hui, les distributeurs proposent des versions différentes bien que compatibles de Linux. Mais une prolifération de versions éphémères pourrait dissuader les éditeurs, limiter les applications disponibles et donc freiner l'ascension de Linux en entreprise. En effet, les éditeurs souhaiteraient voir émerger un standard avec une garantie de compatibilité des versions successives. Une normalisation qui demande un effort financier difficile à imputer à quelqu'un.

Cependant, un projet baptisé LSB, soutenu par les éditeurs et l'association "Linux International", vise à standardiser Linux pour que tout logiciel puisse s'exécuter indifféremment sur n'importe quelle distribution du système. Le projet vise en particulier à vérifier que Linux passe un certain nombre de certifications, comme Unix 98, Posix, etc ...

Le principal frein au développement des logiciels libres en entreprise reste le manque de support technique. L'assistance communautaire par les forums d'Internet n'est pas encore entrée dans les mœurs des responsables informatiques. Linux souffre d'un manque de confiance du secteur commercial et pâtit de l'image d'un système d'exploitation sans assistance. Beaucoup d'entreprises préfèrent encore la "hot-line" des éditeurs traditionnels pour assurer la maintenance et l'évolution de leur système, et les sociétés comme RedHat Software ne sont pas encore très nombreuses. Il est donc toujours dépourvu d'un catalogue d'applications et de pilotes de périphériques à la hauteur de ces ambitions.

Autre inconvénient à la généralisation de Linux, l'installation reste le gros point noir. Il reste à améliorer les interfaces graphiques de façon drastique et à simplifier encore la procédure d'installation. Il est vrai qu'il est plus délicat à configurer que ses concurrents. Fort heureusement, plusieurs sociétés ont travaillé à simplifier ce qui était un casse-tête. Caldera, RedHat et SuSE proposent des solutions pour installer Linux et une panoplie complète de logiciels.

Les programmeurs devront également améliorer la compatibilité entre les nombreuses distributions (kits d'installation) de Linux et élargir la gamme de périphériques reconnus. Ces deux freins sont sur le point d'être levés. La société Intel a demandé aux créateurs de Linux de participer à la mise au point d'UDI, une norme visant à unifier la gestion des périphériques dans les systèmes de type Unix du marché. Aux Etats-Unis ou en Allemagne, de petits constructeurs proposent déjà des machines Linux prêtes à l'emploi.

En France, la majorité des 50.000 à 100.000 adeptes de Linux sont, comme ailleurs, des universitaires, des étudiants et des passionnés d'informatique. Mais, là aussi, le logiciel gagne du terrain dans les entreprises. La technique du code source ouvert va changer en profondeur l'industrie de l'édition du logiciel.