Tse Bac 1
Tse Bac 1
SUPPORT DU COURS DE
THEORIES DE SYSTEME
D’EXPLOITATION
Destiné aux étudiants de BAC 1 Informatique de gestion
1
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
I. GENERALITES
Le système d'exploitation (SE) est un ensemble de programmes fondamentaux sur un appareil
informatique qui sert d'interface entre le matériel et les logiciels applications. Il est souvent
désigné par l'abrégé OS pour operating system en anglais.
Le système d'exploitation va gérer les disques durs, les périphériques, la mémoire, l'affichage,
etc.. et permettre à l'utilisateur de lancer des programmes (messagerie, traitement de texte, ...).
Le SE soustrait le matériel au regard du programmeur et offre une présentation agréable des
fichiers. Un SE a ainsi deux objectifs principaux :
• présentation : Il propose à l'utilisateur une abstraction plus simple et plus agréable
que le matériel : une machine virtuelle
d'usage partagé.
2
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
3
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
4
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
5
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
6
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
7
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
8
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
action sur le mot d'état. Pour réactiver la prise en compte, on réarme le niveau. Il est
évident qu'un déroutement ne peut être masqué; il peut toutefois être désarmé.
[Link] ressources
On appelle ressource tout ce qui est nécessaire à l'avancement d'un processus (continuation ou
progression de l'exécution) : processeur, mémoire, périphérique, bus, réseau, compilateur,
fichier, message d'un autre processus, etc... Un défaut de ressource peut provoquer la mise en
attente d'un processus. Un processus demande au SE l'accès à une ressource. Certaines
demandes sont implicites ou permanentes (la ressource processeur). Le SE alloue une ressource
à un processus. Une fois une ressource allouée, le processus a le droit de l'utiliser jusqu'à ce
qu'il libère la ressource ou jusqu'à ce que le SE reprenne la ressource (on parle en ce cas de
ressource préemptible, de préemption). On dit qu'une ressource est en mode d'accès exclusif si
elle ne peut être allouée à plus d'un processus à la fois. Sinon, on parle de mode d'accès partagé.
Un processus possédant une ressource peut dans certains cas en modifier le mode d'accès.
Exemple : un disque est une ressource à accès exclusif (un seul accès simultané), une zone
mémoire peut être à accès partagé. Le mode d'accès à une ressource dépend largement de ses
caractéristiques technologiques. Deux ressources sont dites équivalentes si elles assurent les
mêmes fonctions vis à vis du processus demandeur. Les ressources équivalentes sont groupées
en classes afin d'en faciliter la gestion par l'ordonnanceur.
4.4.L'ordonnancement
• Dans un système d'exploitation, il est courant que plusieurs processus soient
simultanément prêts à s'exécuter. II faut donc réaliser un choix pour ordonnancer dans
le temps les processus prêts sur le processeur, qui est dévolu à un ordonnanceur. Pour
les systèmes (le traitement par lots. l'algorithme d'ordonnancement est relativement
simple, puisqu'il consiste à exécuter le programme suivant de la file dès qu'un
emplacement se libère dans la mémoire de l'ordinateur (multi programmation). Pour les
systèmes multi-utilisateurs, mufti-tâches, et multi-processeurs. L'algorithme
d'ordonnancement peut devenir très complexe. Le choix d'un algorithme
d'ordonnancement dépend de l'utilisation que l'on souhaite faire de la machine. et
s'appuie sur les critères suivants:
• équité : chaque processus doit pouvoir disposer de la ressource processeur; efficacité:
l'utilisation du processeur doit être maximale.
• temps de réponse : il faut minimiser l'impression de temps de réponse pour les
utilisateurs
• interactifs.
9
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
• temps d'exécution : il faut minimiser le temps d'exécution pris par chaque travail exécuté
en traitement par lots.
• rendement : le nombre de travaux réalisés par unité de temps doit être maximal. En fait;
plusieurs de ces critères sont mutuellement contradictoires, et l'on a montré que tout
algorithme d'ordonnancement qui favorise une catégorie de travaux le fait au détriment
d'une autre. Qui plus est, rien ne permet de connaître à l'avance les demandes en
ressources de chacun des processus (E/S, mémoire, processeur) au cours de leur
exécution, et donc le temps passé entre deux appels système. Pour assurer l'équité entre
processus, il est donc nécessaire de mettre en œuvre un mécanisme de temporisation,
afin de rendre la main à l'ordonnanceur pour que celui-ci puisse déterminer si le
processus courant peut continuer ou doit être suspendu au profit d'un autre. On effectue
alors un ordonnancement avec réquisition du processeur, bien plus complexe à réaliser
que le simple ordonnancement par exécution jusqu'à achèvement, car il implique la
possibilité de conflits d'accès qu'il faut prévenir au moyen de mécanismes délicats
(sémaphores ou autres).
V. UTILISATION
Les utilisateurs et les programmeurs peuvent demander des services au système d'exploitation
par son interface de programmation, ses commandes ou son interface graphique.
a) Interface de programmation
Les appels système permettent des interactions entre un programme en cours d'exécution et le
système d'exploitation. L'utilisation d'appels système ressemble à celle de fonctions ou de sous-
routines ordinaires en langage C ou Pascal.
b) Commandes
Les commandes permettent à un utilisateur ou un programme de demander une opération au
système d'exploitation. Une commande est un programme qui effectue un appel système selon
la demande de l'utilisateur.
c) Interface graphique
L'interface graphique permet une manipulation intuitive par l'intermédiaire de pictogrammes.
Cette interface, qui n'est pas une partie essentielle du système d'exploitation, et qui cache tous
les détails intrinsèques de celui-ci, est souvent considérée comme un complément.
POSIX (acronyme de l'anglais Portable Operating System Interface) est une norme relative à
l'interface de programmation du système d'exploitation. De nombreux systèmes d'exploitation
sont conformes à cette norme, notamment les membres de la famille Unix.
10
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
d) Processeur
Lorsqu’il est multitâche, le système d'exploitation permet à plusieurs utilisateurs de se servir de
l'ordinateur et donne à chaque utilisateur l'impression qu'il est le seul à utiliser l'ordinateur. Pour
ce faire, l'utilisation du processeur est planifiée : chaque programme est exécuté durant une
tranche de temps déterminé, puis le système d'exploitation bascule sur l'exécution d'un autre
programme.
e) Processus
Un processus est un ensemble d'instructions qui sont en train d'être exécutées. Les instructions
proviennent d'un programme, et l'exécution nécessite du temps, de la mémoire, des fichiers et
des périphériques. Le système d'exploitation s'occupe de créer, d'interrompre, et de supprimer
des processus. Plusieurs processus se trouvent en mémoire centrale en même temps.
La responsabilité du système d'exploitation est de réserver de la mémoire, de planifier
l'exécution, de s'occuper des interblocages et d'assurer les communications entre les processus.
L'ordonnanceur (anglais scheduler) associe un processus à un processeur, puis plus tard le
dissocie du processeur pour associer un autre processus. Cette opération associer / dissocier est
appelée context switch. Lors de la planification, le système d'exploitation tient compte de la
disponibilité, ou non, des ressources utilisées par le processus. Certains systèmes d'exploitation
créent des processus pour effectuer certaines tâches propres au système.
Lors de l'exécution du programme, celui-ci peut demander de réserver des ressources de
l'ordinateur. L'exécution de ce programme peut être interrompue et le système d'exploitation
continue l'exécution d'un autre programme, cependant les ressources restent réservées9.
Lorsqu'un autre processus demande une ressource déjà réservée, le processus est mis en attente.
En situation de forte compétition plusieurs processus peuvent être en attente de la même
ressource. Lorsque la ressource est libérée le système d'exploitation décide alors quel est le
prochain processus auquel la ressource sera réservée. La stratégie d'octroi des ressources par le
système d'exploitation vise à répondre équitablement à toutes les demandes et éviter des
conflits.
f) La communication inter-processus
Dans certains logiciels applicatifs, plusieurs programmes effectuent la même tâche
simultanément, et s'échangent des informations. Le mécanisme de protection de la mémoire
empêche aux programmes de manipuler les mêmes informations, et ceux-ci doivent faire appel
à des services du système d'exploitation.
11
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
g) Mémoire
Le système d'exploitation dirige l'utilisation de la mémoire. Il retient la liste des emplacements
de mémoire utilisés, et par qui, ainsi que la liste des emplacements libres. Le système
d'exploitation réserve un emplacement de mémoire lorsqu'un processus le demande, et le libère
lorsqu'il n'est plus utilisé, par exemple lorsque le processus s'est arrêté.
Les fonctions de contrôle de l'utilisation de la mémoire vont en particulier suivre l'utilisation de
celle-ci, quels emplacements sont libres, lesquels sont utilisés, et par qui. Ces fonctions vont
également décider quel programme reçoit de la mémoire, quand et quelle quantité est mise à
disposition et récupérer la mémoire qui était utilisée par un programme après son exécution,
que le programme se soit arrêté volontairement ou accidentellement.
La quantité de mémoire utilisée par l'ensemble du système informatique dépend essentiellement
de la manière dont le système d'exploitation effectue les réservations.
Dans les systèmes d'exploitation contemporains, plusieurs programmes sont exécutés en même
temps et utilisent simultanément la mémoire centrale. Si un processus modifie -
accidentellement ou intentionnellement - un emplacement de mémoire utilisée par un autre
processus, il met celui-ci en danger. S'il modifie un emplacement utilisé par le système
d'exploitation il met en danger l'ensemble du système informatique.
Pour éviter un tel incident, le système d'exploitation réserve à chaque programme un espace
d'adressage un emplacement en mémoire que seul le programme en question peut manipuler.
Le système d'exploitation détecte toute tentative d'accès en dehors de l'espace d'adressage et
provoque l'arrêt immédiat du programme qui tente d'effectuer telles opérations, par le biais
d'une erreur de protection générale.
h) La mémoire virtuelle
Le mécanisme dit de mémoire virtuelle est destiné à simuler la présence ou l'absence de
mémoire centrale par manipulation de l'unité de gestion mémoire — un composant électronique
(anglais Memory Management Unit abrégé MMU). C'est un mécanisme courant dans les
systèmes d'exploitation contemporains.
La mémoire virtuelle permet d'exécuter simultanément plus de programmes que ce que la
mémoire centrale peut contenir. Chaque programme n'ayant pas besoin que la totalité des
informations qu'il manipule soit présente dans la mémoire centrale, une partie des informations
est stockée dans la mémoire de masse (en général dans un fichier ou une partition de disque
dur) habituellement plus importante mais plus lente et sont transférées en mémoire centrale
lorsque le programme en a besoin.
12
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Les programmes disposent d'un (ou plusieurs) espaces virtuels de mémoire continus pour
travailler. Les adresses des données sont dites virtuelles dans la mesure où l'information
adressée ne se trouve pas forcément ni en mémoire centrale, ni à l'adresse indiquée. Lorsque le
programme essaie de lire ou écrire une donnée dans sa mémoire virtuelle, l'unité de gestion de
mémoire cherche l'adresse physique correspondant à l'adresse virtuelle sollicitée grâce à
une table de correspondance. Si l'emplacement n'est pas présent en mémoire centrale (on
appelle cela une faute de page), il n'y aura évidemment aucune adresse physique
correspondante. Le système d'exploitation devra alors chercher à libérer un espace en mémoire
centrale en échangeant (anglais swap) le contenu d'un emplacement donné de mémoire centrale
avec le contenu sollicité, qui se trouve en mémoire de masse. Cette opération s'effectue
automatiquement, à l'insu des programmes.
Des mémoires associatives, incorporées dans l'unité de gestion de mémoire, accélèrent le calcul
des adresses. Les systèmes d'exploitation utilisent généralement deux mémoires associatives :
une pour le mode noyau et une pour le mode utilisateur. La mémoire du mode noyau est
arrangée de manière à permettre au processeur d'utiliser la totalité de la mémoire centrale
disponible lors de l'exécution des programmes du noyau du système d'exploitation. Tandis que
celle du mode utilisateur est arrangée de manière à protéger le noyau (qui est ainsi invisible
pour le programme en question) lors de l'exécution des programmes hors du noyau. C'est ce
que l'on nomme la protection, et ces mécanismes constituent les principales caractéristiques
du mode protégé.
Chaque programme dispose de sa propre table de correspondance, ce qui permet de les isoler
les uns des autres. Lors d'une commutation de contexte, le système d'exploitation placera la
table du programme courant dans la mémoire associative. Le système d'exploitation crée
également de nouvelles tables pour les programmes qui démarrent et décide quels
emplacements de mémoire virtuelle seront ou ne seront pas présents en mémoire centrale.
i) Périphériques
Les périphériques sont tous les dispositifs informatiques qui permettent au processeur de
communiquer avec l'extérieur : clavier, imprimante, carte réseau, mémoire, disque dur9. Ils ont
tous besoin d'un driver (pilote) pour fonctionner. Ils permettent en particulier de recevoir des
informations, d'en envoyer, ainsi que de stocker des informations les collecter dans le but de
les renvoyer plus tard.
Une des responsabilités du système d'exploitation est de suivre l'état d'utilisation libre ou
réservé de tout le matériel du système informatique. Lorsqu'un matériel libre est demandé par
13
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
14
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
entre plusieurs utilisateurs, modifier le contenu des fichiers et créer des répertoires (permettant
de classer et d'organiser les fichiers). La vitesse du système informatique dépendra de la vitesse
de manipulation des fichiers.
Le système d'exploitation permet en particulier de manipuler les attributs : les caractéristiques
du fichier tels que son nom, la date de création, le type du contenu, la taille et l'emplacement.
Il permet également de manipuler les permissions : des autorisations qui indiquent si un
utilisateur pourra lire, écrire ou exécuter le fichier.
Le système d'exploitation tient compte du système de fichiers : la manière dont les fichiers sont
organisés et répartis sur un dispositif de stockage.
Les mémoires amovibles telles que les CD ou les DVD ont une disposition normalisée dont les
spécifications sont publiques, ce qui assure leur reconnaissance par tous les systèmes
d'exploitation (voir ISO 9660 et UDF ainsi que l'hybride ISO/UDF).
Lorsque le système de fichier est distribué, et que les fichiers sont donc stockés sur différents
ordinateurs d'un réseau informatique, le système d'exploitation envoie une requête à l'ordinateur
stockant le fichier pour chaque opération à effectuer (voir NFS ou CIFS).
Dans un système d'exploitation multi-utilisateurs, les programmes manipulant le système de
fichiers effectuent des contrôles pour vérifier qu'aucun fichier n'est manipulé par une personne
non autorisée. Ce type de système d'exploitation refusera toute manipulation non autorisée.
m) Réseau
Dans un réseau informatique, deux ordinateurs reliés communiquent dès lors que les
communications se font de part et d'autre selon les mêmes protocoles réseau. Selon le modèle
OSI, les différents protocoles existants sont répartis sur sept niveaux, où un protocole d'un
niveau donné peut être combiné avec n'importe quel protocole des niveaux situés en dessus et
en dessous (voir encapsulation).
Un système d'exploitation contient typiquement plusieurs programmes nécessaires pour des
échanges d'informations dans différents protocoles des niveaux 1 à 4. Tandis que les niveaux 5
à 7 sont pris en charge par les logiciels applicatifs et les middleware.
Pour les échanges d'informations selon les protocoles de niveau 1 et 2, le système d'exploitation
demande l'opération au matériel de l'ordinateur par l'intermédiaire d'un pilote informatique,
pilote qui peut faire partie intégrante du système d'exploitation ou être fourni par le constructeur
du matériel.
Lors de l'envoi d'informations sur le réseau, un logiciel applicatif crée une information, la met
en forme conformément aux protocoles des niveaux 7 à 5, puis la transmet au système
d'exploitation. Divers programmes du système d'exploitation vont découper cette information
15
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
en trames, puis vont mettre en forme les trames et les envoyer conformément aux protocoles
des niveaux 4 à 1.
Lors de la réception de trames depuis le réseau, divers programmes du système d'exploitation
vont tenter de les décoder conformément à différents protocoles des niveaux 1 à 4, puis
transformer la suite de trames en un flux continu, qui sera envoyé au logiciel applicatif
destinataire. Le logiciel va alors décoder le flux conformément aux protocoles de niveaux 5 à
7. Le logiciel applicatif effectue préalablement une connexion, c'est-à-dire une liaison logique
par laquelle il va s'associer avec un flux particulier.
Le choix exact des protocoles utilisés dépend de l'ordinateur concerné et des liaisons réseau qui
vont être utilisées. Divers paramètres de configuration permettent d'influencer le choix des
protocoles. Ils permettent par exemple d'empêcher l'utilisation de protocoles interdits sur le
réseau concerné.
n) Contrôle d'accès
Les systèmes d'exploitation contemporains permettent à plusieurs usagers de se servir
simultanément de l'ordinateur. Le système d'exploitation comporte des mécanismes destinés à
contrôler l'utilisation des ressources par les utilisateurs, les processus et les programmes. Ces
mécanismes permettent de certifier l'identité du programme ou de l'utilisateur et l'autoriser à
accéder à une ressource en application de règlements de sécurité.
Les mécanismes de sécurité du système d'exploitation servent à protéger le système
informatique de l'intérieur comme de l'extérieur : les mécanismes de sécurité intérieure
protègent les processus les uns des autres, et assurent la fiabilité du système informatique. Les
mécanismes de sécurité extérieure protègent les données et les programmes enregistrés dans
l'ordinateur contre des accès non autorisés et des erreurs de manipulation. Le système
d'exploitation empêche la lecture par des personnes non autorisées, la falsification, la
suppression de données, ainsi que l'utilisation non autorisée de périphériques.
Plusieurs programmes sont exécutés en même temps et utilisent simultanément la mémoire
centrale. Si un processus modifie accidentellement ou intentionnellement un emplacement de
mémoire utilisée par un autre processus, il met celui-ci en danger. S'il modifie un emplacement
utilisé par le système d'exploitation il met en danger l'ensemble du système informatique.
Pour éviter tel incident, le système d'exploitation réserve à chaque programme un espace
d'adressage - un emplacement en mémoire que seul le programme en question peut manipuler.
Le système d'exploitation détecte toute tentative d'accès en dehors de l'espace d'adressage et
provoque l'arrêt immédiat du programme qui tente d'effectuer de telles opérations.
16
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
17
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Lors des manipulations de la souris, le système d'exploitation déplace l'élément d'image qu'est
le pointeur et effectue les calculs nécessaires pour déterminer quel est l'élément de l'image qui
se trouve juste en dessous. À chaque élément de l'image peut être associé un programme.
Un widget est un programme qui dessine et anime un élément d'image dont l'aspect peut-être
celui d'un bouton poussoir, d'une lampe témoin, d'un ascenseur, d'une zone texte, d'un menu,
etc. Divers widgets sont fournis avec l'interface graphique.
Les programmes pour interface graphique sont aujourd'hui (2011) inclus dans tous les systèmes
d'exploitation contemporains. Le X Window System est l'ensemble des programmes pour
interface utilisateur graphique inclus dans tous les systèmes d'exploitation de la famille Unix.
Pour Windows, l'équivalent est le programme Explorer, aussi nommé Explorateur Windows (à
ne pas confondre avec Internet Explorer).
q) Logiciels utilitaires
Un logiciel applicatif sert à assister l'utilisateur dans une activité. Les logiciels utilitaires sont
des logiciels applicatifs qui permettent à l'utilisateur d'effectuer des manipulations basiques
telles que démarrer des programmes, copier des fichiers ou modifier des paramètres
de configuration. Divers logiciels utilitaires sont fournis avec les systèmes d'exploitation.
Un interpréteur de commandes est un programme qui permet d'exécuter d'autres programmes
en écrivant leur nom éventuellement suivi de divers paramètres. Il est accompagné de plusieurs
programmes qui permettent la manipulation des fichiers (copie, changement de nom…). Ce
type de programme est utilisé pour effectuer des manipulations ou exécuter des scripts — suites
de manipulations pré-enregistrées (voir commande informatique). Ce type de programme est
souvent fourni avec le système d'exploitation, mais rien n'y oblige, et on peut très bien en
importer.
Un environnement de bureau est un programme dans lequel les différents éléments de
l'ordinateur (programmes, fichiers, disques durs) sont présentés sous forme de pictogrammes
sur lesquels il est possible d'effectuer différentes actions. Il permet d'exécuter des programmes,
d'effectuer différentes opérations sur les fichiers (copie, changement du nom, déplacement ou
suppression).
Certains programmes permettent à l'utilisateur de modifier les paramètres de configuration du
système d'exploitation. Ceux-ci proposent des listes à choix multiples et effectuent des
contrôles de validité avant le modifier les paramètres.
D'autres programmes servent à installer des logiciels, c'est-à-dire copier les fichiers dans les
emplacements prévus à cet effet, et effectuer les modifications de configuration nécessaire pour
18
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
rendre le logiciel opérationnel. Ces programmes peuvent aussi servir à consulter la liste des
logiciels actuellement installés dans l'ordinateur.
Un système d'exploitation multi-utilisateurs est en général fourni avec des programmes
permettant de surveiller l'utilisation par autrui de l'ordinateur consultation
de journaux d'activité ou de modifier les listes de droits d'accès en vue d'autoriser ou d'interdire
un fichier à certains utilisateurs.
VI. TYPOLOGIE
Il existe cinq générations de systèmes d'exploitation : par lots (batch), multi programmés, en
temps partagé, temps réel, et distribués. Chacun des principes mis en œuvre dans une génération
se retrouve dans les générations suivantes.
Un système de traitement par lots (batch) est prévu pour l'exécution de grands calculs les uns
après les autres, avec peu d'intervention utilisateur.
À partir de la génération des systèmes d'exploitation multi-programmés, plusieurs programmes
sont exécutés simultanément par planification (scheduling). Dans ces systèmes d'exploitation
multitâches, plusieurs programmes résident dans la mémoire centrale et le système
d'exploitation suspend régulièrement l'exécution d'un programme pour continuer l'exécution
d'un autre.
Dans la génération des systèmes multi-programmés, l'exécution simultanée de plusieurs
programmes vise l'utilisation efficace de la puissance de calcul du processeur.
Dans la génération des systèmes en temps partagé l'exécution simultanée de plusieurs
programmes vise à répondre rapidement aux demandes de plusieurs utilisateurs en
communication directe avec l'ordinateur.
Un système d'exploitation temps réel doit garantir que toute opération se termine dans un délai
donné, en vue de garantir la réussite du dispositif dans lequel l'ordinateur est utilisé.
Un système distribué dirige l'utilisation des ressources de plusieurs ordinateurs à la fois. Il
utilise les capacités d'un réseau informatique, contrôle un groupe de machines, et les fait
apparaître comme une machine unique, virtuelle, de très grande capacité.
Chaque système d'exploitation est conçu pour fonctionner avec une gamme particulière de
machines (type de processeur, constructeur, architecture). Si un système d'exploitation est
disponible pour plusieurs gammes de machines différentes, alors le même code source
est compilé et adapté à chaque gamme de machines. La palette de pilotes inclus dans le système
d'exploitation est adaptée au matériel informatique disponible sur le marché pour cette gamme
de machines.
19
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
20
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
21
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
déterminé, puis le système d'exploitation bascule sur l'exécution d'un autre programme, ce qui
évite qu'un programme monopolise l'utilisation du processeur au service d'un utilisateur,
entraînant des retards pour les autres utilisateurs.
Les systèmes d'exploitation en temps partagé mettent en œuvre la technique du swap : lorsque
le programme en cours d'exécution a besoin de plus de mémoire que celle disponible, un autre
programme inactif est retiré pour gagner de la place, le programme inactif est alors enregistré
temporairement sur le disque dur. L'enregistrement sur disque provoque cependant une perte
de temps non négligeable.
En 2011, de nombreux systèmes d'exploitation sont basés sur Unix, un système en temps
partagé.
D. Quatrième génération : le temps réel
Les systèmes d'exploitation temps-réel sont apparus au milieu des années 1970, notamment
chez Hewlett-Packard. Ils sont destinés aux dispositifs devant non seulement donner des
résultats corrects, mais les donner dans un délai déterminé. Ces systèmes d'exploitation sont
souvent utilisés par des ordinateurs reliés à un appareil externe (pilotes automatiques, robots
industriels, applications vidéo et audio) pour lequel un retard de réponse de l'ordinateur
entraînerait un échec de l'appareil.
Dans ces systèmes d'exploitation, l'accent est mis sur la durée nécessaire pour effectuer chaque
opération, pour répondre aux demandes rapidement en vue de satisfaire aux contraintes de
temps du système dans lequel il est utilisé.
Certains services offerts par ces systèmes d'exploitation sont réalisés comme des logiciels
applicatifs, et sont exécutés en concurrence avec ceux-ci. Un système d'exploitation temps réel
autorise un contact direct entre les logiciels applicatifs et les périphériques. Dans certains
systèmes temps réel les ressources sont réservées, évitant ainsi les ralentissements que
provoqueraient les réservations à la volée, et garantissant que les ressources sont
continuellement disponibles.
Les systèmes d'exploitation temps-réel évitent d'utiliser la technique du swap en raison des
risques de dépassement des délais.
RTX, Windows CE, Embedded Linux, Symbian OS, Palm OS et VxWorks sont des systèmes
d'exploitation temps réel.
E. Cinquième génération : les systèmes distribués
La baisse des prix du matériel informatique a permis, dans les années 1990, la création de
systèmes informatiques composés de plusieurs ordinateurs, et donc plusieurs processeurs,
plusieurs mémoires, et de nombreux périphériques. Un système distribué permet le partage des
22
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
ressources entre les ordinateurs. Un utilisateur d'un ordinateur bon marché peut se servir de
ressources coûteuses existant sur un autre ordinateur.
Mach, Amoeba, Andrew, Athena, et Locus sont des systèmes d'exploitation distribués. Ils ont
tous été développés par des universités.
VII. HISTOIRE
L'histoire des systèmes d'exploitation est fortement liée à celle des ordinateurs. Les premières
générations d'ordinateurs, dans les années 1945 à 1955, ne comportaient pas de système
d'exploitation. Dans ces ordinateurs équipés de tubes à vide, les programmes manipulaient les
ressources matérielles de l'ordinateur sans passer par un intermédiaire. L'ordinateur était utilisé
par une seule personne à la fois : la tâche de l'opérateur consistait à placer des piles de cartes
perforées dans le lecteur, où chaque carte comportait des instructions d'un programme ou des
données. Les ordinateurs à tube à vide de cette génération n'avaient qu'une faible puissance de
calcul, ils étaient volumineux, peu commodes et peu fiables (les tubes à vide grillaient souvent).
§ 1960, la multiprogrammation
Dans les années 1960, avec l'arrivée des circuits électroniques à semi-conducteurs, la puissance
de calcul des processeurs a augmenté de manière significative. Cela a permis la réalisation de
systèmes d'exploitation rudimentaires : les ordinateurs ont été équipés d'un spooler file d'attente
permettant d'utiliser la puissance de calcul du processeur pendant que l'opérateur introduit les
cartes. L'utilisation des ressources matérielles par les programmes se faisait alors par
l'intermédiaire d'une bibliothèque logicielle. Il a alors été possible de placer en mémoire
plusieurs programmes simultanément et de les exécuter simultanément ; un programme
dit resident monitor résidait continuellement dans la mémoire centrale et contrôlait l'exécution
des différents programmes.
En 1965 le Massachusetts Institute of Technology (MIT) se lance dans la création du premier
système d'exploitation multitâche et multi-utilisateurs : Multics (pour MULTiplexed
Information and Computing Service, ou service multiplexé d'information et de calcul). Sur le
principe de la multiprogrammation, le système d'exploitation autorisait le chargement de
plusieurs programmes en mémoire et gérait le passage de l'un à l'autre, mais cette fois-ci sans
attendre le blocage d'un programme. Chaque programme était exécuté pendant une durée de
quelques millisecondes, puis le système passait au suivant. Ce temps, très court, donnait
l'illusion que les programmes s'exécutaient simultanément une illusion qui existe encore avec
les systèmes d'exploitation contemporains.
De plus, ces programmes pouvaient appartenir à des utilisateurs distincts, chacun ayant
l'impression que la machine travaille uniquement pour lui. La possibilité pour un ordinateur de
23
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
24
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
25
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
26
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
§ Noyau à micronoyau
Dans la construction micronoyau, le kernel fournit les services minimum : de nombreuses
fonctions du système d'exploitation ont été retirées du noyau et sont offertes par des
programmes manipulés par celui-ci, qui sont ce que l'on appelle des services (pour un système
en mode protégé, la grande différence avec un système monolithique sera que ces services
seront exécutés dans l'espace mémoire utilisateur et non celui du noyau).
Les appels de fonction au système d'exploitation par les programmes utilisateurs ont été
remplacées par des envois de message31. Dans cette construction le noyau est utilisé
principalement pour planifier l'exécution de processus, et pour échanger des
messages. AIX, BeOS, Mach, Hurd, MacOS X, Minix et QNX sont des systèmes d'exploitation
qui utilisent cette construction ;
§ Noyau hybride
La construction hybride ressemble à une construction microkernel, cependant certaines
fonctions ont été placées dans le noyau pour des raisons d'efficacité. Windows
NT, 2000 et XP (et également les Windows plus récents) ainsi que DragonFly BSD sont en
construction hybride ;
§ Système organisé par couches
Le principe de la répartition par couches est que chaque module d'une couche donnée utilise
uniquement des fonctions offertes par les modules qui se trouvent dans la couche au-dessous.
L'organisation en couche n'est pas unique aux systèmes d'exploitation et est couramment
appliquée aux logiciels applicatifs. Dans un système d'exploitation, les couches inférieures
concernent les périphériques et la mémoire ; au-dessus desquelles se trouvent les systèmes de
fichiers, puis les processus. Ces couches constituent la normalisation de la machine : pour un
programme utilisateur et un système d'exploitation donné, tous les ordinateurs seront identiques
(ou presque). C'est ce que l'on nomme l'abstraction matérielle.
§ Appels système
Le kernel étant dans un emplacement protégé, il est impossible pour un logiciel applicatif
d'appeler directement ses fonctions. Un mécanisme permet aux logiciels applicatifs de
demander des services au système d'exploitation. Il est typiquement mis en œuvre par une
bibliothèque. Celle-ci comporte des fonctions bouchon qui consistent à placer les paramètres
selon une convention, puis utiliser une instruction du processeur qui provoque la mise en pause
du processus en cours et l'exécution du système d'exploitation. Les fonctions de bouchon
s'utilisent comme les fonctions ordinaires d'une bibliothèque.
27
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
§ Noyau client-serveur
Dans une construction client-serveur, le cœur du système d'exploitation a pour seule fonction
d'assurer la communication entre les modules. Le système d'exploitation est divisé en nombreux
petits modules qui sont exécutés de la même manière que des logiciels applicatifs. Cette
construction est bien adaptée aux systèmes d'exploitation distribués ;
§ Principe de machine virtuelle
Le principe des machines virtuelles, est qu'une application spécifique (l'hyperviseur) crée
l'illusion qu'il existe plusieurs machines, aux capacités plus limitées, en utilisant une machine
aux capacités plus étendues. Le cœur du système de virtualisation est un moniteur qui crée les
illusions — machine virtuelle. Celles-ci peuvent être utilisées pour exécuter un autre système
d'exploitation.
28
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Quelques exemples
Année
Nom Famille Éditeur Matériel pris en charge Utilisation Noyau Graphique Multitâche Multi-utilisateur Multiprocesseur Temps réel
d'apparition
ordinateurs personnels,
1973 SYSMIC R2E Micral
stations de travail
serveurs, ordinateurs
1977 VMS DEC VAX, DEC Alpha, Hewlett-Packard
centraux
Quantum
compatibles systèmes embarqués,
1982 QNX Software
PC, MIPS, PowerPC, ARM automates industriels
Systems
ordinateurs personnels et
1985 AmigaOS Commodore Commodore Amiga, PowerPC 33
consoles de jeu
ordinateurs personnels,
1986 AIX Unix IBM PS/2, RS/6000, PowerPC serveurs, stations de 34
travail, superordinateurs
stations de travail et
1986 Irix Unix SGI machines de SGI
serveurs
29
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Andrew
1987 Minix Compatible PC, m68k, SPARC (pédagogique)N 8 35
Tanenbaum
téléphones
Symbian
1989 Symbian ltd Nokia, Siemens, Samsung, Panasonic mobiles, smartphone, 36
OSN 9
assistants personnel
Windows
1990 Windows Microsoft Surcouche logicielle à DOS ordinateurs personnels 37
3.x
serveurs, stations de
1991 Solaris Unix Sun machines de Sun et x86/64
travail, superordinateurs
serveurs, stations de
Windows
1991 Windows Microsoft Compatible PC travail, ordinateurs
NT
personnels
smartphone, assistants
Windows
1996 Windows Microsoft x86, MIPS, ARM38 personnels, automates 39
CE
industriels
30
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
ordinateurs personnels,
1999N 18 Mac OS X Unix Apple x86, PowerPC d'Apple
serveurs, station de travail
BlackBerry Research In
1999 téléphones mobiles de BlackBerry smartphone ?? ??
OS Motion
smartphone, tablette
appareils d'Apple
2007 iOS Unix Apple électronique, baladeur ??
(iPhone, iPod, iPad…)
numérique
smartphone, tablette
2007 Sailfish OS Unix Jolla appareils de la firme Finlandaise Jolla ??
électronique
31
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Le marché
32
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
33
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
« compatible » avec l'autre. La compatibilité au niveau source est la capacité pour un système
d'exploitation A d'exécuter un logiciel applicatif créé pour B après avoir compilé le code
source du logiciel pour la machine A. Et la compatibilité binaire est la capacité pour un système
d'exploitation A d'exécuter un logiciel applicatif créé pour B tel quel, sans avoir à le recompiler.
L’interopérabilité est la capacité pour plusieurs systèmes à être utilisés ensemble, par exemple
dans un même appareil, ou dans un réseau informatique.
Pour être compatibles, deux systèmes d'exploitation doivent avoir des points communs,
notamment sur l'interface de programmation. La compatibilité binaire n'est possible qu'entre
deux systèmes d'exploitation qui fonctionnent avec la même famille de processeur.
La compatibilité et l'interopérabilité entre les systèmes d'exploitation sont assurées, par les
éditeurs, par alignement de leur produit sur des normes industrielles ainsi que des technologies
rendues publiques.
Le système d'exploitation Unix, créé en 1969, a servi de source d'inspiration pour toute une
famille de systèmes d'exploitation. Le jeu de la concurrence, très vif dans les années 1980, a
conduit les différents membres de la famille Unix à s'éloigner, et perdre la compatibilité les uns
avec les autres. Des organismes de normalisation tels que Open Group se sont penchés sur le
problème et ont édicté des normes garantissant la compatibilité à travers toute la famille Unix.
Entre 1995 et 2007, Microsoft, éditeur de la suite de systèmes d'exploitation Windows a été
l'objet de plusieurs procès pour des pratiques anticoncurrentielles nuisant à la concurrence et à
l'interopérabilité. La société a été condamnée par le département de la justice des États-Unis
pour violation du Sherman Antitrust Act, ainsi que par la Commission européenne pour
violation des traités relatifs à la concurrence dans l'Union européenne.
La popularisation d'Internet dans les années 1990 a contribué à améliorer l'interopérabilité entre
les systèmes d'exploitation.
ü La guerre des Unix et l'Open Group
Le système d'exploitation Unix a été développé par American Telephone & Telegraph (AT&T).
Jusqu'en 1975, un accord avec l'État fédéral américain lui interdisait de commercialiser Unix,
ayant le monopole de la téléphonie aux États-Unis, le code source du système d'exploitation
était par conséquent public. Mais en 1975, ce monopole fut attaqué en justice et en 1982, la
société était démembrée par décision de justice. AT&T, née de la fragmentation des activités
d’American Telephone & Telegraph, put enfin commercialiser Unix : les ingénieurs de la
société partirent du code source de la version 7 (ouverte) pour aboutir à UNIX System V.
Simultanément, d'autres éditeurs s'inspirèrent de la version 7 pour créer des systèmes Unix,
notamment l'université de Berkeley, avec sa Berkeley Software Distribution54 (BSD, 1979).
34
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Puis ceux-ci ont servi de source d'inspiration pour d'autres systèmes d'exploitation, et ainsi de
suite. En 2009, la famille Unix comptait plus de 25 systèmes d'exploitation.
Le jeu de la concurrence a conduit chaque éditeur à ajouter ses propres améliorations et ses
propres fonctionnalités à son système d'exploitation optimisé pour un matériel en particulier.
Ceci a amené les différents membres de la famille Unix à s'éloigner, et perdre la compatibilité
l'un avec l'autre.
En 1987, dans le but de réunifier la famille Unix, AT&T conclut un accord avec Sun
Microsystems (un des principaux éditeurs de système d'exploitation fondé sur BSD). Les autres
éditeurs ne voyant pas cet accord d'un bon œil, créent la fondation Open Software
Foundation (OSF). Dans un même temps, l'Open Group, un consortium de normalisation,
publie des normes relatives aux systèmes d'exploitation de la famille Unix. Les deux institutions
sont aujourd'hui fusionnées.
POSIX est le nom donné aux normes IEEE 1003. Cette famille de normes appartenant à l'Open
Group a été lancée en 1988 et concerne l'interface de programmation. La conformité d'un
système d'exploitation à cette norme assure la compatibilité au niveau source. En 2009, de
nombreux systèmes d'exploitation sont conformes à cette norme, y compris en dehors de la
famille Unix.
POSIX fait partie de la Single Unix Specification, une norme lancée en 1994 par l'Open Group,
qui concerne les systèmes de fichiers, les logiciels utilitaires, ainsi que 1 742 fonctions de
l'interface de programmation. Le nom « Unix » appartient à l'Open Group et tout système
d'exploitation doit être conforme à la Single Unix Specification pour être reconnu comme
faisant partie de la famille Unix.
ü Microsoft et la concurrence
En 1995, conformément au Sherman Antitrust Act — une loi des États-Unis pour la prévention
de l'abus de position dominante, le département de la justice des États-Unis interdit à Microsoft
certaines de ses pratiques considérées comme nuisibles à la concurrence. Deux ans plus tard,
un procès est ouvert pour non-respect des interdictions de 1995 : Microsoft obtient l'annulation
du procès sur l'argument que « la justice n'est pas équipée pour juger du bien-fondé du design
des produits de haute technologie (sic) ».
Entre 1999 et 2001, une enquête est ouverte concernant la position de Microsoft. L'enquête,
menée par les juges Thomas Jackson et Richard Posner, amène à la conclusion que Microsoft
abuse de sa position de monopole pour pratiquer du « favoritisme » sur le marché connexe
des navigateurs Web, des pratiques qui nuisent à ses concurrents, gênent leur émergence et
freinent l'innovation. La société échappe de peu à la scission, et se retrouve dans l'obligation de
35
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
36
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
masse comme un disque dur, un disque SSD, un CD-ROM, une clé USB, une disquette, etc.).
Une telle gestion des fichiers permet de traiter, de conserver des quantités importantes
de données ainsi que de les partager entre plusieurs programmes informatiques. Il offre à
l'utilisateur une vue abstraite sur ses données et permet de les localiser à partir d'un chemin
d'accès.
Il existe d'autres façons d'organiser les données, par exemple les bases de
données (notamment base de données relationnelle) et les fichiers indexés.
Histoire
Archivage de cartons de cartes perforées archivés au service du NARA en 1959. Chaque carton
peut contenir 2 000 cartes (d'une ligne de 80 colonnes chacune).
La carte perforée a progressivement disparu à partir de 1970 lorsque sont apparues les unités
d'entrée-sortie à bande magnétique et à disquettes souples de format « 8 pouces » et
des mémoires de masse plus performantes.
En 1964, le système DECtape de la société DEC permet d'enregistrer les données sur bandes
magnétiques plutôt que sur cartes perforées.
En 1968, GEORGE 3 était doté d'un magasin de fichier (file store) enregistrant les fichiers dans
une arborescence dans l'idée de Multics. Chaque utilisateur du système disposait d'un dossier
utilisateur (home) avec autant de sous-dossiers que nécessaire. Les dossiers utilisateurs
pouvaient être accédés directement ou à travers un chemin,
comme : :[Link],JOHN. Un système d'Access control lists était utilisé
pour la sécurité permettant de configurer l'accès par utilisateur et par groupe. Le système de
fichier était organisé sur deux niveaux : l'un sur disque, et l'autre sur bande magnétique.
37
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Une hiérarchie typique de Files-11 : tous les fichiers prennent leur racine dans le Master File
Directory. Le fichier File2 est accessible depuis deux dossiers.
En 1972, ODS-1 est un système de fichier à plat (utilisé par RSX-11 OS). Il sera remplacé par
la suite par ODS-2 et ODS-5.
En 1974, le système de fichier CP/M apparaît. Ce système d'exploitation, enregistre
les fichiers sur disquettes suivant une organisation logique spécifique (qui n'a pas été reprise
par MS-DOS), et peut remplir les disquettes jusqu'à ce qu'elles soient complètement remplies.
CP/M peut aussi gérer des disques durs (en réalité, comme le BIOS est « ouvert » et décrit
clairement dans la documentation que Digital Research fournissait avec certains de ses
logiciels, il est donc possible d'adapter tout système particulier CP/M à toute mémoire de masse
disponible - et aux périphériques dont on dispose).
Chaque fichier a un nom et une extension. Plus précisément, la syntaxe est : <nom du fichier (8
octets maximum)>.<extension (3 octets maximum)>.
En 1978 apparaît le premier système de fichier d'Apple.
En 1980, le système FAT12 apparaît. Le système FAT16 en 1984.
Le BIOS parameter block (BPB) est introduit avec le PC DOS 2.0 . Cette version introduit
également les bits attributs lecture seule, archive, étiquette de volume, et dossier pour une
hiérarchisation des dossiers.
En 1988, ISO 9660 (une norme de l'ISO) définit le système de fichiers utilisé sur les CD-ROM.
En 1993, apparaît le système NTFS Version 1.0, utilisé par Windows.
En 1994 et 1995, les systèmes de fichiers pour CD-ROMs sont complétés : Rock Ridge et Joliet.
38
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Système Année
Système Licenc
de Inventeur d'introduc
d’exploitation initial e
fichiers tion
RT-11 file
DEC 1973 RT-11
system
Core Operating
DOS (GEC) GEC 1973
System
CP/M file
Gary Kildall 1974 CP/M
system
39
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Système Année
Système Licenc
de Inventeur d'introduc
d’exploitation initial e
fichiers tion
Acorn BBC
DFS Acorn Computers Ltd 1982
Micro MOS
PC DOS 3.0/MS-DOS
FAT16 Microsoft, IBM 1984
3.0
Elektronika
NPO "Scientific centre" Vilnius Basic, BK
BK tape 1985
(maintenant Sitronics) monitor program
format
Compaq MS-
FAT16B Compaq 1987 DOS 3.31, DR
DOS 3.31
MINIX V1
Andrew S. Tanenbaum 1987 MINIX 1.0
FS
40
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Système Année
Système Licenc
de Inventeur d'introduc
d’exploitation initial e
fichiers tion
MINIX V2
Andrew S. Tanenbaum 1992 MINIX 1.6 et 2.0
FS
HFS
(Hierarchic MVS/ESA (maintenan
IBM 1994
al File t z/OS)
System)
Linux, Mac
Rock Ridge Young Minds Inc. 1994 OS, AmigaOS,
et FreeBSD
Microsoft
Joliet
Microsoft 1995 Windows, Linux, Mac
("CDFS")
OS, et FreeBSD
41
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Système Année
Système Licenc
de Inventeur d'introduc
d’exploitation initial e
fichiers tion
PolyServe
File System PolyServe 1998 Windows, Linux
(PSFS)
AmigaOS, AROS, Mo
SFS John Hendrikx 1998
rphOS
Microsoft
ISO Ecma Windows, Linux, Mac
1999
9660:1999 International, Microsoft OS X, FreeBSD,
et AmigaOS
42
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Système Année
Système Licenc
de Inventeur d'introduc
d’exploitation initial e
fichiers tion
NTFS Propriéta
Microsoft 2001 Windows XP
Version 3.1 ire
z/OS (backported
zFS IBM 2001
to OS/390)
VMware ESX
VMFS2 VMware 2002
Server 2.0
Google File
Google 2003 Linux
System
Windows
Reliance7 Datalight 2003 CE, VxWorks, custom
ports
43
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Système Année
Système Licenc
de Inventeur d'introduc
d’exploitation initial e
fichiers tion
Non-
Volatile Palm, Inc. 2004 Palm OS Garnet
File System
MINIX V3
Andrew S. Tanenbaum 2005 MINIX 3
FS
Windows CE
6.0, Windows XP Propriéta
exFAT Microsoft 2006, 2009
SP3, Windows Vista ire
SP1
TexFAT/TF
Microsoft 2006 Windows CE 6.0
AT
44
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Système Année
Système Licenc
de Inventeur d'introduc
d’exploitation initial e
fichiers tion
Windows
Reliance CE, Windows
Datalight 2009
Nitro7 Mobile, VxWorks, Lin
ux, custom ports
Linux, Mac OS X,
LTFS IBM 2010 planned Microsoft LGPL
Windows,
Microsoft Windows,
IlesfayFS Ilesfay Technology Group 2011 planned Red Hat
Enterprise Linux
Lanyard
Dan Luedtke 2012 Linux
Filesystem
Année
Système de Système
Créateur d'introductio License
fichiers d’exploitation initial
n
45
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Généralités
46
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
47
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
les distributions Linux. Les systèmes plus anciens utilisaient des systèmes de codage régionaux
pouvant altérer les noms de fichiers lorsque des utilisateurs ont des paramètres régionaux
différents. Dans les systèmes modernes, l'utilisation de noms de fichiers nommés autrement
qu'en Unicode est évité afin de réduire les problèmes d'interopérabilité avec les systèmes
unicode.
NTFS, Virtual FAT et Joliet, ReFS utilisent le jeu de caractères UTF-16 pour les noms de
fichiers.
Sous Windows et dans les environnements graphiques, le nom d'un fichier possède en général
un suffixe (extension) séparé par un point qui est fonction du contenu du fichier : .txt pour du
texte par exemple. De cette extension va dépendre le choix des applications prenant en charge
ce fichier. Toutefois, sous Linux/Unix, dans les systèmes en ligne de commande et dans les
langages de programmation, l'extension fait simplement partie du nom de fichier, son format
est détecté par le type MIME inscrit de façon transparente dans l'en-tête des fichiers.
Métadonnées
Chaque fichier est décrit par des métadonnées (conservées dans l'inode sous Unix), alors que le
contenu du fichier est écrit dans un ou plusieurs blocs du support de stockage, selon la taille du
fichier.
Les métadonnées les plus courantes sous UNIX sont :
ü droits d'accès en lecture, écriture et exécution selon l'utilisateur, le groupe, ou les autres ;
ü dates de dernier accès, de modification des métadonnées (inode), de modification
des données (block)8 ;
ü propriétaire et groupe propriétaire du fichier ;
ü taille du fichier ;
ü nombre de noms de fichiers (liens) pointant vers l'inode ;
ü nombre de blocs utilisés par le fichier9 ;
ü type de fichier : fichier simple, lien symbolique, répertoire, périphérique, etc.
Sur la plupart des systèmes Unix, la commande stat permet d'afficher l'intégralité du contenu
de l'inode.
Ø Fonctions du SGF
Le système de gestion des fichiers assure plusieurs fonctions :
ü Manipulation des fichiers : des opérations sont définies pour permettre la manipulation
des fichiers par les programmes d’application, à savoir : créer/détruire des fichiers,
insérer, supprimer et modifier un article dans un fichier.
48
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
ü Allocation de la place sur mémoires secondaires : les fichiers étant de taille différente
et cette taille pouvant être dynamique, le SGF alloue à chaque fichier un nombre
variable de granules de mémoire secondaire de taille fixe (blocs).
ü Localisation des fichiers : il est nécessaire de pouvoir identifier et retrouver les données ;
pour cela, chaque fichier possède un ensemble d’informations descriptives (nom,
adresse…) regroupées dans un inode.
ü Sécurité et contrôle des fichiers : le SGF permet le partage des fichiers par différents
programmes d’applications tout en assurant la sécurité et la confidentialité des données.
En effet, un nom et une clé de protection sont associés à chaque fichier afin de le
protéger contre tout accès non autorisé ou mal intentionné lors du partage des fichiers.
Le SGF se doit aussi de garantir la conservation des fichiers en cas de panne du matériel
ou du logiciel.
ü le SGF assure le bon fonctionnement du fichier.
Organisation des fichiers
L'organisation physique sous-jacente du médium utilisé (blocs, linéaire) et les mécanismes
d'entrée/sortie de bas-niveau sont masqués. L'utilisateur peut donc organiser ses données
permanentes en les distribuant dans différents fichiers. Le contenu des fichiers est déterminé
par leur format, qui dépend de l'application utilisée.
En plus de cette organisation abstraite, les systèmes de fichiers peuvent inclure la compression
ou le chiffrement automatique des données, une gestion plus ou moins fine des droits d'accès
aux fichiers, et une journalisation des écritures (pour la robustesse, en cas de défaillance du
système). De plus, certains systèmes de fichiers peuvent s'étendre sur un réseau entier, comme
NFS. Certains de ces systèmes de fichiers en réseau peuvent être distribués ou répartis, comme
PVFS2.
Systèmes de fichiers et systèmes d'exploitation associés ou compatibles
Le choix du système de gestion des fichiers se fait principalement en fonction du système
d’exploitation. Généralement, les systèmes d’exploitation les plus récents supportent un grand
nombre de systèmes de fichiers.
MS-DOS (et compatibles) et les premières versions de Windows 95 utilisaient les systèmes de
fichiers FAT16 et FAT12 (pour les supports de moins de 16 Mio). À partir de Windows 95
OSR2, le choix entre les systèmes de fichiers a commencé à
s'élargir. FAT16 et FAT32 pouvaient tous les deux être utilisés, et à partir d'une certaine taille
de partition, le choix du système FAT32 était alors plus judicieux.
49
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
50
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Journalisés
Les systèmes de fichiers journalisés enregistrent les modifications dans un journal avant de les
effectuer sur les fichiers eux-mêmes. Ce mécanisme apporte une plus grande fiabilité, en
permettant une récupération des modifications "en cours" en cas d'arrêt intempestif (coupure
de courant, plantage système, débranchement de disque externe…).
§ BeFS (BeOS, Haiku, Linux en lecture seule et expérimental)
§ ext3 : Extented FS version 3 - notamment pour l'ajout de la journalisation (Linux, BSD)
§ ext4 : Extented FS version 4 - notamment pour une capacité de 1 exaoctet et
les Extents (Linux >=2.6.28)
§ HFS+ (Mac OS X, Linux)
§ JFS ou JFFS (AIX, OS/2, Linux)
§ JFS2 ou JFFS2 AIX5
§ LFS : (Linux)
§ NSS : Novell Storage Services (Netware et Suse Linux)
§ NTFS : New Technology File
System (Windows NT/2000/XP/Vista/7/8/10, Linux et Mac OS X (écriture disponible
grâce au pilote NTFS-3G))
§ ReiserFS (Linux, BSD en lecture seule)
§ Reiser4 (Linux expérimental)
§ Spufs : Synergistic processing unit filesystem
§ UFS+ : Unix FS + journal (BSD, Linux en lecture seule)
§ XFS (Irix, Linux, BSD en lecture seule)
à Snapshot
Les systèmes de fichiers à snapshot, ou, en français, instantanés, offrent la possibilité
d'enregistrer l'état du système de fichiers à un instant donné.
§ APFS : Apple File System (macOS, iOS, tvOS)
§ Btrfs : BetterFS (Linux)
§ ZFS : Zettabyte FS (Solaris10, OpenSolaris, FreeBSD 7, Mac OS X en lecture
seule, Linux via FUSE)
§ HAMMER : (DragonFly BSD datant de 2008)
§ ACFS : ASM Cluster FS (Linux AIX Solaris Windows) développé par Oracle
§ Réseau (NAS : network-attached system en anglais)[modifier | modifier le code]
§ AFS Andrew File System : (AIX, Linux, Solaris, Windows, Mac OS X, ...)
§ CodaFS (Linux)
51
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
52
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Temporaires
§ ramfs, le système de fichiers temporaire en mémoire RAM le plus simple et
efficace[réf. nécessaire] qui soit, basé sur la gestion du cache du noyau Linux
§ tmpfs, le nom générique d'un système de fichiers temporaire, aussi utilisé pour ses
implémentations (distinctes) pour Linux, dérivée de ramfs et à partir du noyau
Linux 2.6.x, Solaris, NetBSD ou d'autres systèmes d'exploitation
Méta systèmes de fichiers
§ unionfs, une implémentation d’union mount dans le noyau Linux, consistant à fusionner
différents systèmes de fichiers en un unique point de montage
§ aufs, une autre implémentation de unionfs
Pseudo systèmes de fichiers
Ces systèmes de fichiers n'ont pas pour but de permettre l'accès à des fichiers réels. Ils
présentent en fait, sous l'apparence d'une hiérarchie classique de fichiers et de répertoires, des
informations de nature variées (sur l'état de l'ordinateur, des périphériques, ou permettant
l'accès à des bases de données). Il s'agit donc d'interfaces particulières pour certains logiciels,
généralement le système d'exploitation.
§ Devfs, Device file system (linux 2.4)
§ udev remplace Devfs (linux 2.6)
§ Procfs, Process Filesystem (systèmes de type UNIX)
§ Sysfs, permettant d'accéder aux informations sur le matériel et de configurer certaines
fonctionnalités du noyau Linux 2.6.
§ CDfs : système de fichiers virtuel pour Linux qui permet d'accéder aux données et aux
pistes audio d'un disque compact.
§ ZODB: système de fichiers du serveur zope
À classer…
§ ODS (VMS, OpenVMS)
§ ADFS : Acorn Disc Filing System (RiscOS, Linux expérimental)
§ AFFS : fichiers rapides d'Amiga
§ CBMFS : Le système de fichiers pour Commodore 1581/1541
§ DTFS : DeskTop File System (UNIX)
§ HDFS : Hadoop File system
§ MFS (Macintosh)
§ NWFS : système de fichiers Novell NetWare
§ SFS : Secure file system
53
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
X. HIERARCHIE DE MEMOIRE
Hiérarchie mémoire d'un ordinateur. Les niveaux sont indicatifs : une architecture donnée peut
en inclure plus ou moins.
Dans un ordinateur, le processeur accède aux instructions du programme à exécuter ainsi qu'aux
données nécessaires à son exécution depuis la mémoire.
Il existe une hiérarchie des mémoires informatiques : les plus rapides sont les plus coûteuses,
donc en nombre limité, et placées le plus près du processeur (les registres font partie intégrante
du processeur). Les plus lentes sont les moins coûteuses et sont éloignées du processeur.
Le matériel et le système d'exploitation sont responsables du déplacement des objets le long de
cette hiérarchie. Par exemple, dans un système de mémoire virtuelle, une faute de page va
probablement faire déplacer un bloc de données depuis un niveau assez bas (disque dur) vers
la mémoire centrale, puis l'accès à ces adresses en mémoire vont à nouveau créer une recopie
vers des caches plus proches du processeur.
C'est la technologie et l'organisation des mémoires qui vont influer sur ses temps d'accès. Par
exemple, la mémoire SRAM à un temps d'accès de quelques nanosecondes, tandis que
54
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
la DRAM est 5 à 10 fois plus lente. Un disque dur peut avoir un taux de transfert de 75 Mo/s,
mais qui peut se voir plus que doublé si l'on fait appel à un châssis RAID.
Caractéristiques des différents niveaux de mémoire
La capacité, la vitesse et le coût des différents niveaux de mémoire varient grandement. Par
exemple, en voici une illustration utilisant des équipements de 2013 (pour le processeur, un
Intel Haswell Mobile a été utilisé1) :
Type Capacité Vitesse
Solid State
600 Mo/s4
Drive
55
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Les couts des mémoires diminuent aussi rapidement dans le temps. Le coût d'un Go de mémoire
de disque dur a chuté de 0,6 € en 2005 à 0,06 € en 2012. De même, le coût d'un Go de mémoire
vive de type DRAM a chuté de 200 € en 2005 à 5 € en 2012.
56
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION
Notes et références
o « Desktop Operating System Market Share Worldwide [archive] », sur StatCounter
Global Stats (consulté le 29 août 2022)
o « Mobile Operating System Market Share Worldwide [archive] », sur StatCounter
Global Stats (consulté le 29 août 2022)
o « Operating System Market Share Worldwide [archive] », sur StatCounter Global
Stats (consulté le 27 Mars 2024)
o « Tablet Operating System Market Share Worldwide [archive] », sur StatCounter
Global Stats (consulté le 29 août 2022).
o A. Dhotre, Operating Systems, Technical Publications, 2009 (ISBN 978-8-1843-1644-
5).
o Achyut S. Godbole et Atul Kahate, Operating Systems, 3e ed., Tata McGraw-Hill
Education, 2011 (ISBN 978-0-0707-0203-5).
o Brian L. Stuart, Principles of Operating Systems: Design & Applications, Cengage
Learning EMEA, 2008 (ISBN 978-1418837693).
o Jose Garrido, Richard Schlesinger et Kenneth Hoganson, Principles of Modern
Operating Systems,Jones & Bartlett Publishers, 2011 (ISBN 9781449626341).
o Operating Systems, Technical Publications (ISBN 9788184315622).
o Pabitra Pal Choudhury, Operating Systems: Principles and Design, Prentice-Hall of
India Pvt. Ltd, 2009 (ISBN 978-8-1203-3811-1).
o Sibsankar Haldar et Alex A. Aravind, Operating Systems, Pearson Education India,
2010 (ISBN 9788131730225).
57