0% ont trouvé ce document utile (0 vote)
62 vues57 pages

Tse Bac 1

Support de cours de Technique de Systèmes d'exploitaiton pour la promotion de BAC 1, les débutants en Informatique.

Transféré par

KITAMBALA
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
62 vues57 pages

Tse Bac 1

Support de cours de Technique de Systèmes d'exploitaiton pour la promotion de BAC 1, les débutants en Informatique.

Transféré par

KITAMBALA
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION

INSTITUT SUPERIEUR PEDAGOGIQUE DE KALEMIE


ISP-KALEMIE/MOBA

SUPPORT DU COURS DE
THEORIES DE SYSTEME
D’EXPLOITATION
Destiné aux étudiants de BAC 1 Informatique de gestion

Ir. KITAMBALA BALIBWA Théophile


Concepteur des S.I

Année académique 2023-2024

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

• gestion : il 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. Il protège les utilisateurs dans le cas

d'usage partagé.

En informatique, un système d'exploitation (souvent appelé OS de l'anglais operating system ou


parfois SE en français) est un ensemble de programmes qui dirige l'utilisation
des ressources d'un ordinateur par des logiciels applicatifs.
Il reçoit des demandes d'utilisation des ressources de l'ordinateur ressources de stockage
des mémoires (par exemple des accès à la mémoire vive, aux mémoires de masse), ressources
de calcul du processeur central, ressources de communication vers des périphériques (pour
parfois demander des ressources de calcul au GPU par exemple ou toute autre carte d'extension)
ou via le réseau de la part des logiciels applicatifs. Le système d'exploitation gère les demandes
ainsi que les ressources nécessaires évitant les interférences entre les logiciels.
II. DESCRIPTION
Le système d'exploitation est le logiciel principal d'un ordinateur car il permet aux programmes
de fonctionner après que le programme d'amorçage a configuré tous les périphériques lors du
démarrage de l'ordinateur.
Il offre une suite de services généraux facilitant la création de logiciels applicatifs et sert
d'intermédiaire entre ces logiciels et le matériel informatique. Un système d'exploitation apporte
commodité, efficacité et capacité d'évolution, permettant d'introduire de nouvelles fonctions et
du nouveau matériel sans remettre en cause les logiciels.
Il existe sur le marché des dizaines de systèmes d'exploitation différents, très souvent livrés
avec l'appareil informatique. C'est le cas de Windows, Mac OS, Irix, Symbian

2
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION

OS, Unix (Berkeley, System V…), GNU/Linux, (pour lequel il existe de


nombreuses distributions) ou majoritairement Android et iOS développés respectivement
par Google et Apple pour les téléphones mobiles. Les fonctionnalités offertes diffèrent d'un
système à l'autre et sont typiquement en rapport avec l'exécution des programmes, l'utilisation
de la mémoire centrale ou des périphériques, la manipulation des systèmes de fichiers, la
communication, ou la détection et la gestion d'erreurs.
En avril 2022, Android, un système d'exploitation utilisant le noyau Linux, est le système
d'exploitation le plus utilisé au monde (si l'on prend en compte l'utilisation Web). Il détient
43 % du marché mondial, suivi de Windows (30 %), d'Apple iOS (17 %), de macOS (6 %),
puis de Linux (desktop) (0,98 %), qui utilise également le noyau Linux. Ces chiffres ne tiennent
pas compte des appareils intégrés ni des consoles de jeux.
Pour les smartphones et autres appareils de poche, Android est en tête avec 72 % de parts de
marché, et iOS d'Apple en détient 28 %.
Pour les ordinateurs de bureau et les ordinateurs portables, Windows est le plus utilisé (75 %),
suivi de macOS d'Apple (15 %) et des systèmes d'exploitation basés sur Linux (5 %) (c'est-à-
dire "Linux desktop", 2,48 %, plus ChromeOS de Google, 2,38 %, et 3,2 % aux États-Unis).
En ce qui concerne les tablettes, l'iPadOS d'Apple représente 54 % et Android 46 % dans le
monde entier.

Le système d'exploitation est un intermédiaire entre les logiciels d'application et le matériel.

3
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION

Relations dans un système d'exploitation moderne.


III. FONCTIONNALITES
Le système d'exploitation offre une suite de services généraux facilitant la création et
l'utilisation de logiciels applicatifs. Les services offerts sont en rapport avec l'utilisation des
ressources de l'ordinateur par les programmes. Ils permettent en particulier d'exécuter des
programmes, de lire et écrire des informations, de manipuler les fichiers, de communiquer entre
ordinateurs et de déceler des erreurs. Ces services permettent à plusieurs usagers et plusieurs
programmes de se partager les ressources de l'ordinateur8. Le principal rôle du système
d'exploitation est alors de gommer les différences entre les différentes architectures
informatiques, et d'organiser l'utilisation des ressources de manière rationnelle. Il est l’interface
(intermédiaire) entre l’usager de l’ordinateur et le matériel (HARDWARE).
1. Utilisation des périphériques
Chaque périphérique a ses propres instructions, avec lesquelles il peut être manipulé. Le
système d'exploitation en tient compte. Il permet au programmeur de manipuler le périphérique
par de simples demandes de lecture ou d'écriture, lui évitant la perte de temps de traduire les
opérations en instructions propres au périphérique.
2. Accès aux fichiers
En plus des instructions propres à chaque périphérique (lecteur de disquette, disque dur, lecteur
de CD-ROM, lecteur usb, lecteur de carte mémoire…), le système d'exploitation tient compte
du format propre de chaque support servant au stockage de fichiers. Il offre également des
mécanismes de protection permettant de contrôler quel utilisateur peut manipuler quel fichier.
3. Accès aux ressources
Une des fonctions du système d'exploitation est de protéger les ressources contre l'utilisation
par des personnes non autorisées, et de résoudre les conflits lorsque deux utilisateurs demandent
simultanément la même ressource.

4
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION

4. Détection et récupération en cas d'erreur


Lorsqu'une erreur survient, qu'elle soit matérielle ou logicielle, le système d'exploitation traite
l'erreur en adoucissant son impact sur le système informatique. Il peut tenter de réitérer
l'opération, arrêter l'exécution du programme fautif, ou signaler le problème à l'utilisateur.
5. Contrôle
Un système d'exploitation peut tenir des statistiques d'utilisation des ressources, surveiller la
performance, et les temps de réponse.
6. Services
La palette des services offerts et la manière de s'en servir diffère d'un système d'exploitation à
l'autre. Le standard industriel POSIX du IEEE définit une suite d'appels systèmes standard. Un
logiciel applicatif qui effectue des appels système selon POSIX pourra être utilisé sur tous les
systèmes d'exploitation conformes à ce standard.
Le système d'exploitation assure la réservation des différentes ressources pour les besoins des
programmes exécutés simultanément. Les réservations peuvent être inscrites dans des journaux
d'activités à des fins de statistiques ou de dépannage et le système d'exploitation peut refuser
une réservation à un utilisateur n'ayant pas reçu d'autorisation préalable.
Le matériel informatique peut exécuter des instructions, celles-ci sont rarement plus que des
copies ou des additions. La traduction d'opérations complexes en suite d'instructions est une
tâche fastidieuse qui incombe au système d'exploitation. Le système d'exploitation prend en
charge toute la manipulation du matériel, le logiciel applicatif ne peut donc pas voir de
différence entre une machine simple, rudimentaire et une machine riche et complexe : les
mêmes services sont offerts dans les deux cas.
Le système d'exploitation facilite le travail de programmation en fournissant une suite de
services pouvant être utilisés par les logiciels applicatifs. Du point de vue du programmeur, son
logiciel applicatif s'oriente en direction du système d'exploitation et du matériel, et les
programmes sont considérés comme fonctionnant sur le système d'exploitation. Un système
d'exploitation peut ainsi être vu comme une machine virtuelle. L'ensemble composé du matériel
et du système d'exploitation forme la « machine » qui exécute le logiciel applicatif, une machine
en partie simulée par du logiciel.
Un système d'exploitation est composé d'une large palette de programmes. La composition
exacte dépend de l'usage cible et du type d'appareil informatique auquel le système est destiné
(ordinateur personnel, serveur, superordinateur ou encore système embarqué).

5
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION

IV. ÉLEMENTS DE BASE D'UN SYSTEME D'EXPLOITATION


Les principales fonctions assurées par un SE sont les suivantes :
ü gestion de la mémoire principale et des mémoires secondaires,
ü exécution des E/S à faible débit (terminaux, imprimantes) ou haut débit (disques,
bandes),
ü multiprogrammation, temps partagé, parallélisme : interruption, ordonnancement,
répartition en mémoire, partage des données
ü lancement des outils du système (compilateurs, environnement utilisateur,...) et des
outils pour l'administrateur du système (création de points d'entrée, modification de
privilèges,...),
ü lancement des travaux,
ü protection, sécurité,
ü réseaux L'interface entre un SE et les programmes utilisateurs est constituée d'un
ensemble d'instructions étendues, spécifiques d'un SE, ou appels système.
Généralement, les appels système concernent soit les processus, soit le système de
gestion de fichiers (SGF).
[Link] processus
Un processus est un programme qui s'exécute, ainsi que ses données, sa pile, son compteur
ordinal, son pointeur de pile et les autres contenus de registres nécessaires à son exécution.
Attention : ne pas confondre un processus (aspect dynamique, exécution qui peut être
suspendue, puis reprise), avec le texte d'un programme exécutable (aspect statique).
Les appels système relatifs aux processus permettent généralement d'effectuer au moins les
actions suivantes :
• création d'un processus (fils) par un processus actif (d'où la structure d'arbre de
processus gérée par un SE)
• destruction d'un processus
• mise en attente, réveil d'un processus
• suspension et reprise d'un processus, grâce à l'ordonnanceur de processus (scheduler)
• demande de mémoire supplémentaire ou restitution de mémoire inutilisée
• attendre la fin d'un processus fils
• remplacer son propre code par celui d'un programme différent
• échanges de messages avec d'autres processus
• spécification d'actions à entreprendre en fonction d'événements extérieurs asynchrones

6
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION

• modifier la priorité d'un processus


Dans une entité logique unique, généralement un mot, le SE regroupe des informations-clés sur
le fonctionnement du processeur : c'est le mot d'état du processeur (PSW=Processor Status
Word). Il comporte généralement :
• la valeur du compteur ordinal
• des informations sur les interruptions (masquées ou non)
• le privilège du processeur (mode maître ou esclave)
• etc.... (format spécifique à un processeur)
A chaque instant, un processus est caractérisé par son état courant : c'est l'ensemble des
informations nécessaires à la poursuite de son exécution (valeur du compteur ordinal, contenu
des différents registres, informations sur l'utilisation des ressources). A cet effet, à tout
processus, on associe un bloc de contrôle de processus (BCP). Il comprend généralement :
• une copie du PSW au moment de la dernière interruption du processus
• l'état du processus : prêt à être exécuté, en attente, suspendu, ...
• des informations sur les ressources utilisées
• mémoire principale
• temps d'exécution
• périphériques d'E/S en attente
• files d'attente dans lesquelles le processus est inclus, etc...
• et toutes les informations nécessaires pour assurer la reprise du processus en cas
d'interruption
Les BCP sont rangés dans une table en mémoire centrale à cause de leur manipulation fréquente.
4.2. Les interruptions
Une interruption est une commutation du mot d'état provoquée par un signal généré par le
matériel. Ce signal est la conséquence d'un événement interne au processus, résultant de son
exécution, ou bien extérieur et indépendant de son exécution. Le signal va modifier la valeur
d'un indicateur qui est consulté par le SE. Celui-ci est ainsi informé de l'arrivée de l'interruption
et de son origine. A chaque cause d'interruption est associé un niveau d'interruption. On
distingue au moins 3 niveaux d'interruption :
• les interruptions externes : panne, intervention de l'opérateur, ....
• les déroutements qui proviennent d'une situation exceptionnelle ou d'une erreur liée à
l'instruction en cours d'exécution (division par 0, débordement, ...)
• les appels système

7
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION

UNIX admet 6 niveaux d'interruption : interruption horloge, interruption disque, interruption


console, interruption d'un autre périphérique, appel système, autre interruption. Le chargement
d'un nouveau mot d'état provoque l'exécution d'un autre processus, appelé le traitant de
l'interruption. Le traitant réalise la sauvegarde du contexte du processus interrompu (compteur
ordinal, registres, indicateurs,....). Puis le traitant accomplit les opérations liées à l'interruption
concernée et restaure le contexte et donne un nouveau contenu au mot d'état : c'est
l'acquittement de l'interruption.

Généralement un numéro de priorité est affecté à un niveau d'interruption pour déterminer


l'ordre de traitement lorsque plusieurs interruptions sont positionnées. Il est important de
pouvoir retarder, voire annuler la prise en compte d'un signal d'interruption. Les techniques que
l'on utilise sont le masquage et le désarmement des niveaux d'interruption :
• le masquage d'un niveau retarde la prise en compte des interruptions de ce niveau. Pour
cela, on positionne un indicateur spécifique dans le mot d'état du processeur. Puisqu'une
interruption modifie le mot d'état, on peut masquer les interruptions d'autres niveaux
pendant l'exécution du traitant d'un niveau. Lorsque le traitant se termine par un
acquittement, on peut alors démasquer des niveaux qui avaient été précédemment
masqués. Les interruptions intervenues pendant l'exécution du traitant peuvent alors être
prises en compte
• le désarmement d'un niveau permet de supprimer la prise en compte de ce niveau par

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

un processus, il est alors réservé à ce processus. Pour utiliser un périphérique, le système


d'exploitation se sert d'un contrôleur et d'un pilote de périphérique.
j) Contrôleur
Un contrôleur est un composant électronique, qui comporte une mémoire tampon, et manipule
un certain type de périphérique (disque dur, imprimante, mémoire, lecteur de bande
magnétique…). Le contrôleur est souvent intégré au périphérique. Les différents contrôleurs
disponibles sur le marché ne s'utilisent pas tous de la même manière.
k) Pilote (anglais driver)
Les instructions de manipulation d'une gamme de contrôleurs donnée sont incluses dans
un pilote informatique : un logiciel qui exploite les possibilités offertes par les contrôleurs. Les
pilotes informatiques font partie du système d'exploitation, et offrent des services uniformes
utilisés par les autres programmes du système d'exploitation.
Il existe deux stratégies de manipulation des contrôleurs :
• Les contrôleurs rapides sont manipulés en programmed I/O. dans cette stratégie le
processeur envoie des demandes d'opérations au contrôleur puis vérifie de manière
intermittente l'état du contrôleur pour vérifier si l'opération demandée est terminée.
• Les contrôleurs moins rapides sont manipulés en interrupt driven I/O. Dans cette
stratégie le processeur effectue une demande au contrôleur, puis continue d'exécuter des
logiciels applicatifs. Le contrôleur envoie un signal électrique lorsque l'opération est
terminée. Lors de la venue de ce signal, le processeur interrompt l'exécution des
logiciels applicatifs et exécute un programme particulier interrupt service routine qui
vérifie le nouvel état du contrôleur.
Certains périphériques ne peuvent pas être partagés, et leur utilisation est alors dédiée à un seul
programme à la fois. Certains périphériques peuvent être virtuels, ou leur utilisation peut être
indirecte. Par exemple l'utilisation d'une imprimante n'entraine pas une impression immédiate
parce que les informations sont tout d'abord mises en attente. Cette technique du spool permet
l'utilisation partagée d'un périphérique qui sans ça ne pourrait pas être partagé.
l) Fichiers
Un fichier est une collection d'informations portant un nom, enregistrée sur un média tel qu'un
disque dur, une bande magnétique ou un disque optique. Chaque médium a ses propres
caractéristiques et sa propre organisation.
Le système d'exploitation s'occupe de créer et de détruire des fichiers et des répertoires, de
réserver de l'espace sur les médias ainsi que copier le contenu des fichiers de et vers la mémoire
centrale. Il aide également les logiciels applicatifs à retrouver les fichiers, partager les fichiers

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

Le système d'exploitation va également refuser la mise hors service de programmes centraux


tels que les logiciels serveur ou des programmes du système d'exploitation par tout utilisateur
qui n'a pas préalablement reçu le privilège d'effectuer cette opération selon les règlements
introduits par l'administrateur de sécurité.
Lorsqu'un logiciel autonome (bot informatique) demande des opérations au système
d'exploitation, le logiciel doit préalablement décliner son identité en tant que produit puis, sur
la base de cette identité, le système d'exploitation effectue les mêmes vérifications que pour une
personne physique.
Les mécanismes de contrôle d'accès ont aussi pour effet de lutter contre les logiciels
malveillants ceux-ci effectuent souvent des opérations susceptibles de perturber l'utilisation de
l'ordinateur.
o) Interface utilisateur
Un ensemble de programmes du système d'exploitation reçoit les informations envoyées par
les logiciels applicatifs, et les place sur une image numérique qui sera envoyée au matériel par
l'intermédiaire d'un pilote. En complément un autre ensemble de programmes reçoit les
manipulations effectuées par l'usager par l'intermédiaire de pilotes puis les transmettent au
logiciel concerné. Ces deux ensembles créent l'interface homme-machine qui permet à un
usager de dialoguer avec la machine.
Le système d'exploitation peut dialoguer avec un usager par l'intermédiaire d'un autre
ordinateur ou d'un terminal (interface distribuée). Les informations envoyées par les logiciels
applicatifs seront alors envoyées à l'autre ordinateur selon un protocole prévu à cet effet, tandis
que l'autre ordinateur enverra les manipulations effectuées par l'utilisateur.
Voir SSH, RFB ou X Window System.
Lorsque l'interface est en mode texte, l'image numérique est une grille dans laquelle sont placés
des caractères d'imprimerie, la grille comporte typiquement 80 colonnes et 35 lignes. L'interface
se manipule avec un clavier. Ce type d'interface, qui existe depuis les débuts de
l'informatique est aujourd'hui remplacé par les interfaces graphiques.
p) Interface graphique
Dans une interface utilisateur graphique (anglais Graphical User Interface abrégé GUI), l'image
numérique est composée par un programme du système d'exploitation par superposition de
points, de lignes, de pictogrammes et de caractères d'imprimerie. L'interface se manipule
typiquement avec une souris selon le principe WIMP (anglais Windows, Icons, Menus and
Pointer device). L'image numérique est créée à l'aide du processeur graphique de l'ordinateur.

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

A. Première génération : traitement par lots


Les systèmes d'exploitation basés sur le traitement par « lots » (suites d'instructions et de
données dans un ensemble de cartes perforées) sont apparus dans les années 1950. Un
programme (avec ses données) n'est rien d'autre qu'une pile de cartes avec des indicateurs de
début et de fin de lot. L'exécution d'un programme consiste à demander à un opérateur de placer
la pile de cartes dans le lecteur, puis l'opérateur lance la lecture séquentielle des cartes. Le
processeur central est au repos, durant les manipulations de l'opérateur.
Un batch est un lot de travaux à effectuer. L'opérateur compose un batch en posant les unes sur
les autres les piles de cartes des différents programmes (avec leurs données) demandés par les
utilisateurs. Il forme une grande pile de cartes séparées par des marque-pages, en général une
carte de couleur particulière, qu'il place ensuite dans le lecteur. Le regroupement de plusieurs
programmes en un batch diminue les interventions de l'opérateur.
Dans un système basé sur les batchs, le cœur du système d'exploitation est un programme
moniteur qui réside continuellement en mémoire centrale et permet à l'opérateur de demander
le début ou l'arrêt de l'exécution du lot. À la fin de l'exécution de chaque tâche du lot, le moniteur
effectue des travaux de nettoyage, puis lance l'exécution de la tâche suivante. Ainsi, l'opérateur
intervient uniquement au début et à la fin du lot.
Dans ces systèmes d'exploitation les commandes ajoutées au marque-page, formulées dans le
langage JCL (Job Control Language) sont un des seuls moyens qu'a l'utilisateur d'interagir avec
le système d'exploitation.
Les systèmes d'exploitation batch sont adaptés à des applications nécessitant de très gros calculs
mais peu d'implication de l'utilisateur : météo, statistiques, impôts… Les utilisateurs n'attendent
pas immédiatement de résultats. Ils soumettent les demandes, puis reviennent ultérieurement
collecter les résultats.
En raison de la grande différence de vitesse entre le processeur et les périphériques, dans un
système d'exploitation batch le processeur est inutilisé 90 % du temps car les programmes
attendent qu'un périphérique ou un autre termine les opérations. Avec ces systèmes
d'exploitation il n'y a pas de concurrence entre les différentes tâches, la mise en œuvre de
l'utilisation du processeur, de la mémoire et des périphériques est triviale8 mais loin d’être
optimale.
B. Deuxième génération : la multiprogrammation
Les systèmes d'exploitation multi-programmés sont apparus dans les années 1960. Le but
recherché par de tels systèmes est d'augmenter l'efficacité de l'utilisation du processeur et des
périphériques en utilisant la possibilité de les faire fonctionner en parallèle. Plusieurs

20
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION

programmes sont placés en mémoire centrale, et lorsque le programme en cours d'exécution


attend un résultat de la part d'un périphérique, le système d'exploitation ordonne au processeur
d'exécuter un autre programme.
Dans les systèmes d'exploitation multi-programmés, l'utilisation du processeur est partagée par
planification (scheduling) : à chaque utilisation d'un périphérique, le système d'exploitation
choisit quel programme va être exécuté. Ce choix se fait sur la base de priorités. Le système
d'exploitation comporte un mécanisme de protection évitant ainsi que le programme en cours
d'exécution ne lise ou n'écrive dans la mémoire attribuée à un autre programme. Les
programmes sont exécutés dans un mode non-privilégié, dans lequel l'exécution de certaines
instructions est interdite.
Les systèmes multi-programmés nécessitent un ordinateur et des périphériques mettant en
œuvre la technique du DMA (direct memory access). Selon celle-ci, le processeur ordonne à un
périphérique d'effectuer une opération, le résultat de l'opération est ensuite placé en mémoire
centrale par le périphérique tandis que le processeur exécute d'autres instructions. Dans les
systèmes multi-programmés, tout comme pour les systèmes batch, l'utilisateur n'a que peu de
contact avec les programmes et de maigres possibilités d'intervention.
C. Troisième génération : le temps partagé
Les systèmes d'exploitation en temps partagé sont apparus dans les années 1970. Ils sont utilisés
dans des dispositifs interactifs où plusieurs utilisateurs sont simultanément en dialogue avec
l'ordinateur. Un système d'exploitation en temps partagé est destiné à répondre rapidement aux
demandes de l'utilisateur, et donner à chaque utilisateur l'impression qu'il est le seul à utiliser
l'ordinateur.
Un système en temps partagé met en œuvre des techniques sophistiquées
de multiprogrammation en vue de permettre l'utilisation interactive de l'ordinateur par plusieurs
utilisateurs et plusieurs programmes simultanément. L'arrivée, en 1970, de cette nouvelle
génération de systèmes d'exploitation résulte d'une forte demande des consommateurs, et de la
baisse du prix du matériel informatique ayant rendu possible sa réalisation.
Dans les systèmes d'exploitation en temps partagé la notion de batch n'a que peu d'importance.
Ces systèmes mettent en œuvre de nouveaux mécanismes d'utilisation du processeur et de la
mémoire, qui leur permet de répondre rapidement à des demandes provenant simultanément
d'un grand nombre d'utilisateurs.
Dans ces systèmes, tout comme dans la génération précédente, l'utilisation du processeur est
planifiée. Cependant, contrairement aux systèmes de la génération précédente, dans les
systèmes en temps partagé chaque programme est exécuté durant une tranche de temps

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

servir simultanément plusieurs personnes augmentait le retour sur investissement de l'achat de


matériel très coûteux par les entreprises et les institutions. Cependant, du fait de son écriture
dans un langage de programmation PL/I trop complexe pour les ordinateurs de l'époque,
Multics fut un échec commercial. Il a cependant inspiré en grande partie la gamme de
systèmes GCOS développés conjointement par Honeywell et Bull.
En 1969, les ingénieurs Ken Thompson et Dennis Ritchie des laboratoires Bell rêvent d'utiliser
le système d'exploitation Multics, mais le matériel pour le faire fonctionner est encore hors de
prix. Thompson se lance dans l'écriture d'une version allégée de Multics pour un PDP-
7 inutilisé. Le système, fonctionnel, est surnommé Unics (pour UNiplexed Information and
Computing Service), puis finalement baptisé UNIX. Rapidement reprogrammé dans un langage
de programmation plus approprié (le C, développé par Ritchie pour l'occasion), UNIX se révèle
particulièrement simple à porter sur de nouvelles plateformes, ce qui assure son succès.
§ 1972, les micro-ordinateurs
Dès 1980, les circuits électroniques à transistor ont été remplacés par des circuits intégrés, plus
petits, ce qui a permis de réaliser des appareils plus compacts et moins coûteux et lancé le
marché des ordinateurs personnels. De nombreux concepteurs de système d'exploitation qui se
sont lancés sur ce marché n'avaient pas d'expérience, ce qui a donné de nouveaux produits,
fondés sur des nouvelles idées, sans héritage ou influence de ce qui se faisait jusqu'alors. CP/M,
mis sur le marché en 1974, a été le premier système d'exploitation pour micro-ordinateur, son
caractère très sympathique, facile à aborder et commode (user-friendly) l'a rendu très populaire
et influencé le marché des systèmes d'exploitation.
En 1980, IBM prend contact avec Bill Gates, cofondateur de la société Microsoft, pour
l'adaptation du langage BASIC à son nouveau micro-ordinateur : le Personal
Computer (abrégé PC). IBM est également à la recherche d'un système d'exploitation, et Bill
Gates leur conseille de se tourner vers CP/M. Mais Gary Kildall refuse de signer le contrat avec
IBM. Bill Gates saute sur l'occasion : il rachète QDOS un système d'exploitation quick-and-
dirty pour les processeurs Intel 8086 pour proposer à IBM le package DOS/BASIC. Après
quelques modifications effectuées à la demande d'IBM, le système est baptisé MS-DOS.
Xerox, une des sociétés majeures de l'époque, s'intéresse à l'optique de Steve Jobs. Elle réunit
une poignée de scientifiques et d'ingénieurs dans son centre de recherche de Palo Alto et
développe le premier micro-ordinateur équipé d'une interface utilisateur graphique, sur la base
de thèses et d'études en ergonomie effectuées les années précédentes. Le résultat de ces
recherches, le Xerox Star, ne sera jamais commercialisé. Dix ans plus tard, c'est Apple avec
le Macintosh qui popularise les recherches effectuées par Xerox.

24
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION

§ 1990, les systèmes d'exploitation sous licence libre


En 1983, Richard Stallman du Massachusetts Institute of Technology lance l'idée d'un système
d'exploitation sous licence libre : GNU. Il développe des outils de programmation, des logiciels
utilitaires, et crée la GNU General Public License un contrat de licence autorisant une utilisation
sans restrictions ainsi que la publication du code source, sa modification, et sa redistribution.
Le succès est immédiat, mais le système ne possède toujours pas, en 1990, de noyau libre, et
les tentatives pour en développer un sont loin d'être abouties.
En 1987, Andrew Tanenbaum, professeur à l'université libre d'Amsterdam crée le système
d'exploitation Minix, clone d'UNIX dont le code source est destiné à illustrer son cours sur la
construction des systèmes d'exploitation. Mais Minix, dont la vocation est pédagogique,
comporte alors de trop nombreuses limitations techniques et ne permet pas une utilisation
poussée.
En 1989 un « système d'exploitation libre » apparaît à la même époque : 4.4BSD. La Berkeley
Software Distribution (BSD) est la version d'UNIX développée par les étudiants et les
chercheurs de l'université de Berkeley depuis 1977. Les logiciels utilitaires, créés sous licence
libre, sont vendus avec le noyau Unix de AT&T, lui-même sous licence propriétaire. Cette
double licence de BSD est à l'origine de plusieurs années de litige entre l'Université de Berkeley
et AT&T. Les étudiants de l'université travaillent à remplacer les programmes développés par
AT&T par leurs propres programmes, sous licence libre, afin de résoudre le litige. Cette
situation dure jusqu'à la sortie de 4.4BSD en 1994, qui ne contient pratiquement plus de code
AT&T.
En 1991, Linus Torvalds, étudiant à l'université d'Helsinki, inspiré par les travaux de
Tanenbaum, sort la toute première version (0.0.1) de son propre noyau : Linux, qui est au départ
une réécriture de Minix. Linux passe sous licence GNU en 1992 et il faut attendre 1994 pour
voir la version 1.0, donnant ainsi naissance à la distribution d'un système d'exploitation
entièrement libre, GNU/Linux.
C'est à la suite des initiatives et travaux de Linus Torvalds et de Richard Stallman, aidés par
des milliers de bénévoles, et consécutivement aux travaux des étudiants de l'université de
Berkeley que GNU/Linux et 4.4BSD sont devenus les premiers systèmes d'exploitation sous
licence libre.

25
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION

Organisation générale du noyau

Comparaison entre noyau monolithique ou micronoyau.


Un système d'exploitation est essentiellement événementiel - il est exécuté lorsque quelque
chose s'est passé, typiquement lors d'un appel système, une interruption matérielle ou une
erreur. C'est un logiciel étendu et complexe, qui offre de nombreuses fonctions. Il est construit
comme une suite de modules, chacun ayant une fonction déterminée.
Le noyau (en anglais : kernel) est la pièce centrale du système d'exploitation. C'est le second
programme chargé en mémoire (juste après le bootloader) et il y reste en permanence - ses
services sont utilisés continuellement.
Il réside généralement dans un emplacement protégé de mémoire vive, qui ne peut pas être
modifié ni exploité par les autres programmes30 (c'est-à-dire dans le cas d'un système
d'exploitation en mode protégé).
C'est un composant critique : si le kernel subit une erreur et s'arrête alors l'ordinateur cessera
de fonctionner, tandis que si un autre programme s'arrêtait (par exemple un programme
utilisateur) alors le système d'exploitation resterait opérationnel.
Il offre typiquement des fonctions pour créer ou détruire des processus (i.e. exécuter des
programmes), diriger l'utilisation du processeur, de la mémoire et des périphériques. Il offre
également les fonctions qui permettent aux programmes de communiquer entre eux et de
s'aligner dans le temps (synchronisation).
§ Noyau monolithique
Dans une construction monolithique, le système d'exploitation est composé d'un seul
programme : le noyau. Celui-ci est typiquement organisé en couches. La construction
monolithique est la plus courante, appliquée à la plupart des Unix ;

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

Comparaison des principaux systèmes d'exploitation

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

Amstrad CPC, Commodore (cas de


1978-1985 CP/M Digital Research ordinateurs personnels
128, TRS-80 MP/M)

1981-1990 DOS IBM & Microsoft Compatible PC ordinateurs personnels

Quantum
compatibles systèmes embarqués,
1982 QNX Software
PC, MIPS, PowerPC, ARM automates industriels
Systems

1984 Mac OS Apple Apple Macintosh ordinateurs personnels

Atari ST, Eagle, Medusa, Hades,


1985 TOS Atari ordinateurs personnels
Milan, FireBee, ColdFire

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

Compatible PC, SPARC, Hewlett-


1986-1996 NeXTSTEP Unix NeXT stations de travail
Packard

1987-2006 OS/2 IBM et Microsoft PS/2 et Compatible PC ordinateurs personnels

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

1991 GNU/Linux Unix (communautaire) nombreux tous N 12

serveurs, stations de
Windows
1991 Windows Microsoft Compatible PC travail, ordinateurs
NT
personnels

1994N 14 NetBSD Unix (communautaire) nombreuxN 15 tous

1994N 14 FreeBSD Unix (communautaire) nombreuxN 16 tous

1994N 14 OpenBSD Unix (communautaire) nombreuxN 17 tous

smartphone, assistants
Windows
1996 Windows Microsoft x86, MIPS, ARM38 personnels, automates 39
CE
industriels

1996 RTX Intervalzero x86, x6440 ordinateurs 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

consortium Open produits des fabricants de l'Open smartphone, tablette


2007 Android Unix ?? ??
Handset Alliance Handset Alliance électronique

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é

Parts des systèmes d'exploitation des PC en 2014 dans le monde.

Parts des systèmes d'exploitation des smartphones en 2011 dans le monde.


Née en 1985, la gamme des systèmes Windows de Microsoft équipe en 2008 près de 90 % des
ordinateurs personnels, ce qui la place en situation de monopole notamment auprès du grand
public. En 2008, ses parts de marché sont descendues en dessous de 90 % pour la première fois
depuis 15 ans. Puis à la suite de la croissance très rapide du marché des smartphones, et du
retard pris par Microsoft sur ce marché, ses parts de marché sur les appareils personnels sont
passées de 95 % en 2005 à 20 % en 2013.
Amorcée en 1969, la famille de systèmes d'exploitation Unix compte plus de
25 membres. GNU/Linux, BSD et Mac OS X sont aujourd'hui les systèmes d'exploitation les
plus populaires de la famille Unix.
La famille Windows équipe, en 2009, 38 % des serveurs tandis que la famille Unix en
équipe 31 % %, dont à peu près la moitié avec GNU/Linux. La famille Unix anime 60 %
des sites web dans le monde46. La famille GNU/Linux équipe 100 % des
500 superordinateurs du monde. En mai 2019, la famille Unix anime plus de 98 %
des smartphones.

32
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION

Né en 1990, Symbian OS est en 2007 le système d'exploitation le plus répandu sur


les téléphones mobiles et assistants personnels, avec 67 % de part de marché.
En 2012, les quatre systèmes
d'exploitation Android de Google, Symbian, iOS de Apple et Blackberry de Research In
Motion occupent ensemble 95 % du marché des smartphones. Android, le plus populaire
(75 %), est en progression, tandis que les autres sont en recul. Les parts de marché de Symbian
ne sont plus que de 2 %.
Du côté des tablettes tactiles, iOS de Apple était le premier système d'exploitation largement
diffusé avec plus de 80 % de part de marché en 2010. Trois ans plus tard sa part de marché est
de 20 % et celle de Android est de plus de 56 %.
Les serveurs et super-ordinateurs sont majoritairement équipés de systèmes d'exploitation de la
famille UNIX.
Choix par l'acheteur
De nombreux logiciels applicatifs sur le marché sont construits pour fonctionner avec un
système d'exploitation en particulier, ou une famille en particulier et un système d'exploitation
est construit pour fonctionner avec une gamme de machines donnée. Pour l'acheteur le choix
de la famille de machine limite le choix du système d'exploitation, qui lui-même limite le choix
des logiciels applicatifs.
Chaque système d'exploitation, selon la palette de programmes qu'il contient, est construit pour
fonctionner avec certains réseaux informatiques. Pour l'acheteur qui possède un réseau
informatique (typiquement les entreprises et les institutions) le choix du système d'exploitation
dépend de son adéquation au réseau existant de l'acheteur.
L'utilité d'un système d'exploitation pour l'usager est proportionnel au nombre de logiciels
applicatifs qui sont prévus pour lui. La popularité élevée d'un système d'exploitation attire les
éditeurs de logiciels applicatifs, ce qui accroit encore sa popularité (effet réseau). Ce
phénomène fait que le marché est sujet aux situations de monopole.
Apple, Sun Microsystems et Silicon Graphics sont des marques qui fabriquent du matériel
informatique et développent des systèmes d'exploitation pour leur propre matériel. Certains
systèmes d'exploitation, comme Microsoft Windows et Android, sont vendus avec le matériel
informatique, conformément à des accords entre les fabricants.
VIII. CONCURRENCE, COMPATIBILITE ET INTEROPERABILITE
La compatibilité d'un système d'exploitation est sa capacité à être utilisé à la place d'un autre,
en particulier à exécuter les logiciels applicatifs de l'autre. Le système d'exploitation est dit

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

publier les spécifications de ses technologies, en particulier les interfaces de programmation et


les protocoles réseau, ceci afin de préserver l'interopérabilité et la concurrence60.
Plus tard, en 2007, Microsoft est condamné par la Commission européenne à une amende de
près de 500 millions d'euros pour violation de l'article 82 du traité CE et l'article 54 de l'accord
EEE (textes relatifs au droit de la concurrence et l'abus de position dominante) après avoir
refusé de publier une de ses spécifications techniques à son concurrent Sun Microsystems.
Selon la Commission européenne, les agissements de Microsoft nuisent à l'interopérabilité des
systèmes d'exploitation et à la concurrence.
ü Les réseaux informatiques
Chaque système d'exploitation comporte une palette de programmes relatifs aux protocoles
réseau. La composition de la palette dépend du choix de l'éditeur et diffère d'un système
d'exploitation à l'autre. Toutefois, deux ordinateurs ne peuvent communiquer ensemble qu'à la
condition unique d'utiliser les mêmes protocoles.
La popularisation d'Internet dans les années 1990 a poussé de nombreux éditeurs à inclure dans
leur système d'exploitation des programmes relatifs aux protocoles TCP/IP (les protocoles
d'Internet), améliorant ainsi l'interopérabilité entre les systèmes d'exploitation.
IX. SYSTEME DE FICHIERS
Le terme système de fichiers (abrégé « FS » pour File System, parfois filesystem en anglais)
désigne de façon ambigüe :
• soit l'organisation hiérarchique des fichiers au sein d'un système d'exploitation (on parle
par exemple du file system d'une machine unix organisé à partir de sa racine (/) )
• soit l'organisation des fichiers au sein d'un volume physique ou logique, qui peut être
de différents types (par exemple NTFS, FAT, FAT32, ext2fs, ext3fs, ext4fs, zfs, btrfs,
etc.), et qui a également une racine mais peut en avoir plusieurs,
• soit parce que le système de fichiers permet de prendre des instantanés (snapshots).
• soit parce que le système de fichiers (par exemple: zfs) permet l'existence de volumes
virtuels (datasets sous zfs), qui partagent un même espace physique, mais peuvent être
montés à des endroits différents d'une même hiérarchie de fichiers, ce qui permet la dé-
duplication entre des volumes différents et a l'avantage de ne pas imposer à chaque
volume virtuel de réserver un espace fixe difficile à modifier après coup.
De façon générale, un système de fichiers ou système de gestion de fichiers (SGF) est une façon
de stocker les informations et de les organiser dans des fichiers sur ce que l'on appelle, en génie
logiciel, des mémoires secondaires2 (pour le matériel informatique, il s'agit de mémoire de

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

DECtape DEC 1964 PDP-6 Monitor

Level-D DEC 1968 TOPS-10

George3 ICT (later ICL) 1968 George 3

ODS-1 DEC 1972 RSX-11

RT-11 file
DEC 1973 RT-11
system

Core Operating
DOS (GEC) GEC 1973
System

CP/M file
Gary Kildall 1974 CP/M
system

V6FS Bell Labs 1975 Unix version 6

OS4000 GEC 1977 OS4000

Marc Microsoft Standalone


FAT (8-bit) 1977
McDonald, Microsoft Disk BASIC-80

DOS 3.x Apple Computer 1978 Apple DOS

Pascal Apple Computer 1978 Apple Pascal

BASIC Microsoft (for


CBM DOS Commodore 1978
CBM PET)

V7FS Bell Labs 1979 Version 7 Unix

ODS-2 DEC 1979 OpenVMS

Tim Paterson, Seattle


FAT12 1980 QDOS, 86-DOS
Computer Products

Carnegie Mellon Multiplatform


AFS 1982
University MultoOS

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

Acorn Electron (plus


ADFS Acorn Computers Ltd 1983
tard Arthur RISC OS)

FFS Kirk McKusick 1983 4.2BSD

ProDOS Apple Computer 1983 ProDOS 8

MFS Apple Computer 1984 Mac OS

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

HFS Apple Computer 1985 Mac OS

Metacomco pour Commo


Amiga OFS 1985 AmigaOS
dore

High Sierra Ecma International 1985 MS-DOS, Mac OS

NWFS Novell 1985 NetWare 286

Compaq MS-
FAT16B Compaq 1987 DOS 3.31, DR
DOS 3.31

MINIX V1
Andrew S. Tanenbaum 1987 MINIX 1.0
FS

Amiga FFS Commodore 1988 AmigaOS 1.3

HPFS IBM et Microsoft 1988 OS/2

ISO Ecma MS-DOS, Mac OS,


1988
9660:1988 International, Microsoft et AmigaOS

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

JFS1 IBM 1990 AIX3

développé pour Unix


VERITAS (maintenant Sy
VxFS 1991 System
mantec)
Laboratories, HP-UX4

ext Rémy Card 1992 Linux

WAFL NetApp 1992 Data ONTAP

MINIX V2
Andrew S. Tanenbaum 1992 MINIX 1.6 et 2.0
FS

AdvFS DEC 19935 Digital Unix

NTFS Microsoft, Tom Propriéta


1993 Windows NT 3.1
Version 1.0 Miller, Gary Kimura ire

LFS Margo Seltzer 1993 Berkeley Sprite

ext2 Rémy Card 1993 Linux, Hurd

UFS1 Kirk McKusick 1994 4.4BSD

XFS SGI 1994 IRIX

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

PFS Michiel Pelt 1996 AmigaOS

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

Romeo Adaptec 1996 Microsoft Windows

UDF ISO/ECMA/OSTA 1995 -

FAT32 Microsoft 1996 Windows 95b6

LSC Inc, Sun


QFS 1996 Solaris
Microsystems

GPFS IBM 1996 AIX, Linux, Windows

Be File Be Inc., D. Giampaolo, C.


1996 BeOS, HaikuOS
System Meurillon

HFS Plus Apple Computer 1998 Mac OS 8.1

NSS Novell 1998 NetWare 5

PolyServe
File System PolyServe 1998 Windows, Linux
(PSFS)

ODS-5 DEC 1998 OpenVMS 7.2

AmigaOS, AROS, Mo
SFS John Hendrikx 1998
rphOS

ext3 Stephen Tweedie (en) 1999 Linux

Microsoft
ISO Ecma Windows, Linux, Mac
1999
9660:1999 International, Microsoft OS X, FreeBSD,
et AmigaOS

OS/2 Warp Server for


JFS IBM 1999
e-business

GFS Sistina (Red Hat) 2000 Linux

Melio FS Sanbolic 2001 Windows

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

ReiserFS Namesys 2001 Linux

z/OS (backported
zFS IBM 2001
to OS/390)

FATX Microsoft 2002 Xbox

UFS2 Kirk McKusick 2002 FreeBSD 5.0

Cluster File Systems (plus


Lustre 2002 Linux
tard Oracle Corporation)

OCFS Oracle Corporation 2002 Linux

VMware ESX
VMFS2 VMware 2002
Server 2.0

ext3cow Zachary Peterson 2003 Linux

Plan 9 from Bell


Fossil Bell Labs 2003
Labs 4

Google File
Google 2003 Linux
System

PramFS MontaVista 2003 Linux

Windows
Reliance7 Datalight 2003 CE, VxWorks, custom
ports

VERITAS (maintenant Sy AIX, HP-


VxCFS 2004
mantec) UX, Solaris, Linux

ZFS Sun Microsystems 2004 Solaris CDDL

Reiser4 Namesys 2004 Linux

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

OCFS2 Oracle Corporation 2005 Linux

NILFS NTT 2005 Linux

VMware ESX Server


VMFS3 VMware 2005
3.0

GFS2 Red Hat 2006 Linux

ext4 Various 2006 Linux

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

Btrfs Oracle Corporation 2007 Linux GPL

Sage Weil, Inktank


Ceph 2007, 2012 Linux
Storage, Red Hat

kwiirk and Waninkoko


WBFS 2008 Wii
(Wii homebrew)

HAMMER Matthew Dillon 2008 DragonFly BSD

Tux3 Various 2008 Linux

Nokia avec l'aide de


UBIFS 2008 Linux
l'Université de Szeged

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

Seulement Linux - Red


Oracle Hat Enterprise Linux 5
Oracle Corporation 2009
ACFS et Oracle Enterprise
Linux 5

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

VMware ESXi 5.0tux


VMFS5 VMware 2011
3 stats

ReFS Microsoft 2012, 2013 Windows Server 2012

Lanyard
Dan Luedtke 2012 Linux
Filesystem

F2FS Samsung 2012 Linux GPLv2

APFS Apple 2016 macOS

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

Exemple d'arborescence de fichier.


Le volume des données traitées par les applications informatiques atteint couramment plusieurs
centaines de gigaoctets et va jusqu'à plusieurs téraoctets pour certaines applications
industrielles. De tels volumes de données ne peuvent pas être stockées dans la mémoire
centrale. De plus, un stockage persistant à long terme, permettant de sauvegarder les données
traitées ou à traiter pour une utilisation future, est également nécessaire. Le principe employé
pour répondre à ce problème consiste à stocker ces données dans des mémoires secondaires
sous forme de fichiers, c'est-à-dire de suites de blocs (la plus petite unité que le périphérique de
stockage est capable de gérer). Le contenu de ces blocs, simple suite de données binaires, peut
être interprété selon le format de fichier comme des caractères, des nombres entiers ou flottants,
des codes d'opérations machines, des adresses mémoires, etc. L’échange entre les deux types
de mémoire se fait ensuite par transfert de blocs.
L'objectif du système de fichiers est de permettre l'accès au contenu des fichiers stockés
(l'ouverture du fichier, son enregistrement sa copie ou son déplacement dans un second
emplacement, ou sa suppression) à partir de leur chemin d'accès, formé d'un nom précédé d'une
liste de répertoires imbriqués.

46
SUPPORT DU COURS DE THEORIES DE SYSTEME D’EXPLOITATION

Représentation pour l'utilisateur


Pour l'utilisateur, un système de fichiers est vu comme une arborescence : les fichiers sont
regroupés dans des répertoires (concept utilisé par la plupart des systèmes d’exploitation). Ces
répertoires contiennent soit des fichiers, soit récursivement d'autres répertoires. Il y a donc un
répertoire racine et des sous-répertoires. Une telle organisation génère une hiérarchie de
répertoires et de fichiers organisés en arbre.
Principe de stockage
Différentes méthodes permettent d'associer un nom de fichier à son contenu. Dans le cas du
système de fichiers FAT, ancien système de fichiers de MS-DOS et de Windows encore
largement utilisé sur les supports amovibles comme les clés USB, chaque répertoire contient
une table associant les noms de fichiers à leur taille et un index pointant vers la table d'allocation
de fichiers, une zone réservée du disque indiquant pour chaque bloc de données l'index du bloc
suivant du même fichier.
Dans le cas des systèmes de fichier d'Unix (ou de Linux/Minix), les fichiers et les répertoires
sont identifiés par un numéro unique, le numéro d'inode. Ce numéro permet d'accéder à une
structure de données (inode) regroupant toutes les informations sur un fichier à l'exception du
nom, notamment la protection d'accès en lecture, en écriture ou des listes de dates, ainsi que le
moyen d'en retrouver le contenu. Le nom est stocké dans le répertoire associé à un numéro
d'inode. Cette organisation présente l'avantage qu'un fichier unique sur disque peut être connu
du système sous plusieurs noms.
L'organisation du système de fichiers NTFS est encore plus complexe, fonctionnant un peu à la
façon d'une base de données.
Nom de fichier
Le nom d'un fichier est une chaîne de caractères, souvent de taille limitée. Aujourd'hui,
quasiment l'ensemble des caractères du répertoire Unicode est généralement utilisable, mais
certains caractères spécifiques ayant un sens pour le système d'exploitation peuvent être
interdits ou déconseillés. C'est le cas par exemple pour les caractères « : », « / » ou « \ » sous
Windows.
Les systèmes de fichier Unix utilisent des noms de fichiers basés sur une suite d'octets. Les
couches basses des logiciels (noyau, systèmes de fichier) manipulent les noms de fichiers sans
connaître le jeu de caractère utilisé. Au niveau utilisateur, le jeu de caractère utilisé n'est
généralement pas fourni par le système de fichiers, mais dépendant des paramètres régionaux
de l'utilisateur. Dans un contexte où l'interopérabilité à un niveau mondial est souhaitée, une
compatibilité Unicode est désirée et alors, l'UTF-8 est de plus en plus utilisé notamment dans

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

Sous les premières versions de Windows NT (NT3.x et NT4), il y a le choix entre le


système FAT16 et NTFS. Ce système d'exploitation ne supporte pas le FAT32. Généralement,
le système NTFS est conseillé, car il procure une sécurité plus grande ainsi que des
performances accrues par rapport au FAT. Contrairement aux précédentes versions de
Windows NT, Windows NT5 (Windows 2000) accepte des partitions de
type FAT16, FAT32 et NTFS. Ainsi, le système de fichiers le plus récent (NTFS 5) est conseillé
puisqu’il offre de plus nombreuses fonctionnalités que les systèmes FAT.
Le SP1 de Vista propose de formater en exFAT qui est une grosse évolution de la FAT,
proposant une meilleure fiabilité, une « vraie » gestion des noms longs, et l'ACL. Windows
CE 6 (le futur Windows Mobile 7) gère aussi ce nouveau FS. Le but de Microsoft est de
remplacer la FAT, principalement utilisée sur les supports amovibles comme les cartes
mémoires.
Le monde des Unix (Unix, Linux, BSD, Mac OS X) supporte un très grand nombre de systèmes
de fichiers. Cela est dû au fait que malgré leur nombre, les systèmes supportés suivent
généralement des standards et notamment POSIX.
Non journalisés
§ ext et ext2 : Extented FS version 2 (Linux, BSD, Windows via un pilote tiers)
§ exFAT : Extended File Allocation Table (nouveau système de fichiers proposé
par Microsoft pour remplacer la FAT sur les supports amovibles)
§ FAT : File Allocation Table (DOS/Windows, Linux, BSD, OS/2, Mac OS X). Se
décompose en plusieurs catégories :
§ FAT12 ;
§ FAT16 ;
§ FAT32 ;
§ VFAT ;
§ FATX : système de fichiers pour Xbox.
§ FFS : Fast File System (BSD, Linux expérimental)
§ HFS : Hierarchical File System (Mac OS, Mac OS X, Linux)
§ HPFS : High Performance FileSystem (OS/2, Linux)
§ minix fs (minix, Linux)
§ S5 (UNIX System V, Linux)
§ Unix File System : (BSD, Linux en lecture seule)

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

§ NFS (tous les UNIX, Linux, Mac OS X, IRIX) (Windows pour la 4)


§ NCP (Novell NetWare, Linux en client seul)
§ SSHFS (Linux via FUSE)
§ SMB ou Server Message Block (Windows) (Linux, BSD et Mac OS X via Samba)
§ CIFS (Évolution de SMB, géré par Samba ainsi que par Windows 2000 et XP)
§ Tahoe-LAFS10 (libre, distribué, chiffré et avec tolérance aux pannes, tous
les UNIX, Linux, Mac OS X, Windows)
Cluster
§ GFS2, Global file system : Linux
§ GPFS, General Parallel File System : Linux, AIX, Windows
§ GlusterFS : Linux, UNIX
§ Lustre, Compression de Linux et de Cluster : Linux
§ OCFS2, développé par Oracle : Linux
§ ACFS : ASM Cluster FS développé par Oracle : (Linux, AIX, Solaris, Windows)
§ PVFS2, Parallel Virtual FileSystem version 2 : Linux, UNIX
Spécialisés
§ CFS Cryptographic File System : FS chiffré (BSD, Linux)
§ cramfs : FS compressé (Linux en lecture seule)
§ SquashFS : système de fichiers compressé en lecture seule (Linux)
§ EFS Encrypting File System : FS chiffré au-dessus de NTFS (Windows11)
§ ISO 9660 : en lecture seule sur tous les systèmes lisant les CDROM/DVDROM de
données
§ JFFS et JFFS2 : FS pour support physique sans block, typiquement des cartes flash. Il
est compressé et journalisé (Linux)
§ UBIFS : FS journalisé pour support physique sans block, typiquement des cartes flash
(Linux)
§ F2FS (Flash-Friendly File System) : FS Open Source développé par Samsung et intégré
au noyau Linux il est destiné aux supports de stockage de type flash.
§ QNX4fs : FS utilisé pour le temps réel (QNX, Linux en lecture seule)
§ UDF : le format de disque universel (système de fichiers des DVD-ROM et des disques
optiques réinscriptibles tels les CD-RW, DVD±RW, etc. Version Microsoft est Système
de fichiers dynamique)
§ VMFS : FS destiné à la virtualisation (VMware)

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

§ OpenVMS : système de fichiers Spiralog


§ uc/FS : système de fichiers pour OS uCOS//II [Link]
§ Veritas File System : système de fichiers développé par Veritas
§ WBFS (Wii Backup File System): Permet le stockage des backups de DVD pour Wii
sur un disque dur

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

quelques milliers 1 cycle


Registres de processeur
d’octets processeur

Niveau 0 (L0) mémoire


6 Ko2
des microcodes

Niveau 1 (L1) mémoire


cache des instructions
128 Ko 700 Go/s3
Niveau 1 (L1) mémoire
Mémoire cache de données
cache CPU Niveau 2 (L2) cache partagée
1 Mo 200 Go/s3
(instructions et données)

Niveau 3 (L3) cache partagée


6 Mo 100 Go/s3
(instructions et données)

Niveau 4 (L4) cache partagée


128 Mo 40 Go/s3
(instructions et données)

Mémoire vive de type DRAM quelques Go 10 Go/s3

Disque dur quelques To

Solid State
600 Mo/s4
Drive

Librairie de sauvegarde plusieurs exaoctets 160 Mo/s5


Les coûts varient également entre les niveaux. Ainsi, en 2012, un Go de mémoire de disque
dur coûtait 0,06 € comparativement à 5 € pour un Go de mémoire vive de type DRAM.

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

Vous aimerez peut-être aussi