Cours de Systeme Exploitation
Cours de Systeme Exploitation
Avertissements
Ce support de cours est soumis aux droits d’auteur et n’est donc pas dans le domaine public. Sa reproduction
est cependant autorisée à condition de respecter les conditions suivantes :
Si ce document est reproduit pour les besoins personnels du reproducteur, toute forme de reproduction
(totale ou partielle) est autorisée à la condition de citer l’auteur.
Si ce document est reproduit dans le but d’être distribué à des tierces personnes, il devra être reproduit
dans son intégralité sans aucune modification. Cette notice de copyright devra donc être présente. Qui
plus est, il ne devra pas être vendu.
Nonobstant, dans le seul cas d’un enseignement gratuit, une participation aux frais de reproduction
pourra être demandée, mais elle ne pourra être supérieure au prix du papier et de l’encre composant le
document. ! Toute reproduction sortant du cadre précisé ci-dessus est interdite sans accord préalable
écrit de l’auteur.
Toute reproduction sortant du cadre précisé ci-dessus est proscrite sans accord préalable écrit de l’auteur.
Copyright © 2024 Doctorant. Msc. Ir. Charles MAPETO MATHUNDA; all rights reserved.
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Au tout début de l'informatique, les premiers ordinateurs sont apparus dans les années 40 et avaient des
fonctionnalités très limités, dépendantes de l’homme, et à des vitesses très lentes. le logiciel assurait luimême
la gestion du matériel. Certes, chaque application gérait elle-même la mémoire, la communication avec les
périphériques et bien d'autres choses. Le logiciel pouvait être démarré directement à l'allumage de l'ordinateur,
sans charger de système d'exploitation. En conséquence, les logiciels n'étaient pas compatibles sur une large
gamme de matériel et supportaient assez mal un changement de configuration. Mais avec le temps, les
informaticiens ont inventé des techniques d'abstraction matérielle qui permettent à un programme de s'exécuter
sur des ordinateurs avec des matériels très différents. Rendre les programmes indépendants du matériel a
demandé de revoir l'organisation des logiciels, qui ont dû être découpés en plusieurs programmes séparés (les
programmes systèmes gèrent la mémoire et les périphériques, les programmes applicatifs ou applications
délèguent la gestion de la mémoire et des périphériques aux programmes systèmes.
Au demeurant, l'ensemble des programmes système porte le nom de système d'exploitation abrégé SE ou OS).
Le rôle du système d'exploitation est d'être un intermédiaire entre les logiciels et le matériel. A vrai dire, pour
qu'un ordinateur soit capable de faire fonctionner un programme informatique, la machine doit être en mesure
d'effectuer un certain nombre d'opérations préparatoires afin d'assurer les échanges entre le processeur, la
mémoire, et les ressources physiques (périphériques). De surcroit, le système d'exploitation, est chargé
d'assurer la liaison entre les ressources matérielles, l'utilisateur et les applications. Ainsi lorsqu'un programme
désire accéder à une ressource matérielle, il ne lui est pas nécessaire d'envoyer des informations spécifiques
au périphérique, il lui suffit d'envoyer les informations au système d'exploitation, qui se charge de les
transmettre au périphérique concerné via son pilote. En l'absence de pilotes il faudrait que chaque programme
reconnaisse et prenne en compte la communication avec chaque type de périphérique !
Mais réflexion faite, le système d'exploitation (Operating System) est le programme qui relie l'utilisateur avec
la machine. Il contrôle l'allocation et l’utilisation de la partie physique de l'ordinateur (Hardware), allant des
actions les plus simples (démarrer l'ordinateur, reconnaître les entrées clavier ou souris, lire des fichiers...) aux
plus complexes (lancement d'applications, utilisation de périphériques...). Non seulement mais aussi, il sert
trois intentions distinctes : le système d'exploitation permet l'exploitation des périphériques matériels dont il
coordonne et optimise l'utilisation; Il propose aux logiciels applicatifs des interfaces de programmation
standardisées qui simplifient l'utilisation des matériels et réalise enfin différentes fonctions visant à assurer la
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
fiabilité (tolérance aux pannes, isolation des fautes) et la sécurité informatique ( traçabilité, confidentialité,
intégrité et disponibilité).
C’est dire aussi que, en allumant l’ordinateur portable, on peut voir d’abord comment le système démarre.
Selon le système d’exploitation choisi, Windows, Linux ou macOS démarre. Ce n’est que lorsque ce système,
si important pour le fonctionnement de l’appareil, est chargé que vous pouvez vous mettre au travail et lancer
des programmes, vous connecter à Internet ou ouvrir des fichiers. Toutefois, le système d’exploitation n’est
pas responsable du démarrage de l’appareil. Il est précédé par le BIOS, qui est responsable du processus de
démarrage proprement dit. Toutefois, le BIOS, n’a que des capacités très rudimentaires, qui sont
principalement liées au processus de démarrage. Lors de ce dernier, le BIOS démarre également le système
d’exploitation, qui prend ensuite en charge l’administration complète de l’ordinateur. Une grande partie de ces
activités se déroulent en arrière-plan. Le logiciel très complet permet d’effectuer des réglages sur les appareils,
d’installer et de désinstaller des programmes et d’exécuter des logiciels.
À bien considérer les choses, un système d'exploitation peut servir à coordonner l'utilisation du ou des
processeur(s), et accorder un certain temps pour l'exécution de chaque processus ; à réserver de l'espace dans
les mémoires pour les besoins des programmes et à organiser le contenu des disques durs ou d'autres mémoires
de masse en fichiers et répertoires. Il peut aussi servir à créer l'image numérique qui contiendra les interfaces
homme-machine des différents programmes et à l'envoyer au moniteur ainsi qu'à recevoir les manipulations
effectuées par l'utilisateur via le clavier, la souris ou d'autres périphériques, et les transmettre aux différents
programmes. Lorsque l'ordinateur démarre (Boot), il cherche le système d'exploitation et une fois qu’il l'a
trouvé, il le charge dans la mémoire RAM. Il est alors apte à répondre aux demandes de l’utilisateur et des
applications. Le système d'exploitation gère la mémoire : il sauvegarde, supprime et récupère des données, les
affiche sur l'écran, les envoie aux périphériques qui en ont besoin (les imprimantes par exemple), il répond
aux entrées clavier, reconnaît les clics de souris et il lit et écrit des données sur des disques durs ou autres
périphériques de stockage. C’est alors que ce cours a pour objectif de décrire les généralités des systèmes
d’exploitation, expliquer la structure et l’architecture des systèmes d’exploitation voire la gestion des
ressources matériels ce qui signifie la transformation du matériel en une machine utilisable et l'optimisation
de l'utilisation des ressources matérielles et logicielles.
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
2. Démarche pédagogique
Le cours repose sur une démarche d’actualisation des théories, pratiques et connaissances des prérequis sur
les principes généraux de l’algorithmique. D’une part, ce cours fournit une vue d’ensemble de ce domaine
d’études en prenant connaissance des concepts nécessaires pour le système d’exploitation. Bien plus, il
distinguer et expliquer les grandes notions des ressources matérielles et logicielles, notions avec lesquelles le
SE réagit ainsi que celles de l’évolution de chaque OS voire la compréhension leurs différentes structures et
architectures et de savoir-faire relatif à la résolution des problèmes complexes de gestion des ressources (les
mémoires, les périphériques et les fichiers). Tout compte fait, le cours privilégie l’approche interactive.
3. Prérequis
Connaissances des principes généraux de l’algorithmiques et structures des données ;
4. Support pédagogique
Tableau blanc, Marqueur, Rétroprojecteur, Ordinateur et en plus l’étudiant dispose d’un fascicule rédigé par
nous-même ;
5. Titulaire : Ir. Charles Mapeto : Gradué et Licencié en informatique de gestion (2020), Institut Supérieur
de statistique de Lubumbashi (ISS Lubumbashi / UNILU), Spécialiste en Conception des systèmes
d’information à Université Catholique d’Afrique de l’Ouest (UCAO Sénégal) et Doctorant à la faculté de
sciences de l’UPKAN.
Tel :0994207581 ou 0825431841, Email :[email protected], [email protected]
Contenu
Chapitre I : Généralités sur les systèmes d’exploitations ;
Chapitre II : Structures et architectures des systèmes d’exploitations ;
Chapitre III : Gestion des ressources : les mémoires, les périphériques et les
fichiers ;
Bibliographie sélective
[1] Andrew Tanenbaum, Systèmes d’exploitation, Pearson Education France, 2008, 3e éd.
[2] D.L. Galli, Distributed Operating Systems,
[3] J.A. Montagnon, E.Pichat "Architecture des ordinateurs. Tome 1: le sous-système central" Masson 1986
[4] J.C. Heudin, C. Panetto "Les architectures RISC " Dunod 1990
[5] JoffroyBeauquier, Béatrice Bérard, Systèmes d’exploitation, Concepts et Algorithmes Ediscience
[6] J.P. Vergus, G. Roucairol "Parallélisme, communications et synchronisation" Ed. CNRS 1985
[7] J.-R. Tong Tong "Les communications sous Unix" Eyrolles 1991.
[8] Laurent Bloch, Les Systèmes d’exploitation des ordinateurs. Histoire, fonctionnement, enjeux, Vuibert,
2003
ACM Architecture des ordinateurs Nouvelles, vol. 8, No. 2, Avril 1980 pp. 4-7, ISSN 0163-5964.
[13] Pour Brinch Hansen, Le noyau d'un système Multiprogrammation, en Communications de l'ACM, vol.
13, nº 4, Avril 1970, p. 238-241, ISSN 0001-0782.
[14] R. Moreau "Ainsi naquit l'Informatique" Dunod 1987
[15] S. Krakowiak "Principes des systèmes d'exploitation des ordinateurs" Dunod 1987
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
INTRODUCTION
A priori, la plupart des systèmes d’exploitation sont conçus graphiquement et sont axés sur la convivialité. Les
fonctions les plus importantes doivent être accessibles aux utilisateurs en quelques clics de souris ; la
navigation dans le menu doit être aussi intuitive que possible. Cependant, cela n’a pas toujours été le cas. Au
tout début, lorsque les premiers ordinateurs ont été utilisés à des fins scientifiques et militaires etc; il n’y avait
pas alors de système d’exploitation. À cette époque, tout se faisait directement avec la machine ellemême, il
n’y avait pas encore de système intermédiaire. Mais au moment où les premiers PC sont apparus, c’est-à-dire
des ordinateurs qui n’avaient plus la taille d’une armoire, les systèmes d’exploitation étaient également des
équipements standards.
Les premiers systèmes d’exploitation ne disposaient pas encore d’une interface utilisateur graphique. Ils
fonctionnaient plutôt avec une ligne de commande, que vous pouvez encore trouver aujourd’hui dans le
Windows PowerShell. Pour chaque action, qu’il s’agissait d’ouvrir un fichier, de naviguer dans la structure
des dossiers ou de lancer un programme, vous deviez connaître et taper la commande correcte. Ce n’est que
lorsque les ordinateurs ont pu être utilisés à domicile que les interfaces utilisateur plus simples sont devenues
monnaie courante. Les deux sociétés Microsoft (avec Windows) et Apple (avec macOS) en sont à l’origine.
Un ordinateur sans logiciel ne sert à rien. C'est le logiciel qui donne à cet ensemble électronique la capacité de
traiter les informations. Pour qu'un ordinateur soit capable de fonctionner il doit avoir un programme
informatique (appelé parfois application ou logiciel), la machine doit être en mesure d'effectuer un certains
nombre d'opérations préparatoires afin d'assurer les échanges entre le processeur, la mémoire et les ressources
physiques (périphériques).
Le systèmes d'exploitation noté S.E. ou O.S abréviations du terme Anglais: Operating system) est chargé
d'assurer la liaison entre les ressources matériels, l'utilisateur et les applications (traitement de texte, jeu
vidéo, tableau,...) ainsi lorsqu'un programme désire accéder à une ressource matérielle, il ne lui est pas
nécessaire d'envoyer des informations spécifiques au périphérique mais il lui suffit d'envoyer les
informations au S.E. qui se charge de les transmettre aux périphériques concernés via son pilote (Un pilote
informatique, souvent abrégé en pilote, est un programme informatique destiné à permettre à un autre
programme (souvent un système d'exploitation) d'interagir avec un périphérique.). En l'absence de pilote, il
faudrait que chaque programme reconnaisse un autre programme en tenant compte de la communication
avec chaque type de périphérique.
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Utiliser un ordinateur, c'est utiliser le système d'exploitation qui est dans son PC. Cependant posons-nous la
question de s’avoir, Qu’est-ce qu'un système d'exploitation?
Etant donné que le système d’exploitation ordonne et contrôle l'allocation des processeurs, des mémoires, des
icônes et fenêtres, des périphériques, des réseaux entre les programmes qui les utilisent. Il assiste les
programmes utilisateurs et protège les utilisateurs dans le cas d'usage partagé. Il regroupe certaines fonctions
comme:
La Gestion du processeur: Un processus est l’entité créée par le système d’exploitation pour l’exécution
d’un programme. Un programme est une entité passive qui réside en mémoire. Le processus, en revanche,
est placé instruction par instruction dans les registres de l’UC et exécuté. La principale tâche du système
d’exploitation concerne l’allocation du processeur aux processus. Il s’agit de décider quel processus
s’exécute à un moment donné, à quel moment interrompre le processus, quel sera le suivant, et de quoi il
a besoin comme ressources pour son exécution.
La Gestion de la mémoire centrale: La mémoire centrale est un espace de taille important organisé en
mots (ensembles d’octets) et destinée à accueillir les données à traiter par l’unité centrale. L’unité centrale
charge les instructions à exécuter dans les registres du processeur à partir d’adresses en mémoire centrale.
De même après exécution, les résultats sont placés en mémoire centrale. Il s’agit ici de gérer l’allocation
de cette mémoire aux programmes (attribution, libération de mémoire), les règles d’adressage et de veiller
à ce que les programmes en mémoire ne puissent pas interférer entre eux. En cas d'insuffisance de mémoire
physique, le système d'exploitation peut créer une zone mémoire sur le disque dur, appelée «mémoire
virtuelle» qui permet de faire fonctionner des applications nécessitant plus de mémoire qu'il n'y a de
mémoire vive disponible sur le système. En contrepartie cette mémoire est beaucoup plus lente.
La Gestion des entrées/sorties: le système d'exploitation permet d'unifier et de contrôler l'accès des
programmes aux ressources matérielles par l'intermédiaire des pilotes (appelés également gestionnaires de
périphériques ou gestionnaires d'entrée/sortie).
La Gestion de l'exécution des applications: le système d'exploitation est chargé de la bonne exécution des
applications en leur affectant les ressources nécessaires à leur bon fonctionnement. Il permet à ce titre de
«tuer» une application ne répondant plus correctement, ou de suspendre son exécution face à une
déroutement (erreur dans un programme ex. division par zéro ou adresse mémoire inexistante) ou une
interruption (signale provoqué par un périphérique d’E/S).
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
La Gestion des droits: le système d'exploitation est chargé de la sécurité liée à l'exécution des programmes
en garantissant que les ressources ne sont utilisées que par les programmes et les utilisateurs possédant les
droits adéquats.
La Gestion des fichiers: le système d'exploitation gère la lecture et l'écriture dans le système de fichiers et
les droits d'accès aux fichiers par les utilisateurs et les applications. Elle permet le stockage à long terme
des données et programmes sur la mémoire de masse.
La Gestion des informations: le système d'exploitation fournit un certain nombre d'indicateurs permettant
de diagnostiquer le bon fonctionnement de la machine. Bref, e système d'exploitation fournit un certain
nombre d'indicateurs permettant de diagnostiquer le bon fonctionnement de la machine.
Figure
N° 1.1.1 : Fonctions d’un système d’exploitation
I.3. HISTORIQUE DES PRINCIPAUX SYSTEMES D’EXPLOITATION
I. 3.1. INTRODUCTION A MICROSOFT WINDOWS
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Windows est un système d’exploitation imaginé et développé par Bill Gates, PDG de Microsoft, depuis le
milieu des années 1980. Ce système d’exploitation a été développé pour les ordinateurs personnels de bureau
et portable. Depuis cette période, plusieurs versions ont été développées. Au départ, Windows a été développé
sur les PC conçus par IBM et ses clones conçus par Microsoft. L’interface n’existait pas sous forme graphique
à l’époque, tout fonctionnait en « lignes de commande ». Un peu plus tard, Windows 1 fait son apparition et
propose pour la première fois une interface graphique pour les PC. A ce moment-là, le système n’intégrait que
des opérations mono tâche c’est-à-dire que le système était lancé sous forme d’un simple programme reposant
sur le système préexistant : MS-DOS. Certaines fonctions que l’on connait aujourd’hui étaient assurées par
Windows 1 comme le tracking de la souris sur l’écran ou le multi fenêtrage qui ne faisait que séparer l’écran
en deux sans superpositions. Windows 2 qui succéda au Windows 1 ajoutait la superposition de fenêtres mais
la résolution était nettement plus faible qu’aujourd’hui. Windows 3, inspiré du projet Alto de Xerox, puis de
Lisa et du Macintosh de Apple, propose l’architecture la plus proche de celle que nous connaissons aujourd’hui
c’est-à-dire que Windows prend la forme d’une interface indépendante de l’ordinateur composée de plusieurs
sous programmes. Cela lui donnera enfin son nom de Windows.Windows 3 utilisa la métaphore du bureau
avec des fichiers, des dossiers et une corbeille. Cependant cela arriva après le lancement du Macintosh de
Apple en 1990. A partir du milieu des années 1990, Windows prend sa forme définitive avec un menu «
démarrer », ses fichiers, ses dossiers et sa corbeille. Plusieurs logiciels sont livrés avec le système, ce qui
imposa les normes spécifiques au système tels que les fichiers en « .exe » ou « .doc » par exemple.
À cette époque les systèmes (ordinateurs) n’avaient ni la capacité ni la nécessité d’utiliser des systèmes
d’exploitation pour mini ou grands ordinateurs. Les premiers systèmes d’exploitation appelés moniteurs
offraient seulement des fonctionnalités très basiques, et étaient chargés le plus souvent depuis de la mémoire
morte. CP/M fut l’un des pionniers en matière de système d’exploitation installé sur un disque (et non sur
mémoire morte). Ce système d’exploitation influença largement la conception de PC-DOS. Ce dernier, choisi
par IBM comme système d’exploitation pour ses premiers PC, fit de Microsoft l’une des compagnies les plus
rentables au monde. Les principales alternatives durant les années 1980 sur le marché des systèmes
d’exploitation furent Mac OS en 1984, AmigaOS et Atarien 1985 et OS/2 en 1987.
Ensuite, la fin des années 1990 a vu les exigences des utilisateurs s’accroître en termes de fiabilité, de sécurité
et de convivialité de l’interface graphique. C’est ainsi que Microsoft a opéré une migration de tous ses systèmes
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
d’exploitation, en proposant ces différents types de systèmes qui se sépare en 2 parties, les systèmes pour
amateurs et pour professionnels. Au début des années 2000, Microsoft lance son fameux Windows XP qui fut
un énorme succès grâce à son ergonomie et sa simplicité. Cependant, cette version mit en lumière des lacunes
liées à la sécurité du système. Sa stabilité en fera un système toujours en activité 10 ans après.Windows Vista
succéda à Windows XP mais ne trouvera pas un grand taux d’adoption en raison de sa lenteur et de son
instabilité. On entend par stabilité d’un système d’exploitation, la capacité à rester actif sans que le système
ne lâche en affichant un « blue screen ».
Il faudra attendre Windows 7, sorti en 2009, qui sera adopté par beaucoup d’utilisateurs. Il est encore en activité
aujourd’hui.
Windows 8 sera lancé en 2012 mais ne sera pas plébiscité par le public du fait que son architecture soit
complétement différente des versions précédentes. Le menu « démarrer » n’existe plus. Ce flop est dû au fait
que cette version a été trop pensée pour le tactile. Il faudra attendre la dernière version sortie en 2016, Windows
10, pour voir le menu « démarrer » faire sa réapparition. Pour pallier aux lacunes de sécurité, Microsoft a mis
en place un système de mise à jour permanente et obligatoire tous les six mois.
Voici un schéma non exhaustif retraçant globalement l'apparition des principaux systèmes de type
WINDOWS:
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Il existe en plusieurs versions Windows 1, 2, 3.X, 95, 98, Me (millénium), Windows NT, 2000, XP, Vista,
Windows 7, 8 et 10. Nous ne citons ici que les versions pour particuliers sans parler des versions spécialisés
pour les serveurs qui sont en général de plus gros ordinateurs configurés pour la gestion des réseaux.
Windows évolue régulièrement pour devenir à la fois de plus en plus performant et convivial, ses versions
successives demandent pour tourner dans nos PC des processeurs de plus en plus rapides ainsi que des
mémoires et des disques de plus en plus volumineux, le cout du matériel va heureusement en diminuant. Ceci
dit, ceux qui disposent d’un matériel ancien auront parfois avantage à n’est pas se précipiter sur les dernières
versions des logiciels et en particulier de Windows. Les améliorations apportées ne compenseront sans doute
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
pas la perte de vitesse qu’entrainent, sur du matériel ancien, ces logiciels de plus en plus gourmands en
ressources matérielles.
En gros, d’une version à l’autre, c’est surtout le fonctionnement interne du système d’exploitation qui change.
Les modifications de l’interface restent relativement réduites, si bien qu’il n’est pas trop difficile de s’adapter
aux versions successives.
Windows 1
Il y a plus de 30 ans, le 20 novembre 1985, Microsoft présentait Windows 1.01. Il s'agissait plus d'une interface
graphique que d'un système. Quoi qu'il en soit, il n'était pas encore question de bouton ou de menu démarrer.
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Windows 3.x
Au début des années 90 apparaît la gamme des Windows 3.x, le design s'affine. On voit ici le gestionnaire de
programmes de Windows 3.1.
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Windows 8.1 remet en place le bouton démarrer et ajoute la possibilité de démarrer sur le bureau pour éviter
l'interface tactile.
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Windows 10
Windows 10 est le dernier système en date de Microsoft qui a tenté de garder ce qui était apprécié dans
Windows 7 et de conserver ce qui a plu dans Windows 8, c'est-à-dire la possibilité d'utiliser le système au
tactile. Le menu démarrer est de retour, avec les tuiles, et l'utilisateur garde la possibilité de passer en mode
tablette (automatiquement ou manuellement) lorsqu'il souhaite utiliser l'ordinateur avec un écran tactile et sans
clavier ni souris.
qui est assez vieux (une bonne trentaine d'années), utilisé tant pour les gros ordinateurs que pour les plus petits.
Nous le retrouvons sur les super-ordinateurs (Cray), sur les ordinateurs centraux, sur les minis (VAX, HP),
sur les postes de travail (HP, Apollo, Sun, SGI, ...) et bien sûr, sur les micros (Linux).
1960+
Il y a beaucoup de débats sur les mérites des différents langages de programmation (PL/1, APL, Simula,
ALGOL 60, COBOL, FORTRAN, etc.). À l'Université de Londres et de Cambridge, le langage BCPL (Basic
Combined Programming Language) est créé. Des recherches sur les concepts de temps partagé, de traitement
interactif (par opposition au traitement par lots), de pagination et de protection de la mémoire,
d'ordonnancement des travaux et de structure de fichiers sont débutées.
1967
Dennis Ritchie quitte Harvard pour travailler aux Laboratoires Bell dans le New Jersey.
1968
Ken Thompson quitte Berkeley, où se faisaient déjà des recherches sur un nouveau système d'exploitation
(SDS930), pour se joindre à une équipe de spécialistes qui avaient travaillé sur les systèmes Multics
(Cambridge Multiple Access System) et GE 645.
1969
Thompson et Ritchie produisent la première édition d'un système à usager unique sur un PDP 7. C'est un
système primitif qui ne comporte qu'un assembleur et un chargeur.
1970
La primitive « fork » est ajoutée pour permettre la création de processus et des programmes utilitaires pour la
gestion des fichiers sont produits ( deuxième édition ). Le système accepte alors deux usagers et Thompson le
baptise UNIX. Ken Kernighan avait, un jour, fait référence au système par: « Uniplexed Information and
Computing System » (UNICS) par opposition à MULTICS (Multiplexed Information and Computing System).
1971
Le système est transporté sur un PDP 11/20 et un système de traitement de textes (roff) est produit pour le
service des brevets des Laboratoires Bell (le premier utilisateur extérieur de UNIX). Thompson et Ritchie
publient la première documentation du système. C'est la troisième édition.
1972
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
UNIX est amélioré en lui ajoutant la notion de relais ( pipe ). Thompson développe le langage B (un descendant
de BCPL) et réécrit l'assembleur du système en B. C'est un compilateur qui produit du code interprétable, peu
performant et Ritchie produit un générateur de code pour le PDP 11. C'est le langage C. Il existe à l'époque
environ 20 sites utilisant le système UNIX.
1973
UNIX est réécrit en langage C (quatrième édition). Il fonctionne alors sur un ordinateur avec un disque rigide
de 500K et peut supporter environ cinq usagers. Thompson se charge de la gestion de processus tandis que
Ritchie s'occupe de la gestion des entrées/sorties.
1974
Plusieurs universités commencent à utiliser UNIX et la cinquième édition , conçue spécialement pour des fins
académiques, est introduite.
1975
La sixième édition de UNIX est produite et devient la première à être commercialisée pour une somme
modique par AT&T.
1977
Près de 500 sites utilisent UNIX. Une nouvelle version pour un ordinateur Interdata 8/32 est produite. Le
langage C’est aussi amélioré. John Reiser et Tom London, des Laboratoires Bell, écriront UNIX 32V pour le
VAX 11/780. C'est un descendant de cette version qui est actuellement distribué par l'Université de Berkeley
en Californie (UCB).
À partir de ce moment, les versions de UNIX vont se multiplier; BSD4.2 de Berkeley, A/UX de Apple
Computer, HP-UX de Hewlett-Packard, AIX de IBM, Domain/IX de Apollo Computer et SunOS de Sun
Microsystems. C'est à cette époque que débute le problème de standard.
1980
Il y a environ 100 000 sites UNIX! Le problème, c'est que personne ne supporte vraiment ce système. Les
détenteurs de licences sont laissés à eux-mêmes.
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
1983
AT&T annonce System V qui est complètement différent de la version de Berkeley.
1984
La cour des États-Unis brise le monopole de AT&T et l'oblige à se subdiviser. Sept compagnies naîtront (les
Baby Bells) et AT&T aura le droit de vendre des produits informatiques (de la concurrence pour IBM). Elle
décide de miser sur UNIX, produit la version 2 de System V et offre un support complet pour le système
d'exploitation et les utilitaires.
1986
AT&T annonce la version 3 de System V qui supporte RFS (Remote File Sharing).
1987
Une nouvelle version de UNIX compatible avec la version de AT&T, celle de Berkeley, de Sun et XENIX de
Microsoft est annoncée. C'est
System V version 4.0 qui sera disponible à l'automne 1989. Donc deux versions vont subsister: System V 5.3
de AT&T et BSD 4.3 de Berkeley.
1988
Un mouvement se forme pour produire une version compétitrice de UNIX. C'est OSF (Open Software
Foundation) qui regroupe: IBM, Hewlett-Packard, BULL, SIEMENS et Apollo.
1989
Au départ, toutes les sources de UNIX étaient disponibles, donc beaucoup de gens ont pu contribuer à son
expansion. Avec la commercialisation du système par AT&T, les sources n'étaient offertes qu'à des prix
exorbitants. Le projet GNU (GNU's not UNIX) a pour objectif (entre autres) de remettre UNIX dans le
domaine public. Sur une base de volontariat, les participants au projet GNU produisent du code UNIX
disponibles gratuitement.
Voici un schéma retraçant généralement l'apparition des principaux systèmes de type Unix :
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Multics (Multiplexed Information and Computing Service). Peu après on a changé le nom Unics par Unix, et
à partir de ce moment le système Unix a commencé un long chemin de développement technique. Le système
Unix a connu un véritable succès, lorsqu'il fut récrit en langage C en 1973 par Denis Ritchie et Thompson.
L'Université de Californie à Berkeley a obtenu une copie de la version 6 du système Unix. AT&T et Berkeley
ont séparément apporté de nombreuses modifications et améliorations au système Unix (System V d'AT&T et
4.4BSD de Bekerley).
Le projet Posix (Portable Operating System UnIX) de normalisation du système Unix a permis de développer
un standard qui dénit un ensemble de procédures. Tout système Unix conforme à Posix fournit ces procédures
ou appels système standards. Ces procédures constituent la bibliothèque standard d'Unix. Tout logiciel écrit
en n'utilisant uniquement les procédures de la norme Posix devrait fonctionner sur tous les systèmes.
commercial complètement contrôlé par son fabricant, le système Unix est aujourd'hui distribué par plusieurs
intervenants.
GNU/Linux
GNU/Linux est un système d’exploitation multi tâche dérivé du projet américain UNIX créé dans les années
1960 par Kenneth Thompson. Dans les années 1980, Richard Stallman, lance un projet dérivé du projet UNIX
sous le nom de GNU. Cela lança le mouvement du logiciel libre basé sur le partage et l’utilisation en libre
accès du code source de ces logiciels. Le fait que ces codes soient en libre accès pousse les développeurs à y
apporter des modifications comme des correctifs de sécurité par exemple.
1991
Linus Torvalds, étudiant à l'université d'Helsinki (Finlande) installe le système Minix sur son i386. Le
système s'avérant trop limité pour Linus, il décide d'aller plus loin sur la base de ce qui existe... Linux (Linus'
UNIX, l'UNIX de Linus) 0.0.1 est né au mois d'août 1991. Linus lance alors un appel à contribution, et permet
donc un libre accès au code source.
Cette version permet de faire tourner quelques applications GNU (logiciels libres) essentielles comme le
compilateur gcc ou le shell bash. Linus prend la décision de mettre le code source sous licence GPL : tout le
monde peut alors participer au développement de Linux.
1991-94
Le développement anarchique de Linux ne lui permet pas, au départ, de devenir un système compétitif face
aux autres systèmes du marché. Son point faible réside dans son système de fichiers hérité de Minix. Seule
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
l'intégration à Linux du Second Extended Filesystem (ext2fs), conçu par Rémi Card à partir du système de
fichiers de BSD, permet d'en faire un système fiable. Ext2fs offre enfin les performances et les services de
systèmes de fichiers professionnels. Il devient naturellement un standard.
1995
L'explosion d'Internet donne un second souffle au développement de Linux: non seulement pour permettre à
la communauté des développeurs de Linux de continuer à s'étendre, mais aussi et surtout pour donner à Linux
une existence réelle sur le marché des systèmes d'exploitation. Ainsi, ses qualités d'OS libre (et gratuit), robuste
et performant font qu'il est choisi par de plus en plus de fournisseurs d'accès à Internet. Il est ainsi devenu
aujourd'hui le leader sur le marché de l'hébergement de sites Web.
Parallèlement, l'apparition et le développement de sociétés privées telles que RedHat , Caldera ou VA Linux
donne une envergure jusqu'alors inconnue à Linux: les distributions deviennent de plus en plus conviviales et
simples à installer, et des services professionnels sont mis en place pour faciliter l'implantation de Linux dans
les entreprises.
1996
Linux commence à faire parler de lui dans les média. Red Hat Linux est élu meilleur OS par InfoWorld.
Début du projet KDE : on commence à développer des projets conviviaux pour le grand public.
1999
Linux est présenté comme une alternative au système Windows de Microsoft dans le domaine des serveurs.
Linux est présent sur 35% des serveurs d'entreprises. Les salons Linux se multiplient et l'on observe une
multiplication des revues spécialisées.
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
MacOs (anciennement OS X) a été développé par la société Apple. Ce système d’exploitation n’est présent
que sur les ordinateurs de la marque Apple (Macintosh). Ceux-ci sont facilement reconnaissables grâce au
logo représentant une pomme. La version actuellement vendue est MacOs Sierra, la version MacOs High
Sierra devrait sortir à l’automne 2017. Outre, Mac OS est un système d’exploitation développé par Apple dans
les années 1980 pour ses ordinateurs Macintosh. Cet OS s’adresse avant tout aux artistes ainsi qu’aux
professionnels. Tout commence avec le développement du Macintosh au milieu des années 1980 par Steve
Jobs et son équipe. Le Macintosh est le premier ordinateur à proposer une interface graphique en utilisant la
métaphore du bureau avec des dossiers, des fichiers et une corbeille à l’écran. Dans les années 1990, Apple
améliore son Macintosh pour proposer un modèle sur la base du power PC avec une tour dans laquelle sont
installés les composants. En termes de systèmes d’exploitation, Apple a également modifié son système pour
le rendre performant grâce à des mises à jour régulières.
Mac Os est le nom du système d'exploitation des ordinateurs de la marque à la pomme au même titre que
Windows pour Microsoft. La différence notable est que Microsoft vend son système d'exploitation sans la
partie matérielle alors Mac OS est toujours vendu dans une machine Apple. Le premier système d'exploitation
d'Apple est né en 1984. Il ne porte pas encore le nom de « Mac OS » mais tout simplement « system 0.0 ».
Entre 1984 et 1988 le « system » n'évoluera pas beaucoup et souffrira de bugs et d'une stabilité perfectible.
Mac OS 8
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
C'est en 1997 qu'apparaît la dénomination de « Mac OS » (Macintosh Operating System). C'est la huitième
version du système d'exploitation qui hérite de ce nom. Cette version inaugure une interface graphique
entièrement nouvelle (Platinium) C'est aussi cette version qui embarquera les applications pour l'arrivée
d'internet.
Mac OS 9
Cette version est très proche de la précédente. Elle sert de transition avant l'arrivée de Mac OS X. Elle est très
aboutie et très stable et est entièrement compatible Power PC. L'interface s'est tout de même affinée.
C'est également l'arrivée « d'exposé » qui permet de visualiser toutes les fenêtres ouvertes d'un seul coup d'œil.
C'est une mise à jour majeure de l'OS. L'interface graphique évolue grandement avec l'apparition des piles,
d'un dock en 3D, les icônes sont entièrement revues, la présentation des fichiers sous de cover flow apparaît
également.
C'est également l'arrivée de Time machine qui permet de restaurer un fichier/dossier ou le système entier de
la façon dont il était quelques minutes auparavant. Une révolution !
Les applications ibook et Plans (déjà disponibles sur iOS) font leur apparition, l'interface de Safari est
renouvelée
Spotlight, Safari font peau neuve. Il est possible d'envoyer des SMS/Appels depuis le Mac grâce à un iPhone
synchronisé.
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Internet, mais il est conseillé de débuter par Ubuntu si on a des connaissances informatiques de base.
L'installation de Linux est simple et conviviale sur un ordinateur PC ou Mac, et il existe de nombreux tutoriels
sur Internet. Attention, si vous trouverez facilement des équivalents de tous les logiciels de bureautique, il
n'est pas toujours simple de trouver une alternative Linux à un logiciel développé pour Windows, sans parler
des jeux vidéo ! Par exemple, il n'y a pas de réel équivalent à Adobe Photoshop et Illustrator, alors évaluez
bien vos besoins avant de vous lancer !
Figure N° 1.1.15 : Généralité sur les versions des principaux systèmes d’exploitation
L’étude de ces 3 systèmes d’exploitation Windows, Lunix et MacOs nous aura permis d’appréhender les
fonctionnalités et les caractéristiques de ces trois systèmes d’exploitation. Cependant, il appartient à
l’utilisateur de choisir en fonction des objectifs et besoins souhaiter l’utilisation du système d’exploitation
voulu. Outre, Windows, macOS et Linux, ces systèmes d’exploitation ont évolué avec le temps, il en existe
donc plusieurs versions. Comparons maintenant les principaux systèmes entre eux ;
En général, les systèmes d’exploitation sont préinstallés et prêt à l’emploi. Cela est surtout valable dans le cas
de Windows et de Mac. Ces deux systèmes représentent respectivement 90 % du marché pour Windows et 8%
pour Mac. GNU/Linux ne possède que 2% du marché et les ordinateurs équipés d’une des distributions sont
rares. Généralement, la distribution la plus commune est Ubuntu de chez Canonical.
Voici un tableau comparatif qui vous présente les avantages, inconvénients et nombre de bits des instructions
des programmes qui sont développés pour fonctionner avec tel ou tel système ainsi que leurs caractéristiques
d’utilisation matérielles principales:
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
– firewall intégré
– Pas de virus
– Compatible avec le «
monde » windows.
– Personnalisable à
volonté.
– Pas besoin d’entretien,
le système peut tourner 24h/24
pendant des années sans
s’engorger.
– Sauvegardes
automatiques de tout le Mac,
système, programmes, données
avec
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Time Machine.
– Respect de votre vie
privée et sécurité pour vos
données, possibilité de Crypter
tout le Mac.
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
L’utilisateur a un grand choix de système d’exploitation. Ceux-ci sont plus ou moins faciles d’accès dans leur
utilisation et plus ou moins personnalisables. Tout dépend de ses goûts en matière d’informatique. Là où la
plupart y verront un système prêt à l’emploi et sans prise de tête, d’autres y verront une liberté réduite dans la
customisation de sa machine.
Si vous, oui vous, utilisateur, voulez un système sans prise de tête et prêt à l’emploi, optez pour un PC avec
Windows ou un Mac de chez Apple. En revanche, si vous voulez personnaliser entièrement votre système,
optez plutôt pour une machine avec une des nombreuses distributions GNU/Linux. Vous êtes servi quitte à y
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
passer un peu de temps à personnaliser, vous y trouverez votre bonheur. L’installation n’est pas bien
compliquée, vous avez une communauté prête à vous aider quel que soit votre souci. Bref, Le système
d'exploitation le mieux à utiliser dépend de ce que son utilisation sera destinée et qui vont l'utiliser.
Dans cette génération, le développement du système d'exploitation développé pour servir de nombreux
utilisateurs à la fois, où les utilisateurs interactifs communiquent via le terminal en ligne avec l'ordinateur, le
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Très bon marché, ils sont capables de se connecter à des ordinateurs distants et performants. Les
systèmes d'exploitation de type « micro-noyau » sont modulaires (un module par fonction) ; ils peuvent être
réalisés avec plus ou moins de modules et donc adaptables à des très petites machines (PDA et PIC).
Aujourd'hui, le système d'exploitation est utilisé pour réseau informatique où l'utilisateur est au courant de
l'existence d'ordinateurs connectés les uns aux autres. A cette époque, les utilisateurs ont également été
sécurisés avec une interface utilisateur graphique qui est une interface informatique graphique très confortable,
à cette époque a également commencé l'ère de l'informatique distribuée où les calculs ne sont plus centrés sur
un point, mais sont décomposés sur de nombreux ordinateurs afin que les performances soient atteintes le
meilleur.
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Le système d’exploitation est le composant logiciel fondamental d’un ordinateur, il fonctionne en mode
noyau dit aussi mode superviseur. Dans ce mode, il a un accès complet et total à toutes les ressources
matérielles et peut exécuter n’importe quelle instruction que la machine est capable de traiter. Tous les autres
logiciels fonctionnent en mode utilisateur, dans lequel une partie seulement des instructions machines sont
accessibles. En particulier les instructions qui affectent la commande de la machine ou les entrées/sorties sont
inaccessibles en mode utilisateur.
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Le noyau (kernel) représentant les fonctions fondamentales du système d'exploitation telles que la gestion
de la mémoire, des processus, des fichiers, des entrées-sorties principales, et des fonctionnalités de
communication.
L'interpréteur de commande (shell - coquille par opposition au noyau) permettant la communication avec
le système d'exploitation par l'intermédiaire d'un langage de commandes, afin de permettre à l'utilisateur
de piloter les périphériques en ignorant tout des caractéristiques du matériel qu'il utilise, de la gestion des
adresses physiques, etc.
Le système de gestion de fichiers (file system) permet d'enregistrer les fichiers dans une arborescence.
L’interface-Homme-Machine (IHM) : qui permet de définir la manière dont un composant informatique
peut communiquer avec un autre.
Les pilotes : qui aident à la prise en charge des périphériques, ou c’est un ensemble de programmes qui
permettent le fonctionnement du système : services réseau, accès aux fichiers,...
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Multi-tâches: capacité du système à pouvoir exécuter plusieurs tâches « processus » (i.e. « un programme
») simultanément ou un utilisateur lance plusieurs applications simultanément. e.g. effectuer une
compilation et consulter le fichier source du programme correspondant. Cas d’UNIX et Windows
95.
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Les systèmes d’exploitation préemptifs : gèrent le temps processeur alloué à chaque application. Un
commutateur de tâches intervient pour répartir l’allocation des ressources. Des degrés de priorité sont
accordés à chaque application. Chaque application peut être interrompue sans interférer avec les autres
applications.
Systèmes mono/multi-utilisateurs :
Mono-utilisateur : le système ne peut gérer qu’un seul utilisateur (e.g. le système MS-DOS) ;
Multi-utilisateurs: capacité à pouvoir gérer un panel d'utilisateurs utilisant simultanément les mêmes
ressources matérielles. Outre, plusieurs utilisateurs utilisent le même ordinateur en même temps.
Systèmes multi-processeurs :Le multiprocessing est une technique consistant à faire fonctionner plusieurs
processeurs en parallèle afin d'obtenir une puissance de calcul plus importante que celle obtenue avec un
processeur haut de gamme ou bien afin d'augmenter la disponibilité du système (en cas de panne d'un
processeur).
3) CAS PARTICULIER : SYSTEMES EMBARQUES, SYSTEMES TEMPS REEL
Systèmes embarqués : sont des systèmes d'exploitation prévus pour fonctionner sur des machines de petite
taille, telles que des PDA (personal digital assistants ou en français assistants numériques personnels) ou
des appareils électroniques autonomes (sondes spatiales, robot, ordinateur de bord de véhicule, etc.),
possédant une autonomie réduite. Ainsi, une caractéristique essentielle des systèmes embarqués est leur
gestion avancée de l'énergie et leur capacité à fonctionner avec des ressources limitées. e.g : BlackBerry
OS; Android; Symbian; Lumia; Java; iOS.
Systèmes temps réel : ce sont des systèmes pour lesquels l'exécution des programmes est soumise à des
contraintes temporelles. Les résultats de l'exécution d'un programme n'est plus valide au-delà d'un certain
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
temps connu et déterminé à l'avance. Généralement on trouve ces systèmes TR dans les systèmes
embarqués. e.g : RTLinux (RealTime Linux), QNX ; VxWorks.
Les interfaces:
La ligne de commande, le mode texte avec le clavier.
L’interface graphique (GUI pour Graphical User Interface), le mode graphique, avec un pointeur comme
une souris.
Les systèmes d’exploitation préemptifs gèrent le temps processeur alloué à chaque application. Un
commutateur de tâches intervient pour répartir l’allocation des ressources. Des degrés de priorité sont
accordés à chaque application. Chaque application peut être interrompue sans interférer avec les autres
applications.
Les systèmes d’exploitation coopératifs. Une seule application peut monopoliser toutes les ressources
de l’ordinateur, et ne rendre la main aux autres applications uniquement quand elle aura terminée…
Le nombre d’utilisateurs :
Les systèmes d’exploitation mono utilisateurs (monoprogrammation).
Les systèmes d’exploitation multi utilisateurs (multiprogrammation) peuvent supporter plusieurs
sessions en même temps.
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
La connectivité réseau :
Les systèmes d’exploitation clients,
Les systèmes d’exploitation serveurs.
Le nombre de bits des instructions des programmes qui sont développés pour fonctionner avec tel
ou tel système:
Avec ce genre d'organisation, on peut éviter d'avoir à charger l'intégralité des fonctionnalités du noyau
et tous les pilotes de périphériques au démarrage de l'ordinateur : on charge ce dont on a besoin quand on en
a besoin. Cela permet d'éviter de charger un pilote d'un périphérique qui n'est pas branché sur l'ordinateur
par exemple..
désigne principalement des noyaux qui reprennent des concepts à la fois des noyaux monolithiques et des
micro-noyaux, pour combiner les avantages des deux.
Lorsque, au début des années 1990, les développeurs et concepteurs se sont aperçus des faiblesses des premiers
micro-noyaux, certains réintégrèrent diverses fonctionnalités non fondamentales dans le noyau, pour gagner
en performance. Les micro-noyaux « purs » semblaient condamnés à l’échec.
Alors que la philosophie générale des systèmes à micro-noyaux est maintenue (seules les fonctions
fondamentales sont dans l’espace noyau), certaines fonctions non critiques, mais très génératrices d’appels
système, sont réintégrées dans l’espace noyau.
e.g. Windows NT 2000 et XP (et également les Windows plus récents) ainsi que DragonFly BSD sont en
construction hybride.
La virtualisation est une technique permettant de faire tourner simultanément plusieurs Systèmes
d’Exploitation sur un même ordinateur physique. C’est ainsi que ces Systèmes d’Exploitation virtuels
se partagent les ressources (Processeur, Mémoire, Disques et Interfaces réseau) de la machine physique.
Bien plus, pour être utile de manière opérationnelle, la virtualisation doit respecter deux principes
fondamentaux :
Retenons que plusieurs autres définitions peuvent être considérées, mais l’essentiel a été donné par celle-ci
haute. En outre, ce concept fait intervenir la notion de Machine hôte (Machine physique sur lequel
est supporté les OS virtuels) et Machine invitée (Machine virtuelle s'exécutant dans l'environnement
de virtualisation : Il est à noter qu’on peut compter plusieurs Machines invitées mais qu’une seule Machine
hôte).
Une machine virtuelle se comporte donc exactement comme un ordinateur physique et contient ses propres
ressources matérielles qui sont alors virtuelles (c’est-à-dire basées sur du logiciel). L’autonomie de chaque
machine virtuelle rend la solution complètement transparente pour l’utilisateur et toutes actions telles
que redémarrage ou installation d’applications ne perturbent pas le fonctionnement des autres machines
virtuelles démarrés pour autant sur la même ressource physique. En quelques mots, la virtualisation permet
de rentabiliser au maximum l’utilisation d’une machine physique.
Une machine virtuelle (virtual machine) est une illusion d'un appareil informatique créée par un logiciel
d'émulation. Le logiciel d'émulation simule la présence de ressources matérielles et logicielles telles que la
mémoire, le processeur, le disque dur, voire le système d'exploitation et les pilotes, permettant d'exécuter
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
des programmes dans les mêmes conditions que celles de la machine simulée.
La plupart des fonctionnalités d'un SE sont reportées dans des processus utilisateurs. Pour demander un
service comme la lecture d'un bloc de fichier, le processus client envoie une requête à un processus serveur
qui effectue le travail et envoie une réponse.
Remarque : Le noyau est souvent obligé de gérer certains processus serveurs critiques comme les pilotes de
périphériques qui adressent directement le matériel.
La décomposition du SE en modules très spécialisés le rend facile à modifier. Les serveurs s'exécutent
comme des processus en mode utilisateur et non pas en mode noyau. Donc ils n'accèdent pas directement
au matériel, ainsi une erreur n'affecte que le serveur et pas l'ensemble de la machine. Ce modèle est bien
adapté aux systèmes distribués. Un client n'a pas besoin de savoir si le SE fait exécuter sa requête par un
serveur de sa propre machine ou celui d'une machine distante.
61
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
depuis le disque et démarrer celui-ci. Ce programme de démarrage est généralement stocké dans une mémoire
non volatile (souvent dénotée ROM, pour Read-Only Memory). Cette mémoire ROM utilise une technologie
différente de la mémoire principale, et son contenu n'est pas perdu lors de la mise hors tension de la machine.
En pratique, le type de mémoire utilisé n'est pas seulement en lecture seul (ReadOnly) mais supporte des mises
à jour occasionnelles nécessitant un programme spécial (on parle alors d'un firmware, et d'une mise à jour de
firmware)
Le processeur reçoit lors du démarrage (ou du redémarrage) de la machine une interruption dite de remise à
zéro. Il charge alors son compteur de programme à la première adresse de la mémoire ROM. Cette adresse
contient la première instruction du programme de démarrage. Ce dernier va en général effectuer tout d'abord
un certain nombre de vérifications de la machine (comme par exemple l'absence d'erreur au niveau de la
mémoire principale), initialiser les registres matériels, les bus de communication, et les gestionnaires de
périphériques.
Ensuite, ce programme va devoir récupérer sur le disque le code du noyau à proprement parler, pour le copier
en mémoire principale et enfin brancher vers sa première instruction. Sur la plupart des systèmes, cette étape
se déroule en deux temps : le programme de démarrage est seulement capable de lire le tout premier bloc d'un
support de stockage (en général un disque dur ou SSD) dans lequel un programme de chargement plus complet
est stocké. C'est ce dernier qui va charger le code du noyau depuis son emplacement effectif sur le disque (le
noyau n'est pas stocké dans le premier bloc, mais dans le système de fichier; sous Linux ce fichier est
généralement stocké dans le répertoire /boot, par exemple /boot/vmlinuz3.13.0-32-generic). Sous Linux, le
gestionnaire de démarrage GRUB joue ce rôle. Il permet par ailleurs de gérer le démarrage de plusieurs
systèmes (comme Solaris, Windows, etc.) ou bien de permettre le démarrage de différents noyaux pour un
même système, ce qui est parfois utile pour les développeurs. On notera que lors de l'exécution de GRUB,
avant l'exécution du noyau Linux lui-même, les modules de Linux permettant d'utiliser le système de fichier
ne sont pas chargés. GRUB inclue donc ses propres modules pour pouvoir utiliser les systèmes de fichiers les
plus courants et y localiser le fichier contenant le code du noyau.
62
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
III.1. DEFINITION
En informatique, les ressources sont des composants, matériels ou logiciels, connectés à un ordinateur. Tout
composant de système interne est une ressource. Les ressources d'un système virtuel incluent les fichiers, les
connexions au réseau, et les zones de mémoire.
Le gestionnaire de mémoire est le sous-ensemble du système d’exploitation qui permet de gérer la mémoire
de l’ordinateur. Sa tâche la plus basique est d’allouer de la mémoire à des processus lorsqu’ils en ont besoin.
Cette mémoire allouée est par défaut propre au processus qui en fait la demande. La mémoire physique sur un
système se divise en deux catégories :
Les mémoires conventionnelles: composées de circuit intégrés, donc très rapide (RAM et ROM) ;
Les mémoires de masses : composée de supports magnétiques (disque dur, bandes magnétiques...),
beaucoup plus lente ;
Le gestionnaire de mémoire est un sous-ensemble du système d'exploitation. Son rôle est de partager la
mémoire entre l'OS et les diverses applications. Le terme "mémoire" fait surtout référence la mémoire
63
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
principale, c'est à dire à la RAM, mais la gestion de celle-ci demande la contribution de la mémoire auxiliaire
(mémoire de masse, spacieuse mais lente) et à la mémoire cache (rapide mais de taille restreinte).
La protection : Il faut s'assurer que les adresses générées par chaque processus ne concerne que la zone
mémoire qui lui est impartie, sans quoi, l'intégrité du système d'exploitation et des autres processus n'est
pas garantie. Certaines zones mémoire doivent pourtant servir simultanément à plusieurs processus : le
code de fonctions servant à plusieurs applications qui tournent en parallèle ou les données utilisées
simultanément par divers processus.
La segmentation de l'espace d'adressage : Les programmes sont subdivisés en segments : le code, les
données modifiables, celles qui ne le sont pas, la pile. On attend donc du gestionnaire de mémoire qu'il
permette la segmentation de l'espace d'adressage des programmes pour les raisons suivantes : (pouvoir
coder les segments séparément et les paramétrer en fonction de l'application, permettre des degrés de
protection différents selon les segments (lecture seule, exécution...), accepter le partage de certains
segments).
La mémoire virtuelle : Elle offre aux applications une mémoire de taille supérieure à celle de la mémoire
principale. L'espace d'adressage qu'offre la mémoire centrale est parfois insuffisant. Les disques suppléent
à cette insuffisance en fournissant une mémoire auxiliaire plus vaste mais plus lente et qui n'est pas
directement accessible au processeur.
64
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
On segmente alors l'application en segments de recouvrements ou "Overlays". Cette technique n'a plus cours
maintenant. Elle était utilisée à l'époque du DOS pour des applications volumineuses. Le programmeur devait
prévoir le découpage de son application en imaginant comment ces overlays serait chargés en mémoire les uns
à la suite des autres pour qu'au cours de son exécution l'application puisse atteindre toutes les fonctions
nécessaires.
C'était en quelque sorte comme cela qu'on concevait la mémoire virtuelle à l'époque des systèmes
d'exploitation monotâche. Notez que la zone mémoire occupée par le système d'exploitation n'était pas
protégée par ce type de gestion de mémoire.
Partition de la mémoire
a) Partitions fixes
Le plus simple est de diviser la mémoire en partitions fixes dès le démarrage du système. Les partitions sont
de différentes tailles pour éviter que de grandes partitions ne soient occupées que par de petits processus. Le
gestionnaire de mémoire, en fonction de la taille des processus, décide quelle partition lui allouer pour ne pas
gaspiller trop de mémoire. Une file d'attente est associée à chaque partition. Quand vient une nouvelle tâche,
65
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
le gestionnaire détermine quelle est la plus petite partition qui peut la contenir puis place cette tâche dans la
file correspondante.
b) Partitions variables
Une autre manière d'éviter les emplacements mémoires inoccupés en fin de partitions est d'allouer aux
processus des espaces qui correspondent exactement à l'espace qui leur est utile.
Au fur et à mesure que les processus se créent et se terminent, des partitions s'allouent et se libèrent laissant
des zones mémoires morcelées et inutilisables. La mémoire se fragmente et est de plus en plus mal employée.
Il faudrait la compacter en déplaçant régulièrement les processus mais cette tâche supplémentaire ralentit le
système. Le partitionnement de la mémoire que ce soit avec des partitions de tailles fixes ou de tailles variables,
ne permet pas d'utiliser la mémoire au mieux.
III.2.3. La pagination
66
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Les processus requièrent des espaces d'adresses continus. On a vu que cela est difficilement réalisable en
découpant la mémoire en partions dont les tailles correspondent à celles des processus. La pagination est une
technique d'allocation de la mémoire bien plus efficace. Elle fournit aux processus des espaces d'adresses
séquentiels à partir d'espaces mémoire discontinus.
La pagination consiste à diviser la mémoire et les processus en blocs de mêmes tailles appelés pages. Les
pages mémoire sont souvent appelées "frames" ou "cadres" tandis que les pages de processus sont
simplement appelées "pages".
Les pages (de processus) ne sont pas toutes simultanément actives ; elles ne sont donc pas nécessairement
toutes présentes simultanément dans la mémoire principale. Les pages inactives attendent sur le disque.
L'espace d'adressage est donc virtuel sa taille peut être supérieure à celle de la mémoire réelle.
Les processeurs disposent actuellement d'un dispositif, le MMU "Memory Manager Unit" qui permet de
placer des processus en mémoire sans nécessairement placer les pages de processus dans des cadres de pages
contigus. On distingue les adresses logiques qui se réfèrent aux pages de processus des adresses physiques qui
se réfèrent aux cadres de pages.
Voyons à présent comment l'unité de gestion mémoire (MMU) met en correspondance les adresses physiques
et logiques. Elle contient pour ce faire une table de pages où sont inscrits les numéros des cadres de pages.
67
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
68
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
III.2.4. La segmentation
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Chaque processus est constitué d'un ensemble de segments. Chaque segment est un espace linéaire. Les
segments sont des espaces d'adressages indépendants de différentes longueurs et qui peuvent même varier en
cours d'utilisation. Ils correspondent à des subdivisions logiques déterminées par le programmeur ou par
le compilateur. Les segments contiennent des informations de même nature : le code, les données, la pile,
des tables, etc. Il est dès lors possible d'attribuer des protections adaptées à chaque type de segment : un
segment de code peut être déclaré en exécution seule, une table de constantes en lecture seule mais pas en
écriture ni en exécution. Certaines zones de code en exécution seule peuvent être partagées par plusieurs
processus ; cela se fait par exemple pour des bibliothèques de sous-programmes. L'accès aux segments se fait
via une table de segments.
Chaque entrée de la table comporte l'adresse de départ du segment et sa taille. L'adresse logique est constituée
du numéro de segment et d'un offset. Contrairement aux pages dont le fonctionnement est transparent pour le
programmeur, les segments sont des entités logiques qu'il connaît et manipule. Il distingue les deux
informations contenues dans l'adresse : le numéro du segment et l'offset. Le numéro de segment sert d'index
pour retrouver l'adresse du début du segment dans la table de segment. Cet offset doit être inférieur à la taille
du segment consignée elle aussi dans la table de segment. Si ce n'est pas le cas, une erreur est générée qui
provoque l'abandon du programme. L'offset est ensuite ajouté à l'adresse de début de segment pour former
l'adresse physique.
La segmentation découpe les processus en zones linaires pouvant être gérées différemment selon que ces
segments sont propres au processus, qu'ils sont partagées, lus, écrits ou exécutées et de manière à protéger
les processus entre eux.
La pagination découpe la mémoire en pages non contiguës mais de même taille. Elle procure aux processus
des espaces d'adresse continus (nécessaires aux segments). Les pages mémoires peuvent n'être allouées
que lorsqu'un processus en a besoin. On obtient de la sorte une mémoire virtuelle de taille supérieure à la
mémoire réelle.
Les systèmes d'exploitation qui gèrent ces deux techniques simultanément administrent une table de segments
et plusieurs tables de pages. Un segment peut contenir plusieurs pages mais toutes ne doivent pas
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
nécessairement être présentes en mémoire à tout moment. On ne garde en mémoire que celles qui sont
réellement utilisées. Chaque segment a sa propre table de pages (le cas pratique est celui du système Microsoft
Windows qu'un fichier appelé "win386.swp" d'une taille conséquente, proportionnelle aux besoins en
mémoire vive, fait son apparition).
Les périphériques de sortie tels que les imprimantes, les moniteurs ou encore les hauts parleurs. Sans
eux, rien ne sort d’un ordinateur.
Et enfin, les périphériques d’entrée/sortie tels que les disques durs externes, les clés USB, les lecteurs
de CD/DVD, les routeurs, les commutateurs, les répéteurs, les contrôleurs WLAN, les cartes réseau (NIC)
et bien d’autres encore qui fournissent à la fois une entrée à votre machine et reçoivent aussi des données.
III.3.1. Notion
La gestion des périphériques représente peut-être le défi le plus considérable d’un système
d’exploitation. Ce dernier doit contrôler tout un ensemble de périphériques avec des différences
multidimensionnelles. Rapidité du périphérique, volume des informations, service proposé, direction du flux
d’informations et protocoles de communications sont autant de grandeurs aux éventails très larges. Outre
cette diversité, le système d’exploitation doit pouvoir traiter un grand nombre de périphériques, ce
traitement doit se dérouler dans un environnement parallélisé. Les périphériques agissent en général
indépendamment de l’UC, en fonction de leur propre fréquence et synchronisation. Le système d’exploitation,
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
qui la plupart du temps s’exécute sur une seule UC, doit donc gérer des requêtes simultanées en
provenance d’un grand nombre de périphérique. III.3.2. Organisation des dispositifs d’E/S
Même si certains ordinateurs sont différents dans les détails, ils sont conçus autour de la même
philosophie. Les dispositifs d’E/S, le mémoire et l’UC communiquent par le biais d’un bus de communication.
Les machines les plus simples présentent un seul bus de communication. Mais les communications ne
peuvent avoir lieu qu’entre deux éléments à la fois. Un dispositif appelé « Arbitre de bus » décide quel
périphérique est autorisé à communiquer au prochain cycle. Celui-là peut communiquer avec n’importe quel
autre de son choix.
En principe, le bus est attribué à l’UC afin qu’elle puisse communiquer avec la mémoire. Des accès fréquents
à la mémoire et une vitesse relativement rapide de l’UC conduisent à une utilisation élevée du bus par cette
dernière. Bien que le bus leur soit fréquemment nécessaire, les E/S ont des besoins en communication
généralement plus urgents que les requêtes de l’UC. C’est pourquoi les requêtes des périphériques d’E/S
reçoivent souvent une priorité plus élevée. Le processus consistant à retirer le bus de l’UC pour l’attribuer à
un périphérique est appelé vol de cycle.
On peut trouver des bus multiples sur des machines pour des raisons de parallélisme et d’ajustement des
performances. Les bus multiples permettent à plusieurs communications de se dérouler simultanément. L’UC
peut par exemple communiquer avec un port série sur un bus alors qu’un disque communique avec la
mémoire sur un autre. Cependant l’avantage des bus multiples est assez limité. La plupart des
communications impliquent soit la mémoire, soit l’UC. Sans matériel multi-accès particulier, ils ne
peuvent communiquer qu’avec un seul dispositif à la fois. Les architectures PC les plus récentes ont souvent
recours à 3 types de bus outre celui du processeur de l’UC : le bus standard de connexion des périphérique,
bus PCI. Par ailleurs, un bus mémoire spécial permet des communications optimisées entre l’UC et la
mémoire ; un bus ISA (Industry standard architecture) est relié au bus PCI pour offrir une compatibilité
descendante pour les anciens périphériques.
74
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
75
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Pour réaliser les E/S, l’UC doit communiquer avec les modules d’E/S, qu’il s’agisse d’un périphérique ou d’un
contrôleur ou d’un canal. Chaque module d’E/S contient un ou plusieurs registres servant à la communication
avec le processeur.
En écrivant dans ces registres, le SE ordonne au périphérique de délivrer des données, d’en accepter, de
s’activer, désactiver ou effectuer une opération donnée (commande de périphérique). En lisant les registres, le
SE connaît l’état du périphérique. De nombreux périphériques sont équipés d’un tampon de données que le SE
peut écrire ou lire. Par exemple, la RAM vidéo contient les pixels affichés à l’écran. Cette RAM vidéo
est le tampon de données relatif au périphérique vidéo (carte graphique).
La scrutation : L’UC lance les opérations d’E/S puis retourne pour exécuter les processus du système.
Après des délais périodiques, l’UC fait une scrutation des périphériques d’E/S pour voir si l’un d’eux
a fini sa tâche ou non. Ce protocole est plus efficace que l’attente active, mais il est plus couteux.
76
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Les affichages monochromes de base n’ont besoin que d’un bit par pixel.
Les affichages par niveaux de gris (255 niveaux) ont besoin de 8 bits.
Les affichages couleurs réelles ont besoin de 24 bits : chaque pixels est généré par la combinaison des trois
couleurs primaires (rouge, vert et bleu : RGB ou RVB) ; 8 bits pour chacune de ces couleurs. Avec un
affichage couleurs réelles et pour un moniteur vidéo 1024×768, il nous faut 2,3 Mo pour stocker une
valeur de 24 bits pour chaque pixel.
Pour modifier une image à l’écran, de nouvelles données doivent être écrites en mémoire vidéo.
Compte tenu du grand volume de données multimédia cela peut représenter une charge importante sur le
77
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
système. Par exemple, une animation vidéo qui nécessite 25 image/seconde et 2,3 Mo par image réécrit
25 fois dans la mémoire vidéo par seconde donc un total de 58 Mo/seconde.
Le disque peut être considéré comme le seul périphérique d’E/S commun à tous les ordinateurs. Même
les moniteurs et les claviers ne sont pas indispensables sur des systèmes tels que les serveurs. Il existe de
nombreuses tailles et vitesses de disques et l’information peut être stockée de manière optique ou
magnétique. L’unité élémentaire de stockage d’informations est le secteur.
Les DVD et CD-ROM : les secteurs forment une longue spirale qui s’éloigne en tournant du centre du
disque.
Sur les disquettes et disques dans le support tourne à vitesse constante. Les secteurs sont organisés
en pistes. Les pistes sont des cercles concentriques autour du centre.
Certains disques stockent le même nombre de secteurs pour chaque piste. D’autres disques placent
plus de secteurs sur des pistes externes.
Les disques contiennent un ou plusieurs plateaux de support. Certain proposent d’utiliser les deux faces
du plateau et propose deux têtes de lecture/écriture par plateau.
78
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
SCAN : avance et recule la tête de Lecture/écriture entre la piste la plus interne et la plus externe et satisfait
en route toutes les requêtes de la piste en suspens.
LOOK : le même que SCAN, mais s’il n’y a pas de requêtes dans un sens la tête ne fait pas le déplacement
de façon inutile.
C-SCAN et C-LOOK : une fois la dernière piste est atteinte, les algorithmes retournent sur la piste de
départ.
N-step SCAN : file de requête divisée en sous files de longueur N. Ces files sont ordonnancées en
FIFO. Au sein des files les requêtes sont ordonnancées en SCAN.
FSCAN : tel que le précédent, mais seulement deux sous files illimitées : Une en cours de traitement et
l’autre pour les nouvelles requêtes (celles qui viennent lors du traitement).
79
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Les systèmes de fichiers permettent aux utilisateurs d’organiser des fichiers et d’autres objets de systèmes de
fichiers au moyen de répertoires. Un répertoire (dossier) est généralement défini comme un objet du
système de fichier contenant d’autres objets de systèmes de fichiers. Les entrées des répertoires déterminent
le chemin d’accès absolu ou nom associé à un objet du système de fichiers. En commençant par le
répertoire racine, le chemin d’accès absolu est construit en concaténant la séquence des noms parcourus
séparé par un «backslah» : \ sous windows ou Dos et un «slash» / sous linux ou Unix. La plupart des
systèmes prennent en charge la notion de répertoire courant ; au lieu de recourir à un chemin d’accès complet,
s’avérant très long, il est possible de spécifier un chemin d’accès relatif. 2) Noms de fichiers
Les noms de fichiers représentent des mécanismes d’abstraction qui permettent d’écrire des données et de les
trouver plus tard : chaque fichier est référencé par son nom. Le nom d’un fichier possède une longueur
maximale qu’il ne peut pas dépasser relativement au système d’exploitation (Dos : 8, Win_XP : 255).
Le nom est généralement composé de la partie nom et la partie extension séparés par un point. 3)
Partitions
80
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Les fichiers sont généralement stockés sur des unités de mémoire secondaire ; la mémoire vive peut néanmoins
être utilisée pour stocker des fichiers, tels que les fichiers temporaires, pour lesquels un accès rapide est
souhaité. La notion de partition peut également entrer en compte pour déterminer sur quelle unité doit être
stockée un fichier. Sur certains systèmes, comme Dos et Windows, la partition est spécifiée dans le chemin
d’accès. Le nom c:\rules\II2.txt (sous Dos ou Windows) indique que l’objet du système de fichiers nommé
\rules\II2.txt se trouve sur la partition c :.
Un raccourci : un raccourci est un pointeur vers un autre nom dans le système de fichiers. Dans la
plupart des cas, le fait de se référer à un raccourci revient à se référer au nom pointé par le raccourci. La
suppression du nom vers lequel pointe le raccourci laisse généralement le raccourci en suspens.
81
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Un tube : un canal de communication entre 2 processus. Un processus envoie des données dans le
tube l’autre processus lit ces données depuis le tube. Le tube met en mémoire tampon les données écrites
à l’intérieur, jusqu'à ce qu’un autre processus lise les données. Le tampon est généralement de taille
limitée et un processus qui écrit sur le tube doit être suspendu lorsque le tampon est plein. Les
tubes peuvent être nommés ou non. Comme ils n’ont pas de nom les identifiant, les tubes sans nom ne
sont généralement accessibles que par le processus les ayant créés ou les processus qui sont des descendant
du processus.
82
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Il existe deux méthodes fondamentales pour accéder à des informations au sein d’un fichier :
séquentielles et directes. Dans l’accès séquentiel, il faut accéder aux informations du fichier dans l’ordre dans
lequel elles ont été stockées dans le fichier. L’accès se déroule de manière séquentielle depuis le début jusqu’à
la fin. Les opérations de lecture ou d’écriture sur le fichier n’ont pas besoin de spécifier l’emplacement logique
au sein du fichier, car le système d’exploitation maintient un pointeur de fichier qui détermine l’emplacement
du prochain accès.
Avec l’accès direct, il est possible d’accéder à tout emplacement logique à l’intérieur du fichier.
Généralement, l’accès direct peut être réalisé de 2 manières : Soit en spécifiant l’emplacement logique auquel
accéder comme un paramètre à l’opération de lecture ou d’écriture, soit en spécifiant l’emplacement
d’une opération de positionnement pour qu’il soit appelé avant la lecture ou l’écriture. Les systèmes de base
de données utilisent deux opérations d’accès au système d’exploitation élémentaire pour mettre en
œuvre un large éventail de méthodes d’accès de haut niveau. Certains systèmes d’exploitation mettent
en œuvre des méthodes d’accès de haut niveau par eux-mêmes. Parmi toutes ces méthodes, l’accès indexé
est peut-être le plus significatif. Avec ce dernier, chaque enregistrement de fichiers dispose d’un ou
plusieurs champs. Un champ sert de champ d’indexe. Les opérations de lecture et d’écriture comprennent un
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
paramètre d’index. L’enregistrement avec la valeur d’index correspondante est l’enregistrement sur lequel est
effectuée l’opération.
Pour toute méthode d’accès, les opérations de lecture et d’écriture peuvent être synchrones ou
asynchrones. Les blocs d’E/S synchrones bloquent le processus jusqu’à la fin de l’opération d’E/S. Les E/S
asynchrones renvoient immédiatement le contrôle au processus, laissant le processus libre de continuer
à s’exécuter pendant lE/S. Si les opérations d’entrées sont asynchrones, il faut faire appel à certains
mécanismes pour avertir le processus que l’opération est terminée. Pour cela, il est possible d’envoyer un
signal au processus, d’attribuer une valeur particulière aux variables du processus ou de lancer un appel
système spécial pour tester l’état de l’opération dE/S. Les opérations de sortie asynchrones peuvent
recourir aux mêmes techniques de notifications ou n’offrir aucune notification.L’E/S synchrone représente la
norme qui simplifie considérablement la programmation d’application. La grande vitesse des opérations d’E/S
de fichier n’incite en rien à l’utilisation des E/S asynchrones. Cependant ces dernières peuvent parfois être
employées avec un périphérique d’E/S. 3) Contrôle des droits d’accès
Le contrôle des droits d’accès établit une limite quant aux personnes pouvant accéder aux fichiers et à la
manière dont elles peuvent y accéder. Le mécanisme de contrôle des droits d’accès le plus simple attribut un
accès illimité à tous les utilisateurs. Il s’agit là du modèle de contrôle d’accès choisi par DOS. Sur
un tel système, les utilisateurs qui souhaitent contrôler l’accès à leurs fichiers doivent mettre en place une
limite d’accès physique (et sur le réseau) de leur machine. Un aspect important du contrôle des droits d’accès
est le type d’opérations à réaliser sur le fichier. Les opérations contrôlées comprennent entre autre :
L’exécution : chargement du contenu d’un fichier dans la mémoire principale et création d’un processus
pour l’exécuter.
Le changement des droits d’accès : modifications de certains droits d’accès d’utilisateur en vue d’une
opération de contrôle.
L’autre caractéristique majeure du contrôle des droits d’accès est la manière dont il détermine ou non
d’octroyer l’accès. Le mécanisme le plus commun consiste à baser la décision sur l’identité de
l’utilisateur. Sur un système qui utilise une liste des droits d’accès, le système d’exploitation associe à chaque
fichier le type d’opérations autorisé à chaque utilisateur. Dans un modèle de droits d’accès illimité,
un ensemble indépendant de permissions est conservé pour chaque utilisateur, ce qui représente un
volume important de données.
Un mécanisme de contrôle des droits d’accès limité réduit ce volume en regroupant les permissions d’accès
pour un certain nombre d’utilisateurs ou de fichiers. Ainsi, de nombreux systèmes d’exploitation mettent
en œuvre la notion de groupes d’utilisateurs. Chaque utilisateur et chaque fichier sont associés à un ou
plusieurs groupes d’utilisateur. Au lieu d’avoir un ensemble de permissions d’accès pour chaque
utilisateur, le fichier possède uniquement un ensemble de permissions d’accès pour son propriétaire et
pour chaque groupe auquel il est associé. Tous les utilisateurs d’un groupe partagent les mêmes permissions
d’accès. Un autre groupement fréquemment utilisé consiste à demander à ce que tous les fichiers d’un
répertoire partagent les mêmes permissions.
L’autre base communément utilisée pour contrôler l’accès est le mot de passe. Pour réaliser une
opération sur un fichier, un utilisateur doit spécifier le mot de passe de fichier associé à cette opération (un
mot de passe de fichier est distinct de tout éventuel mot de passe d’ouverture de session). Comme avec les
listes de droits d’accès, le groupement peut réduire le volume des données maintenues par le système
d’exploitation (et réduire le nombre de mots de passe que doit retenir un utilisateur). Ainsi, tous les fichiers
d’un répertoire peuvent partager le même mot de passe. Les capacités constituent une variante intéressante des
listes de droits d’accès, mais cependant moins répandue. Sur les systèmes basés sur les capacités, les droits
d’accès, au lieu d’être associés aux fichiers, sont associés aux processus. Lorsqu’un accès au fichier est tenté,
le système d’exploitation vérifie le droit correspondant au fichier dans les droits d’accès associés au processus.
Le verrouillage des fichiers offre aux processus la possibilité de mettre en œuvre un accès exclusif à un fichier.
Trois grandes options existent dans la mise en œuvre du verrouillage :
Le verrouillage peut se limiter à l’ensemble des fichiers ou la mise en œuvre peut autoriser de
verrouiller certaines parties d’un fichier.
Le verrouillage peut s’appliquer à tout accès ou il peut exister différents niveaux. Sur certains
systèmes, il y à la fois des blocs de lecture et d’écriture. Un fichier verrouillé pour la lecture n’empêche
pas un autre accès en lecture, mais l’accès en écriture par d’autre processus est refusé.
Le verrouillage peut être soit obligatoire soit consultatif. Avec le verrouillage obligatoire, le système
d’exploitation refuse l’accès pendant que le fichier est verrouillé. Avec le verrouillage consultatif, les
primitives de verrouillage fournissent uniquement des informations sur l’état de verrouillage du fichier.
L’accès n’est restreint que si un processus vérifie l’état de verrouillage du fichier et respecte le verrouillage
qui est indiqué. Dans certaines circonstances, un système d’exploitation peut mettre en œuvre un mécanisme
de verrouillage implicite. 5) Attribution des blocs
La méthode d’attribution de blocs détermine comment les enregistrements d’un fichier sont attribués dans des
blocs.
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Attribution fixe des blocs : pour les fichiers avec des enregistrements de taille fixe, un nombre intégral
d’enregistrements est stocké dans chaque bloc. Aucun enregistrement ne peut être plus grand
qu’un bloc. Si la taille du bloc n’est pas un multiple de la taille de l’enregistrement, il y aura
de l’espace inoccupé à la fin du bloc. Le système d’exploitation peut calculer le bloc et l’offset à
l’intérieur du bloc de tout enregistrement, en fonction de la taille de l’enregistrement et du bloc.
Attribution non étendue de blocs : pour les systèmes avec des enregistrements de taille variable,
plusieurs enregistrements peuvent être stockés dans chaque bloc, mais aucun ne peut s’étendre sur
plusieurs blocs. Les enregistrements ne peuvent pas non plus être plus grands que la taille du bloc.
L’espace à la fin d’un bloc est gaspillé si le prochain enregistrement est plus important que cet espace.
Le système d’exploitation ne peut calculer l’emplacement d’un enregistrement, à mains qu’il ne
connaisse la taille de tous les enregistrements qui le précède.
Attribution étendue de blocs : les enregistrements peuvent être stockés dans plusieurs blocs. Il n’existe
aucune limite quant à la taille d’un enregistrement et il n’y a pas d’espace inutilisé à l’intérieur d’un
bloc. La seule manière de calculer l’emplacement d’un enregistrement d’un enregistrement consiste
à additionner la taille de tous les enregistrements qui le précède.
87
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
III.4.7. Allocation
Il existe 3 modèles de base pour allouer l’espace de la mémoire auxiliaire à des fichiers. Le
schéma d’allocation est chargé d’associer des blocs logiques d’un fichier à des blocs physiques de la mémoire
auxiliaire. Dans la plupart des systèmes d’exploitation, la taille d’un bloc physique est une puissance de 2
comprise entre 512 et 4096.
1) Allocation contiguë
Le modèle le plus simple est l’allocation contiguë. Les blocs logiques d’un fichier sont stockés dans une
partition de blocs physiques contigus. L’entrée du répertoire a uniquement besoin de stocker l’adresse
de la mémoire auxiliaire de départ du fichier ainsi que la taille de ce dernier. L’emplacement physique de tout
octet du fichier peut être calculé en ajoutant l’offset approprié à l’adresse de la mémoire auxiliaire de
départ de fichier.
Lorsqu’un fichier est créé, l’allocation contiguë requiert une pré-allocation d’espace pour le fichier. Le
système d’exploitation peut être conçu pour étendre l’allocation du fichier, si nécessaire. Si l’expansion est
autorisée et que l’espace de stockage au-dehors de la fin du fichier est utilisé, un ou plusieurs fichiers
doivent être déplacés pour loger le fichier le plus important. Les fichiers à déplacer doivent recevoir de
nouvelles partitions sur le disque, puis être copiés sur ces nouvelles partitions. 2) Allocation chainée
Dans l’allocation chainée, les blocs physiques dans lesquels est stocké un fichier peuvent être dispersés dans
l’ensemble de la mémoire auxiliaire. Les blocs physiques sont plus importants que les blocs logiques
et stockent à la fois le bloc logique et un pointeur vers le bloc physique dans lequel est stocké le prochain
bloc logique du fichier. L’entrée du répertoire stocke l’emplacement du premier bloc physique. Le bloc
physique associé au Nème bloc logique peut être déterminé uniquement en lisant les précédents blocs N-1 et
en suivant les liens qu’ils contiennent. Les performances des opérations d’adjonctions (écriture à la fin
d’un fichier) peuvent être améliorées de façon significative en incluant également dans l’entrée du répertoire
un pointeur vers le dernier bloc de la file.
3) Allocation indexée
L’allocation indexée est une variante de l’allocation chainée. Le bloc physique stocke seulement le bloc
logique, qui est par conséquent de la même taille qu’un bloc logique. Les liens vers les blocs physiques d’un
88
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
fichier sont stockés de manière contiguë dans une table d’index. L’entrée du répertoire contient soit la table
d’index soit un pointeur vers celle-ci.
Avec les allocations contiguës et chainées, il suffit au système de fichiers de stoker l’emplacement
physique de départ du fichier. Toutes les autres adresses peuvent être déterminées à partir de
l’emplacement de départ du fichier. Avec l’allocation indexée, le système de fichiers doit avoir une
entrée d’index pour chaque bloc du fichier. Pour minimiser le volume d’espace requis dans les
structures de répertoire, l’indexation à plusieurs niveaux peut être utilisée.
4) Espace libre
Outre le fait de garder la trace de l’emplacement de chaque fichier dans la mémoire auxiliaire, un
système d’exploitation doit aussi être capable d’identifier les blocs physiques qui ne sont alloués à
aucun fichier. Un certain nombre de mécanismes ont été utilisés pour maintenir la liste d’espace libre. Un bloc
est soit utilisé soit non utilisé ; son statut peut donc être stocké dans un seul bit. L’utilisation d’une série de
bits, un bit par bloc physique, crée un champ de bits d’espace libre. Les bits sont regroupés en aussi
peu de mots que possible. Bien que ce mécanisme fasse un usage efficace de l’espace, l’accès aux
informations sur un bloc particulier est ralenti par le traitement supplémentaire nécessaire à l’extraction
des informations en bits individuels depuis un mot.
Un tableau d’espace libre stocke les adresses de tous les blocs libres. Un bloc est utilisé si son adresse n’est
pas dans le tableau. Un tableau permet une implémentation efficace d’opérations d’ajout ou de suppression
des blocs de la liste d’espace libre. Cette liste peut également être maintenue en créant une liste chaînée de
tous les blocs libres. L’avantage de ce schéma est l’efficacité de l’utilisation de l’espace ; les blocs libres
stockent eux-mêmes des informations relatives à la liste d’espace libre.
Les logiciels de gestion des ressources informatiques impliquent le processus d'identification, d'acquisition,
de mise en service, de maintenance et d'élimination des périphériques et applications de réseau.
Identification : Les services informatiques doivent identifier le type de périphériques et de logiciels requis
pour les différents services de leur entreprise. Une fois ces types identifiés, l'étape suivante consiste à
chercher des fournisseurs à sélectionner et à déterminer la durée pendant laquelle vous souhaitez acheter
ces logiciels sous licence.
89
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Acquisition : Les ressources peuvent être acquises sous différentes formes ; par exemple, elles peuvent être
développées, achetées ou prêtées.
Intégration : Après l'achat, la ressource doit être installée à l'intérieur du réseau et intégrée à d'autres
éléments essentiels de votre entreprise.
Maintenance : Un bon entretien de ces ressources permettra de réduire les frais généraux de votre
entreprise. Un entretien régulier, des réparations et des mises à jour joueront un rôle essentiel dans le cycle
de vie.
Élimination : Une fois que les ressources ont dépassé leur durée de vie, les services informatiques doivent
les céder et en acquérir de nouvelles en fonction de ce qui est disponible sur le marché actuel ainsi que des
besoins de l'entreprise au moment de l'achat.
90
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
Conclusion
Relativement, l’ensemble de tout ce qui précède n’est pas de comprendre comment fonctionne un OS,
cependant la prise en main d’un système d’exploitation, selon la prédilection de l’enseignant. Avant de
basculer dans cette phase pilote nous avons d’abord présenté quelques aspects de la logique de tel ou tel autre
OS, qui justifie bon nombre d’astuces difficiles à cataloguer autrement. Ainsi, la connaissance des parties
précédentes permettra d’exploiter aux mieux tel ou tel autre système. Nous avons également évoqué la plupart
des tâches courantes et la façon de s’en acquitter, ce qui doit permettre aux nouveaux venus de retrouver
rapidement leurs marques d’usages d’un Système d’exploitation.
De son côté, l’informaticien doit être capable de déterminer ce qu'il veut faire, protéger et contre qui.
Connaissant ses propres vulnérabilités, une analyse de risque lui permettra d'identifier les scénarios d'attaques
réalistes et par conséquent de mettre en place les parades nécessaires à la protection de l’OS de son choix.
Bien plus, avec beaucoup d’aspects techniques et une forte compétition industrielle. Aujourd’hui, il existe un
système d’exploitation dans chaque ordinateur, tablette, téléphone portable, et plus généralement tout objet
numérique, avec sur le marché des dizaines de systèmes d’exploitation différents. Dans leur nom, on trouve
souvent le sigle OS pour Operating System, en anglais. Même si les constructeurs utilisent des noms différents
pour se démarquer de leurs concurrents, on retrouve dans tous les systèmes d’exploitation des aspects
communs et des invariants.
De surcroit, d’un ordinateur ou d’une tablette, on voit d’abord l’écran et le boîtier qui enferme le matériel
informatique (processeurs, mémoires et canaux d’entrées-sorties), toutefois, le système d’exploitation vient
alors au secours de l’utilisateur, en lui permettant d’exploiter l’ordinateur mieux qu’en langage machine. Mais
il fait plus que cela. Qui plus est, le but d’un système d’exploitation est de rendre aisée l’utilisation de
l’ordinateur par chacun, comme s’il s’agissait d’une machine fictive, sa « machine virtuelle », qui aurait été
construite pour lui. Le système fournit un accès commode et ergonomique.
Ni, le système d'exploitation est la passerelle entre l'utilisateur, les ressources et les applications. Lorsqu'un
programme est lancé, il ne communique pas directement avec un périphérique. Les instructions passent par le
BIOS qui fonctionne en mode arrière-plan puis le système d'exploitation, qui se charge de les transmettre au
périphérique. Les différents systèmes disponibles sur le marché se différencient de plusieurs façons,
notamment par leur caractère multitâche (capacité à exécuter plusieurs processus en même temps) et par la
91
Notes de Cours de Système d’Exploitation Doctorant. Msc. Ir. Charles MAPETO MATHUNDA
Enseignant d’Universités et Chercheur
CULC-KANANGA
longueur des informations qu'ils sont capables de gérer en même temps. Cette longueur est exprimée en bits
(16, 32 à 64 bits en général, plus chez les systèmes très performants).
En tout état de cause, l'OS joue aussi un rôle clé dans la gestion des ressources. Il dissocie les ressources
matérielles et les programmes, afin de mettre à disposition de l'utilisateur une interface plus simple, plus
intuitive et plus facile à manier. Cette gestion se décline en plusieurs volets. A l'aide d'un algorithme, le
système d'exploitation gère l'allocation du processeur. Il intervient aussi dans la gestion de la mémoire vive,
qui est limitée. Lorsqu'un manque d'espace libre est constaté, il crée des espaces libres appelés mémoire
virtuelle. L 'OS agit également sur le lancement et l'exécution des applications, en s'assurant que tous les
ingrédients nécessaires à leur fonctionnement soient réunis et en éliminant celles qui présentent un
dysfonctionnement. Son rôle s'étend à la gestion des fichiers (lecture, écriture et accès), des informations, des
entrées et des sorties. Les systèmes d'exploitation les plus utilisés sont Windows (3.1 / 95 / 98 / 2000 / XP / 7
/ 10), Mac OS X et Linux.
Finalement, le système d'exploitation est un ensemble de logiciels composé d'un noyau, le central de ce
complexe qui réalise toutes les tâches qui lui sont attribuées. La communication entre l'utilisateur et l'OS est
assurée par l'interprétateur de commande, parfois surnommé « coquille » (shell en anglais). Il renferme
également un système de fichiers. Les systèmes d'exploitation multitâches présentent un grand intérêt pour les
professionnels, notamment dans le cadre du travail collaboratif. Plusieurs utilisateurs peuvent utiliser la même
machine sans avoir l'impression que d'autres personnes sont connectées et peuvent, elles aussi, réaliser des
actions. Pour jouer son rôle de passerelle entre l'utilisateur et les applications, l'OS a emploie des pilotes
matériels.
92