1. Décembre 2010
1
2AGE
Ecole Nationale d’Ingénieurs de Tunis
1
SYSTÈMES D’EXPLOITATION
Département TIC
Meriem KASSAR BEN JEMAA
Meriem.Kassar@enit.rnu.tn
Ecole Nationale d’Ingénieurs de Tunis
2AGE
Ecole Nationale d’Ingénieurs de Tunis
2
FICHE DESCRIPTIVE
• Objectifs généraux :
– Comprendre les fonctionnalités essentielles d’un système d’exploitation.
– Connaître le système Unix du point de vue de l’utilisateur.
– Apprendre la notion de processus : définition, communication, exécution.
• Public Cible : 2ème Année, Spécialité « Génie Electrique »
• Pré requis : Informatique, Programmation
• Durée : 15 heures
• Formules pédagogiques : Exposé informel, Exercices
• Moyens pédagogiques : Tableau, Support de cours
• Bibliographie :
[1] I. Mounier M. Gradinariu , « Programmation Système Internet », Support de cours, UPMC, 2007.
[2] F. Pellegrini D. Sherman, « Systèmes d’exploitation », Support de cours, ENSEIRB, 2001.
[3] A. Belkhir, « Systèmes d’exploitation, Mécanismes de base », 2005.
[4] F. Bourdon, « Systèmes d’exploitation », Support de cours, IUT de Caen.
[5] Y. Bagnotte, « Systèmes d’exploitation Programmation Système », 2001.
[6] H.Bourzoufi , « Cours de Systèmes d'Exploitation (Unix) », Université de Valenciennes - ISTV.
2AGE
Ecole Nationale d’Ingénieurs de Tunis
3
CHAPITRE 1
INTRODUCTION[1] [4]
1. Qu’est ce qu’un système d’exploitation ?
2. Fonctionnalités d’un système d’exploitation
3. Historique
2AGE
Ecole Nationale d’Ingénieurs de Tunis
4
L’ordinateur « nu »
• Une machine inutilisable
– Programmation en langage binaire seulement
– Accès aux périphériques très difficiles
– Exécution d'un seul programme à la fois
• Pour exécuter un programme
– Aller le chercher sur le disque dur
• Trouver sa position
• Lire les mots qui le décrivent
– Le mettre en mémoire
• Lui allouer un espace
– L'exécuter...
• Gestion du clavier par ce programme?
• Gestion de l'écran ?
2. Décembre 2010
2
2AGE
Ecole Nationale d’Ingénieurs de Tunis
5
Un ordinateur contient…
• un ou plusieurs processeurs,
• une mémoire principale,
• des horloges,
• des terminaux,
• des disques,
• des interfaces de connexion à des réseaux,
• et des périphériques d'entrées/sorties.
La complexité évidente du matériel implique la
réalisation d'une machine virtuelle qui gère le
matériel : c'est le système d'exploitation.
2AGE
Ecole Nationale d’Ingénieurs de Tunis
6
Un ordinateur contient…
• Dispositifs physiques : ils se composent de circuits intégrés, de fils
électriques, de périphériques physiques ...
• Microprogramme : c'est un logiciel de contrôle des périphériques
(interprête).
• Langage machine : C'est un ensemble (entre 50 et 300) d'instructions
élémentaires (ADD, MOVE, JUMP) pour effectuer le déplacement
des données, des calculs, ou la comparaison de valeurs.
• Système d'exploitation : c'est un ensemble d'instructions plus simples,
comme LIRE UN BLOC DU FICHIER.
2AGE
Ecole Nationale d’Ingénieurs de Tunis
7
Deux catégories de logiciels
• Les programmes systèmes pour le fonctionnement
des ordinateurs,
• Les programmes d'application qui résolvent les
problèmes des utilisateurs.
• Le programme « système d'exploitation » est le
programme fondamental des programmes systèmes.
Il contrôle les ressources de l'ordinateur et fournit
la base sur laquelle seront construits les
programmes d'application.
• Deux modes de fonctionnement :
– Le mode noyau ou superviseur et le mode utilisateur
(compilateur, éditeur, programmes utilisateurs ...).
2AGE
Ecole Nationale d’Ingénieurs de Tunis
8
Un système d’exploitation…
• C’est le logiciel le plus important de la machine puisqu’il
fournit :
– une gestion des ressources de la machine : processeurs, mémoire,
disques, horloges, périphériques, communication inter-processus et
inter-machines.
– une base pour le développement et l’exécution de programmes
d’application.
deux fonctions :
– une machine virtuelle
Son rôle est de masquer
des éléments fastidieux liés au matériel,
– un gestionnaire de ressources
• l'ordonnancement et le contrôle de l'allocation des processeurs, des
mémoires et des périphériques d'E/ S entre les différents programmes qui y
font appel.
3. Décembre 2010
3
2AGE
Ecole Nationale d’Ingénieurs de Tunis
9
Un système d’exploitation…
• Fonctions :
– Services « visibles »
• Interface utilisateur
• Accès aux périphériques
• Gestion des disques
• Lancement des programmes
– Services « cachés »
• Partage du processeur
• Partage de la mémoire
• Gestion d'événements
• Mécanismes de synchronisation entre les programmes
2AGE
Ecole Nationale d’Ingénieurs de Tunis
10
Historique
2AGE
Ecole Nationale d’Ingénieurs de Tunis
11
Historique
• Il n'existait pas de système d'exploitation.
• Les utilisateurs travaillaient chacun leur tour sur
l'ordinateur qui remplissait une salle entière.
• Ils étaient d'une très grande lenteur.
• Ils étaient d'une très grande fragilité.
La 1ère génération (1945 1955) :
les tubes à vide et les cartes enfichables.
2AGE
Ecole Nationale d’Ingénieurs de Tunis
12
Historique
• Le passage aux transistors rendait les ordinateurs plus fiables.
• Ils pouvaient être vendus à des utilisateurs (grandes
compagnies, université ou administrations.
• Mais devant les coûts d'équipement élevés, on réduisait
les temps grâce au traitement par lots.
• Les utilisations principales étaient le calcul scientifique et
l'ingénierie (équations différentielles).
• Apparition des langages FORTRAN et assembleur.
• Apparition des systèmes d'exploitation (SE) :
– FMS (Fortran Monitor System)
– et IBSYS (IBM 7094).
La 2ème génération (1955 1965) :
les transistors et le traitement par lots.
4. Décembre 2010
4
2AGE
Ecole Nationale d’Ingénieurs de Tunis
13
Historique
• Amélioration des coûts et des performances (circuits intégrés).
• Une famille d'ordinateurs compatibles entre eux.
• Une seule architecture et un même jeu d'instructions.
• Des ordinateurs uniques pour les calculs scientifiques et
commerciaux.
• Apparition du spoule (spool, Simultaneous Peripheral Operation
On Line) pour le transfert des travaux des cartes vers le disque.
• Apparition de la multiprogrammation (partitionnement de la
mémoire pour des tâches différentes).
• Mais, un système d'exploitation énorme et très complexe pour
satisfaire tous les besoins (plusieurs millions de lignes
d'assembleur).
La 3ème génération (1965 1980) :
les circuits intégrés et la multiprogrammation.
2AGE
Ecole Nationale d’Ingénieurs de Tunis
14
Historique
• Apparition du partage de temps, une variante de la
multiprogrammation (chaque utilisateur possède un terminal en
ligne) ; naissance du système MULTICS (MULTiplexed
Information and Computing Service) pour ordinateur central.
• Apparition des miniordinateurs (DEC PDP1 en 1961, 4K mots
de 18 bits, pour un prix de 120 000 $).
• K. Thompson écrivit une version simplifiée (monoutilisateur)
de MULTICS ; B. Kernighan l'appela avec humour UNICS
(Uniplexed Information and Computer Service) ; ce nom allait
devenir UNIX.
• D. Ritchie se joignit à K. Thompson pour réécrire UNIX en
langage C ; ce système d'exploitation a été le plus porté sur toutes
sortes de machine.
La 3ème génération (1965 1980) :
les circuits intégrés et la multiprogrammation.
2AGE
Ecole Nationale d’Ingénieurs de Tunis
15
Historique
• Ils sont dû au développement des circuits LSI (Large
Scale Integration) contenant des centaines de transistors au
cm2.
• Ils ont la même architecture que les miniordinateurs
mais leur prix est beaucoup moins élevé.
• Il existe deux systèmes d'exploitation principaux : MS
DOS (Microsoft Inc.) et UNIX. MSDOS intègre petit à petit
des concepts riches d'UNIX et de MULTICS.
• Dans le milieu des années 80, on voit l' apparition de
réseaux d'ordinateurs individuels qui fonctionnent sous
des systèmes d'exploitation en réseau ou des systèmes
d'exploitation distribués.
La 4ème génération (1980 1990) : les ordinateurs personnels.
2AGE
Ecole Nationale d’Ingénieurs de Tunis
16
Historique
• Apparition des PIC (Personal Intelligent Communicator de chez
Sony) et des PDA (Personal Digital Assistant, comme le Newton
de chez Apple), grâce à l'intégration des composants et l'arrivée des
systèmes d'exploitation de type « micronoyau ».
• Ils sont utiles pour les « nomades » et les systèmes de gestion des
informations (recherche, navigation, communication).
• Ils utilisent la reconnaissance de caractère (OCR) et les modes
de communication synchrone et asynchrone (mode messagerie).
• Très bon marché, ils sont capables de se connecter à des
ordinateurs distants et performants.
• Les systèmes d'exploitation de type « micronoyau » sont
modulaires (un module par fonction) ; ils peuvent être réalisés
avec plus ou moins de modules et donc adaptables à des très
petites machines (PDA et PIC).
La 5ème génération (1990 ????) :
les ordinateurs personnels portables et de poche.
5. Décembre 2010
5
2AGE
Ecole Nationale d’Ingénieurs de Tunis
17
Différentes classes de systèmes
2AGE
Ecole Nationale d’Ingénieurs de Tunis
18
Différentes classes de systèmes
2AGE
Ecole Nationale d’Ingénieurs de Tunis
19
Différentes classes de systèmes
2AGE
Ecole Nationale d’Ingénieurs de Tunis
20
Différentes classes de systèmes
6. Décembre 2010
6
2AGE
Ecole Nationale d’Ingénieurs de Tunis
21
Différentes classes de systèmes
2AGE
Ecole Nationale d’Ingénieurs de Tunis
22
Programme et leur environnement d’exécution
• Comment le système d'exploitation peut
invoquer un programme ?
2AGE
Ecole Nationale d’Ingénieurs de Tunis
23
Classification des SE
OpenVMS (Open Virtual Memory System) anciennement VAX-11/VMS, VAX/VMS ou
(officieusement) VMS est un système d’exploitation propriétaire créé par DEC en 1977
pour ses ordinateurs VAX.
OpenVMS est réputé pour sa stabilité et sa sûreté, bien que l'on ne sache pas vraiment
si cette réputation est due à ses qualités propres ou à sa rareté qui le mettrait à l'abri
de la majorité des pirates. Système très répandu avant la vague UNIX, OpenVMS est
le plus souvent employé au sein de systèmes bancaires, militaires ou industriels.
2AGE
Ecole Nationale d’Ingénieurs de Tunis
24
Besoins pour un SE
multi-tâche et multi-utilisateur
• Identification des usagers
• Partage du processeur
• Partage de la mémoire
• Accès aux composants matériel
• Partage de l'écran/clavier (périphériques)
• Présentation multi-fenêtrage
• Partage du disque
• Système de repérage des fichiers
24
7. Décembre 2010
7
2AGE
Ecole Nationale d’Ingénieurs de Tunis
25
CHAPITRE 2
NOTIONS SUR UNIX[1][5][6]
1. Historique
2. Caractéristiques
3. Système de Gestion de Fichiers
4. Premiers pas en shell
2AGE
Ecole Nationale d’Ingénieurs de Tunis
26
Historique (Rappel)
• Ken THOMPSON et Dennis RITCHIE de Bell Laboratories
développent une première version en 1970, avec deux
originalités : un système de gestion de fichiers arborescent et
un shell conçu comme processus utilisateur.
• UNIX, nom qui a succédé à MULTICS (Uniplexed
Information and Computer Service).
• Version V4 écrite en langage C.
• V6 la première version commercialisée en 1974.
• Plus d’une vingtaine de versions d’UNIX ont vu le jour
• Les quatre versions principales sont BSD, SYSTEM V, POSIX
(tentative de fédérer les deux familles précédentes) et LINUX
proposé par Linus TORVALDS en 1991.
• Le label UNIX 98 de l’Open Group prescrit les tâches
standardisés, le temps réel, les 64 bits et les systèmes de
fichiers étendus.
2AGE
Ecole Nationale d’Ingénieurs de Tunis
27
Caractéristiques d’UNIX
• Portabilité (écrit en C)
• Multi-utilisteurs : Plusieurs utilisateurs peuvent se
connecter et travailler en même temps. Chaque
utilisateur a son environnement personnel.
• Multi-tâches : Un même utilisateur peut lancer
plusieurs travaux simultanément.
• Interactif : Il est possible de dialoguer avec
l'ordinateur. Possibilité aussi de lancer des processus
(tâches) en arrière plan et en mode différé (batch).
• Un système de fichiers hiérarchisé : Organisation
arborescente.
2AGE
Ecole Nationale d’Ingénieurs de Tunis
28
Caractéristiques d’UNIX
• Un mécanisme de protection
– Identification des utilisateurs par mot de passe
– Protection des fichiers
– Un super-utilisateur
• Une vision simplifiée par l'utilisateur des entrées-
sorties : les périphériques sont représentés par des
noms de fichier, et peuvent être utilisés comme des
fichiers ordinaires.
• Le choix d’un langage de commandes : Les shells.
8. Décembre 2010
8
2AGE
Ecole Nationale d’Ingénieurs de Tunis
29
Structure du système UNIX
• Le noyau gére les tâches de base du
système :
– L'initialisation du système
– La gestion des ressources
– La gestion des processus
– La gestion des fichiers
– La gestion des Entrées/Sorties
• L’utilisateur communique avec le
noyau par l'intermédiaire d'un
SHELL.
• Les shells sont aussi des langages
de commandes et de
programmation.
• Les shells les plus connus sont :
BOURNE SHELL
KORN-SHELL
C-SHELL
TC-SHELL
• Les utilitaires sont des outils
d'interfaçage avec le système, de
programmation et de communication.
2AGE
Ecole Nationale d’Ingénieurs de Tunis
30
Système UNIX
• UNIX est construit autour de deux notions essentielles :
– fichiers organisés en structure arborescente,
– processus : un processus correspond à l’exécution d’un
programme (système ou utilisateur) et à son environnement
(descripteurs de fichiers, registres, compteur ordinal, …). La
gestion de la mémoire centrale constitue un aspect important
du contrôle des processus.
• UNIX dispose d’utilitaires standards nombreux parmi lesquels :
• compilateurs (notamment C) avec son vérificateur lint, ses
débogueurs adb, sdb et dbx et son archiveur de bibliothèques ar
• gestionnaire d’applications make et sccs
• outils de génération de compilateurs lex et yacc
• éditeurs de texte / manipulateurs de documents ed, sed, vi, emacs,
nroff, troff
2AGE
Ecole Nationale d’Ingénieurs de Tunis
31
Structure d’un disque
31 2AGE
Ecole Nationale d’Ingénieurs de Tunis
32
Structure d’un disque
9. Décembre 2010
9
2AGE
Ecole Nationale d’Ingénieurs de Tunis
33
Notion de bloc
2AGE
Ecole Nationale d’Ingénieurs de Tunis
34
Notion de bloc
• Propriétés
– Lorsque la tête arrive sur une piste, elle dispose d'un
moyen de retrouver le début d'un secteur...
• Conséquences
• De l'espace de stockage est consommé
➥Disque dur : 60 Go non formatés = 55,88 Go utiles
2AGE
Ecole Nationale d’Ingénieurs de Tunis
35
Lecture/écriture d’un bloc
• Positionner la tête sur la bonne piste
• Attendre que le bon secteur passe sous la tête
• Lire/écrire le secteur
• Conséquences sur le temps d'accès:
– T = Tp + Tl + To
➥Positionnement de la tête de lecture
➥Latence (attente de l'arrivée du secteur
➥Opération (écriture ou lecture)
• Pour caractériser un disque
– On parle de temps moyen d'accès (quelques ms)
– On parle de débit (lecture de blocs consécutifs)
2AGE
Ecole Nationale d’Ingénieurs de Tunis
36
Chaînage de blocs
10. Décembre 2010
10
2AGE
Ecole Nationale d’Ingénieurs de Tunis
37
Système de gestion de fichiers UNIX
2AGE
Ecole Nationale d’Ingénieurs de Tunis
38
• Le S.G.F. gère une structure d'arbre :
- la racine est désignée par /
- les nœuds sont les répertoires non vides
- les feuilles sont les répertoires vides et les fichiers.
• Les chemins sont décrits avec le séparateur /
• Un fichier est une suite d'octets, généralement non structurée.
• Les noms de fichiers et répertoires sont limités à 14 caractères (/ est
interdit et - ne peut être le premier caractère).
• Le rôle d'un fichier est de conserver, de traiter et transmettre de
l'information.
• Différents types de fichiers :
– Ordinaires (ascii ou binaires)
– Répertoires ( contiennent des noms de fichiers et/ou de catalogues
– Spéciaux : ils sont associés aux périphériques (disques, imprimantes,..)
– Les filtres : permettent la communications entre processus
Système de gestion de fichiers UNIX
2AGE
Ecole Nationale d’Ingénieurs de Tunis
39
Accès à un fichier
2AGE
Ecole Nationale d’Ingénieurs de Tunis
40
Compte utilisateur
11. Décembre 2010
11
2AGE
Ecole Nationale d’Ingénieurs de Tunis
41
Se déplacer dans l’arborescence
2AGE
Ecole Nationale d’Ingénieurs de Tunis
42
Commande ls
2AGE
Ecole Nationale d’Ingénieurs de Tunis
43
Commande ls
2AGE
Ecole Nationale d’Ingénieurs de Tunis
44
Commande ls
• l'option -R
permet d'afficher récursivement le contenu d'un répertoire.
Ex:
ls /
dev bin usr users etc unix ...
ls -R /
/dev : liste des fichiers dans /dev
/bin : liste des fichiers dans /bin
/users :
/deustiosi :
/iosi01 :
/iosi02 ........
/minfo :
/minf01 ...........
12. Décembre 2010
12
2AGE
Ecole Nationale d’Ingénieurs de Tunis
45
Droits d’accès
2AGE
Ecole Nationale d’Ingénieurs de Tunis
46
Opérations de base sur les répertoires
• Création d'un répertoire
mkdir nom_répertoire
rmdir nom_répertoire Supprime un répertoire vide.
rm -R nom_répertoire supprime tout le répertoire.
• Montage d'un système de fichiers
– Il est possible d'ajouter un système de fichiers extérieur en
l'insérant dans la hiérarchie.
– Les commandes mount et unmount permettent de démonter
et de démonter un système de fichiers.
= L'ajout d'une mémoire de masse est transparent pour
l'utilisateur.
2AGE
Ecole Nationale d’Ingénieurs de Tunis
47
• Visualisation du contenu d’un fichier
cat nom_fichier (option –n pour numéro de lignes)
more nom_fichier (en mode page)
• Renommage et déplacement d'un fichier
mv source destination
Ex : mv essai.c tp1.c (renommage)
mv tp TPSE (déplacement )
mv tp TPSE/tp2 (déplacement et renommage)
• Copie d’un fichier
cp source destination
Opérations de base sur les fichiers
2AGE
Ecole Nationale d’Ingénieurs de Tunis
48
Opérations de base sur les fichiers
• Création de liens sur un fichier
ln ancien nouveau
• Suppression d'un fichier
rm nom_fichier
Ex : rm *.o (supprimer tous les fichiers d’extension “.o”)
rm a* (supprimer tous les fichiers dont le nom commence
par a”)
rm * (supprime tous les fichiers)
rm *.? (supprimer tous les fichiers ayant une extension
d’une lettre.)
* : une chaîne quelconque de caractères
? : un caractère quelconque
13. Décembre 2010
13
2AGE
Ecole Nationale d’Ingénieurs de Tunis
49
Autres commandes utiles
• touch créer un fichier vide
• wc donne le nombre de caractères (-c), de mots (-w) ou de
lignes (-l)
• sort permet de trier par ordre alphabétique les lignes d'un
fichier.
• grep recherche d'un motif dans un fichier
Exemple: grep printf essai.c
grep -l printf *.c
(affiche la liste des fichiers contenant printf).
• head –n afficher les n premières lignes du fichier.
• tail -n afficher les n dernières lignes du fichier.
2AGE
Ecole Nationale d’Ingénieurs de Tunis
50
• diff édite les lignes différentes entre deux fichiers.
• cmp édite les numéros de lignes différentes entre
deux fichiers.
• slocate affiche la liste des fichiers contenant
chaine dans leur chemin absolu.
• find permet de rechercher un fichier.
• lpr imprimer un fichier
• lpq afficher les fichiers en attente d’impression.
• lprm détruire des fichiers en attente d'impression.
Autres commandes utiles
2AGE
Ecole Nationale d’Ingénieurs de Tunis
51
Premiers pas en Shell[1]
Chapitre 2 : Notions d’UNIX
2AGE
Ecole Nationale d’Ingénieurs de Tunis
52
Shell ?
14. Décembre 2010
14
2AGE
Ecole Nationale d’Ingénieurs de Tunis
53
Une commande ?
2AGE
Ecole Nationale d’Ingénieurs de Tunis
54
Exécution d’une commande shell
2AGE
Ecole Nationale d’Ingénieurs de Tunis
55
Ligne de commande shell
2AGE
Ecole Nationale d’Ingénieurs de Tunis
56
Premières commandes shell
15. Décembre 2010
15
2AGE
Ecole Nationale d’Ingénieurs de Tunis
57
Tests en shell
2AGE
Ecole Nationale d’Ingénieurs de Tunis
58
Premier script en shell
2AGE
Ecole Nationale d’Ingénieurs de Tunis
59
Premier script en shell (v1)
set –x
toute commande suivant cette instruction sera tracée sur la sortie erreur standard.
2AGE
Ecole Nationale d’Ingénieurs de Tunis
60
Premier script en shell (v1)
16. Décembre 2010
16
2AGE
Ecole Nationale d’Ingénieurs de Tunis
61
Premier script en shell (v2)
2AGE
Ecole Nationale d’Ingénieurs de Tunis
62
Premier script en shell (v2)
2AGE
Ecole Nationale d’Ingénieurs de Tunis
63
Premier script en shell (v3)
2AGE
Ecole Nationale d’Ingénieurs de Tunis
64
Premier script en shell (v3)
17. Décembre 2010
17
2AGE
Ecole Nationale d’Ingénieurs de Tunis
65
Séquences spéciales de caractères
2AGE
Ecole Nationale d’Ingénieurs de Tunis
66
Boucles en shell
2AGE
Ecole Nationale d’Ingénieurs de Tunis
67
Méta-caractères
2AGE
Ecole Nationale d’Ingénieurs de Tunis
68
Méta-caractères (exemple)
18. Décembre 2010
18
2AGE
Ecole Nationale d’Ingénieurs de Tunis
69
Expressions numériques