Académique Documents
Professionnel Documents
Culture Documents
LICENCE I – MAI
1
Introduction Générale
L'histoire de l'informatique a montré que les ordinateurs étaient apparus avec la seconde
guerre mondiale et ceux-ci n'étaient accessibles qu'à la classe aisée à l'époque ainsi que les
grandes entreprises. Ces ordinateurs sont appelés des centraux.
Avec l'évolution, la fabrication des systèmes micro-ordinateurs, ou ordinateurs de
bureau, serveurs dédiés ont permis d'informatiser les systèmes d'entreprises, les secteurs de
la recherche et de l'enseignement. Ces ordinateurs en plus de fonctions intégrées
fonctionnent à base d'un programme appelé «système d'exploitation» qui sert d'interface
entre le matériel et le logiciel. Les systèmes d'exploitation sont à caractère universel parmi
lesquels on peut distinguer les systèmes Windows de Microsoft et les systèmes UNIX/Linux
(GPL).
En effet, les systèmes Linux sont plus riches, homogènes et souples (basés sur les
logiciels libres), mais leur méconnaissance et la non-maîtrise font qu'ils sont dans le superflue.
Ce cours va permettre au lecteur de maîtriser en particulier l'environnement Linux mais aussi
d'être capable de travailler avec beaucoup plus d'aisance sur les systèmes Windows.
2
La partie matérielle est constituée des différents composants électroniques contenue dans
un boîtier appelé « Unité Central ». Le boîtier est composé des périphériques internes auquels
on peut relier des périphériques externes. On distingue :
La carte mère: elle constitue le socle des composants
Le processeur ou CPU (Central Processus Unit): Organe interne primordial dans le
processus d'exécution des tâches
Les mémoires centrales: Chargées de garder les informations (RAM, ROM)
Les mémoires de masse: utilisées comme espace de stockage de fichiers (Disque Dur,
Disquette, DVD, périphériques USB, ...)
Les périphériques d'entrées – sorties (clavier, souris, ...): ils permettent d'interagir avec
l'unité centrale
La partie logicielle est constituée de programmes et gérée par le BIOS (Basic Input Output
System). Ces programmes sont classés en deux grandes catégories :
Les programmes systèmes
Les programmes d'applications
Les programmes d'applications sont développés pour répondre aux besoins spécifiques des
utilisateurs alors que les programmes systèmes contrôlent le fonctionnement des différentes
composantes de l'ordinateur.
3
1.3 Organisation d'un ordinateur
La structure logique d'un ordinateur est organisée sous forme de couches supperposées:
la couche la plus basse appelée couche matérielle, englobe les composants du
système. Elle est différente pour chaque ordinateur.
Après la couche matérielle, nous avons la couche BIOS (Basic Inut Output System).
Cette couche gère les communications entre l'ordinateur et ses périphériques. Sa
fonction principale est la détection des entrée/sorties présentes sur le système.
La couche système d'exploitation, permet à l'aide de programmes au système et à
l'utilisateur de gérer les ressources matérielles et logicielles.
La couche application, plus haut niveau de l'architecture comprend l'ensemble des
programmes exécutables.
Couche Applications
Couche SE
Couche BIOS
Couche Matérielle
4
1.4 Historique et types de systèmes d'exploitation
L'historique des systèmes d'exploitation a suivi celle de l'architecture des ordinateurs. Il y a eu
plusieurs évolutions, mais les plus importantes sont :
Les premiers systèmes (1945-1955) : cette génération était marqué par le traitement
par lots et des systèmes mono-programmés. Le système d’exploitation gère un seul
programme à la fois. En d’autres termes, quand il commence l’exécution d’un
programme, il le termine avant de passer au programme suivan t. Les programmes
étaient chargés manuellement. Il s'agissait des machines à tubes (sans mémoire).
Les transistors (1955-1965) : cette génération est caractérisée par l'arrivée des
transistors. Les systèmes étaient dotés des langages de programmation tels que
l'assembleur ou FORTRAN. Plusieurs processus pouvaient être exécutés. Par exemple,
un processus P1 est lancé et si pendant son exécution comporte un temps mort, un
autre processus P2 peut être lancé, car à ce moment là le processeur n'exécutait
aucune instruction.
Les premiers OS (19655-1980) : cette génération était marquée par l'arrivée des
circuits intégrés et les premiers systèmes d'exploitation multi-tâches et multi-
utilisateurs. Le processeur exécutait plusieurs tâches à la fois et plusieurs programmes
pouvaient être lancés simultanément.
Quatrième génération (à partir de 1980) : A partir de 1980, on commençait à utiliser
les micro-ordinateurs. Les systèmes supportaient les systèmes d'exploitation réseau
(systèmes interactifs, systèmes distribués). C'est l'apparition de la mico-informatique
(micro-processeur, diversification des champs d'application, ...).
Cinquième génération : la cinquième génération est marquée par une miniaturisation
à l'extrême des composants (processeur plus petit, systèmes embarqués, ...) et une
nouvelle manière de représenter les données.
5
systèmes d'exploitation dits libres ou open-source (tout simplement parce qu'on peut accéder
au code source, le modifier et l'adapter à nos propres besoin).
On distingue :
Les systèmes d'exploitation de Microsoft tels que :
- Windows NT
- Windows 7
- Windows 8
Les systèmes serveurs
- Windows 2000 server
- Windows 203 server
- Windows 2008 server
- Windows 2012 Serveur
Les systèmes d'exploitation de type Linux
Parmi les systèmes Linux, nous avons deux grandes distributions :
- Distribution DEBIAN et Ubuntu
- Distribution RedHat/Fedora
- versions CENTOS
- Versions Fedora
- Distribution SuSE
- Distribution ArchiLinux
NB : Nous avons énuméré quelques distributions, mais il y'en a d'autres.
6
C'est au dessus de ce système que viennent se placer les programmes utilisateurs, que l'on
appelle également les « applications », ou « programmes d'applications» tels que les suites
bureautiques.
7
Figure 1.4 : Rôle d’un système d’exploitation
Le système d'exploitation apparaît donc comme une machine virtuelle de haut niveau
pour les programmes. Il est évident que le système doit savoir se montrer le plus souple,
homogène et à moindre (ou peut s'obtenir sans frais), car le but final n'est pas de gérer
l'ordinateur mais bel et bien de s'en servir. La notion de système d'exploitation englobe donc
de plus en plus l'ensemble des logiciels permettant d'utiliser le matériel et les logiciels
d'applications courantes. Mais bien entendu, il ne s'agit là que d'un abus de langage, dont le
grand public n'a pas forcément pris conscience.
8
par la machine au travers d'une interface beaucoup plus simple à utiliser. Cette couche
logicielle permet aussi de proposer de nouvelles fonctionnalités à partir de celles de la
machine physique étendant ainsi les possibilités de cette dernière.
Une architecture désigne l'organisation (logique et physique) et la structure générales
que cela soit au niveau matériel ou logiciel. Chaque système d'exploitation a une architecture
qui lui est propre. Par conséquent l'objectif de cette partie est de présenter une architecture
générale (très) simplifiée afin de percevoir la composition d'un OS.
Les applications
Les applications représentent les différents programmes lancés.
Les bibliothèques
Les bibliothèques mettent à disposition du système d'exploitation et des programmes
applicatifs des morceaux de programmes tout prêts, dont le but est de faciliter l'accès à
certaines fonctions. Grâce aux bibliothèques (.dll, .OCX, ...), les développeurs peuvent
facilement et rapidement réutiliser des fonctions utiles, sans avoir à les reprogrammer eux-
mêmes.
L'interface homme machine
L'interface homme machine (IHM) permet de faire communiquer l'utilisateur et le
système. C'est d'ailleurs le shell ou DOS qui est un logiciel fournissant une interface pour un
utilisateur qui se charge de cela. Elle peut être graphique (GUI, pour Graphical User Interface),
dans ce cas les parties les plus typiques de ce type d’environnement sont le pointeur de la
9
souris, les fenêtres, le bureau, les icônes. De plus, des contrôles graphiques sont utilisés pour
interagir avec l’utilisateur : les boutons, les menus, les barres de défilement.
10
C'est ainsi que la gestion de l'unité centrale assurée par un système temps-partagé permettant
à chaque utilisateur du système de croire qu'il possède chacun un processeur qui travaille
exclusivement pour exécuter ses programmes. De même, la gestion appropriée de la
mémoire centrale permettra :
Le chargement de plusieurs programmes à la fois dans cette même mémoire centrale.
L'exécution de programmes bien plus grands que la taille de la mémoire centrale
Pour se rendre compte de l'importance du rôle du système en tant qu'interface pour les
programmes d'applications, il suffit de considérer le cas d'une machine, fort heureusement
irréel, démunie d'un système d'exploitation et sur laquelle nous devons développer quelques
programmes d'applications.
On perdra beaucoup de temps à la mise au point des différentes parties des programmes
devant interagir avec le matériel et les différents périphériques. A cela s'ajoute les tâches de
maintenance qui vont s'avérer difficile quant au remplacement des périphériques ou
composants du système.
Linux marseille 2.6.32-431.5.1.el6.i686 #1 SMP Tue Feb 11 21:56:33 UTC 2014 i686
11
Pour mieux comprendre le fonctionnement et la structure des systèmes d’exploitation, il est
important d'étudier les notions de processus et de ressources. Il s'agit d'une notion introduite
avec l'arrivée des systèmes multi-programmés et temps-partagés afin d'éclairer leur
fonctionnement. Un processus se définit comme étant l'abstraction de l'activité du processeur
ou tout simplement comme un programme en cours d'exécution. Un processus n'est pas un
programme exécutable. Il faut savoir distinguer un programme de son exécution. Un
processus correspond à une suite d'actions réalisées lors d'une exécution. Alors qu'un
programme est une suite d'instructions. Le même programme peut s'exécuter plusieurs fois
donnant ainsi un processus différent pour chacune de ces exécutions. Ces différents processus
peuvent conduire à des résultats différents.
12
Comme nous le savons, disposer uniquement de la recette ne suffit pas pour avoir le gâteau.
Il faut le préparer selon la recette retenue. Le processus est l'activité de cet informaticien qui
lit la recette, trouve les données et fait cuire le gâteau.
Le programme (suite d'instructions) est une description précise du comportement à
avoir pour résoudre un problème particulier (ce qu'il faut faire et dans quel ordre faut-il les
faire pour atteindre l'objectif fixé). Mais, il n'y a rien dans cette description statique qui permet
de prévoir (à l'avance) le schéma de déroulement (conditions de déroulement) de l'exécution.
Ce schéma peut changer d'une exécution à une autre. Ceci peut provenir des conditions qui
existent.
13
[root@rtn~]# pstree -p
init(1)─┬─NetworkManager(1804)─┬─dnsmasq(2970)
│ └─{NetworkManager}(2971)
├─acpid(1934)
├─atd(2130)
├─auditd(1539)───{auditd}(1540)
├─automount(2042)─┬─{automount}(2043)
│ ├─{automount}(2044)
│ ├─{automount}(2047)
│ ├─{automount}(2050)
│ └─{automount}(2051)
├─avahi-daemon(1816)───avahi-daemon(1817)
├─bonobo-activati(2591)───{bonobo-activat}(2592)
Dans un système temps partagé├─console-kit-dae(2241)─┬─{console-kit-da}(2242)
├─clock-applet(2808) par exemple lorsque le système d'exploitation décide
d'interrompre un processus en cours et de lancer l'exécution d'un autre, parce que le premier
a épuisé son temps d'allocation du processeur (Pseudo-parallélisme). C’est ce qui arrive quand
on lance l’exécution de plusieurs programmes (le système plante parfois puisque les
ressources du processeur ne sont plus suffisantes pour supporter l'exécution des
programmes). Lorsqu'un processus est temporairement suspendu de cette manière, il faut
qu'il puisse retrouver plus tard exactement l'état où il se trouvait au moment de sa suspension.
Il faut que toutes les informations dont il a besoin soient explicitement sauvegardées quelque
part en mémoire pendant sa mise en attente.
Le « pseudo-parallélisme » se défini comme la capacité qu'à un processeur de commuter d'un
programme à un autre en exécutant chaque programme quelques dizaines ou quelques
centaines de millisecondes.
14
genre de système, le processeur ne lancera un autre processus que s'il a fini ou arrêter
l'exécution du premier processus lancé, ce qui n'est pas le cas dans les systèmes
multiprogrammés à temps partagé.
En effet, durant sa vie un processus peut être :
En attente : l'état en attente d'un processus signifie que ce dernié attente un signal
pour commencer son exécution ou reprendre le cours de son exécution s'il était
endormi.
en exécution
Endormis : le processus reçoit un signal du noyau le faisant endormir. Lorsqu'un
processus est endormi, il ne consomme pas assez de ressources. Le processeur pourra
allouer les ressources nécessaires aux processus qui ont en besoin dans l'immédiat.
Suspendu : Dans un système temps-partagé, périodiquement, le système
d'exploitation décide d'interrompre le processus en cours d’exécution et de lancer
l'exécution d'un autre, par exemple, parce que le premier a épuisé son temps
d'allocation du processeur.
Zombie : lorsqu'un processus est dit zombie, lorsque le processeur a arrêté toute
l'activité liée à ce processus ainsi que les ressources qui lui sont allouées.
15
Boot Recorder) se situant sur le premier secteur du disque dur. Pour écrire les données
sur les partitions, celles-ci doivent être formatées par un système de fichiers. Les
systèmes de fichiers encore appelés FileSystem ont pour but d'organiser l'espace brut
de stockage sur les partitions.
16
exemple dans le cas de MS-DOS : le système en mémoire basse, les pilotes de périphériques
en mémoire haute (dans une zone allant de 640 ko à 1 Mo) et un programme utilisateur entre
les deux.
La multiprogrammation autorise l’exécution de plusieurs processus indépendant à la fois.
Cette technique permet d’optimiser le taux d’utilisation du processeur en réduisant
notamment les attentes sur des entrées-sorties. La multiprogrammation implique le séjour
de plusieurs programmes en même temps en mémoire et c’est cette technique qui a donné
naissance à la gestion moderne de la mémoire.
En général, le système d'exploitation se trouve au niveau des premières adresses de la
zone mémoire de la RAM. Pour des systèmes avec un SE embarqué (consoles de jeu,
téléphones mobiles, etc) le système se trouve souvent dans une partie non modifiable (ROM).
Afin de garantir de façon transparente mais flexible, l'amorçage d'un système quelconque, on
retrouve souvent une combinaison des deux approches (RAM et ROM). La ROM contient alors
un système minimal permettant de piloter les périphériques de base (clavier -- disque --
écran) et de charger le code d'amorçage à un endroit bien précis. Ce code est exécuté lors de
la mise sous tension de l'ordinateur, et le « vrai » système d'exploitation, se trouvant dans la
zone d'amorçage sur le disque, est ensuite chargé, prenant le relais du système minimal.
17
En découpant un programme en une partie résidente en mémoire vive et une partie
chargée uniquement en mémoire lorsque l'accès à ces données est nécessaire.
En utilisant un mécanisme de mémoire virtuelle, consistant à utiliser le disque dur
comme mémoire principale et à stocker uniquement dans la RAM les instructions et
les données utilisées par le processeur. Le système d'exploitation réalise cette
opération en créant un fichier temporaire (appelé fichier SWAP, traduit "fichier
d'échange") dans lequel sont stockées les informations lorsque la quantité de mémoire
vive n'est plus suffisante. Cette opération se traduit par une baisse considérable des
performances, étant donné que le temps d'accès du disque dur est extrêmement plus
faible que celui de la RAM.
18