Pratique des Systèmes d`Exploitation - L2

publicité
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Pratique des Systèmes d’Exploitation
L2 Informatique – Semestre 3 Printemps
Simon E.B. Thierry
Université de Strasbourg
Février - Mai 2011
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
1/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Modalités pratique
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
2/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Cours
Enseignants
Simon E.B. Thierry : cours magistraux
François Petitjean : travaux pratiques
Pour nous joindre : [email protected] et
[email protected]
Durée
16h de CM
24h de TP
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
3/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Contrôle des connaissances
Projet : coefficient 1/2
Sujet du projet : aux alentours de la 6è semaine
Une des séances de TP sera consacrée à des « soutenances »
Examen terminal : coefficient 1/2
Sur table, sans ordinateur, 90min
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
4/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Objectifs
comprendre le rôle et la structure d’un Système d’Exploitation, les
interactions avec le matériel et les logiciels
savoir utiliser couramment un SE (installation basique, manipulation
d’un système de fichiers, des processus, des entrées/sortie)
utilisation de la console Unix : commandes de base, combinaison de
commandes, expressions régulières
programmation de scripts shell, interactions entre programmes C et
scripts shell
initiation à l’administration d’une machine
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
5/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Liens avec d’autres cours
Programmation Système et Réseau (L2S4) : programmer certains
éléments des SE
Architecture des Ordinateurs (L2S4) : comprendre les mécanismes
de fonctionnement d’un processeur, programmer en assembleur
Fondements des Systèmes d’Exploitation (L3S5) : comprendre en
détail les algorithmes utilisés par les systèmes d’exploitation pour en
gérer les composants
Systèmes Distribués (L3S6) : partage des ressources dans le cadre
d’une architecture à plusieurs ordinateurs
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
6/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Bibliographie
La bible
Systèmes d’Exploitation, Andrew Tanenbaum
Unix et Linux
La Programmation sous Unix, Jean-Marie Rifflet
Unix : Initiation et utilisation, Armspach, Colin, Ostré-Waerzeggers
Unix et Linux, Utilisation et Administration, Jean-Marie Léry
Scripts shell
Scripts shell, Jean-Marc Baranger et Théo Schomaker
Programmation shell sous Unix/Linux, Christine Deffaix-Rémy
Ce cours est inutile
Toutes les informations sont sur internet ou en bibliothèque :
approfondissez !
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
7/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Bibliographie
La bible
Systèmes d’Exploitation, Andrew Tanenbaum
Unix et Linux
La Programmation sous Unix, Jean-Marie Rifflet
Unix : Initiation et utilisation, Armspach, Colin, Ostré-Waerzeggers
Unix et Linux, Utilisation et Administration, Jean-Marie Léry
Scripts shell
Scripts shell, Jean-Marc Baranger et Théo Schomaker
Programmation shell sous Unix/Linux, Christine Deffaix-Rémy
Ce cours est inutile
Toutes les informations sont sur internet ou en bibliothèque :
approfondissez !
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
7/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Plan du cours
1
Modalités pratique
2
Rôle d’un Système d’Exploitation
Origines de l’informatique
Architecture
Rôle du Système d’Exploitation
3
Introduction aux SE Unix
4
Droits
5
Shell et ligne de commande
6
Shell scripts
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
8/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Rôle d’un Système
d’Exploitation
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
9/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Origines de l’informatique
De la philosophie à l’informatique
19è siècle : Leibniz, arithmétique binaire
1854 : Algèbre de Boole, fondée sur ET, OU et NON
1931 : Gödel : théorème d’incomplétude (on ne peut tout exprimer
avec un système mathématique)
1938 : Turing se pose des questions sur la calculabilité des nombres
peut-on obtenir tous les nombres avec un algorithme ?
invention des machines de Turing, pour représenter des algorithmes
1944 : premiers prototypes d’une machine de Turing physique
30 tonnes
multiplication de 2 nombres à 10 chiffres en 3 ms
grosse calculette
1945 : von Neuman, architecture à 5 composants :
1
2
3
4
5
Unité arithmétique et logique
Unité de contrôle
Mémoire centrale
Unité d’entrée
Unité de sortie
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
10/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Origines de l’informatique
La machine de von Neumann
En réalité, de Eckert et Mauchly, mais c’est von Neumann qui a signé le papier
Unité centrale / Processeur
Unité de contrôle
Unité arithmétique Unité d'Entrée/Sortie
Permettre le déclenchement Effectuer les opérations d
de l'action (instruction) au
calcul
moment voulu
Sélectionner le circuit
Série de registres (éléments
logique correspondant à
de mémoire spécifiques a
l'instruction
CPU)
Communication avec le
reste de l'architecture
(mémoire, périphériques)
Bus
Mémoire pour les instructions et les données
actions du processeur (primitives) : jeu d’instructions
langage élémentaire de son utilisation : langage machine
une instruction peut consulter le contenu de la mémoire et le
modifier
exécution d’une seule instruction à la fois
indication du moment où lancer une action : dans le texte du
programme
texte du programme : dans la mémoire
case mémoire : donnée, instruction ou adresse d’une autre donnée
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
11/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Origines de l’informatique
Exemple de programme
1
2
charger dans le registre 1 le nombre qui est dans la case mémoire
n°20
tester le contenu du registre 1 ; s’il vaut 0 aller à l’instruction n°5 ;
sinon ne rien faire
3
additionner au contenu du registre 1 le nombre qui est dans la case
mémoire n°21 et placer le résultat dans le registre 2
4
copier le contenu du registre 2 dans la case mémoire n°22
5
imprimer le contenu de la case mémoire n°22
6
FIN
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
12/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Origines de l’informatique
Exemple de langage machine
Instructions
Supposons que l’on dispose de 16 bits pour représenter une instruction,
sur un processeur à 4 registres.
Bits 0 à 3
Code opération
Bits 4 à 5
N° du premier registre
concerné
Bit 6 à 7
N° du second registre
concerné
Bits 8 à 15
Adresse mémoire
Codes opérations
Instruction
Chargement mémoire → registre
Copie registre → mémoire
Addition mémoire à registre
Imprimer mémoire
Test registe et branchement si zéro
Fin
Code opération
0001
0010
0011
0100
0101
0110
Nom
LOAD
STORE
ADD
PRINT
BZ
END
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
13/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Origines de l’informatique
Traduction du programme
Traduction des instructions
Code opération
0001
0101
0011
0010
0100
0110
1er registre
01
01
10
10
00
00
2ème registre
00
00
01
00
00
00
Adresse
0001 0100
0000 0101
0001 0101
0001 0110
0001 0110
0000 0000
Résultat en langage machine
0001010000010100
L’unité de contrôle cherche les instructions
0101010000000101
l’une après l’autre et déclenche l’exécution.
0011100100010101
Le décodage par l’unité de contrôle du code
0010100000010110
opération permet d’activer le circuit logique
0100000000010110
correspondant à l’instruction.
0110000000000000
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
14/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Origines de l’informatique
Assembleur
Métalangage
Étiquette
FIN
Nom opération
LOAD
BZ
ADD
STORE
PRINT
END
Opérandes
1, 20
1, FIN
2, 1, 21
2, 22
22
assembleur : traduire un programme symbolique en un programme
sous forme de mot binaire compréhensible par les circuits logiques
compilateur : traduire un programme d’un langage de
programmation à un autre
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
15/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Origines de l’informatique
Unité d’entrée/sortie
pendant l’exécution : le programme (sous forme binaire) est stocké
en mémoire centrale (ou mémoire vive)
hors exécution ou quand l’ordinateur est éteint : programme (sous
forme binaire) stocké sur une mémoire « permanente » (HDD, CD,
...) accessible par l’unité d’E/S
mémoire permanente : moins performante en terme de temps
d’accès (accès registres < accès mémoire vive < < accès disque)
unité d’E/S : copie de la mémoire permanente vers la mémoire
centrale (via bus)
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
16/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Origines de l’informatique
Suite à von Neumann, Eckert et Mauchly
1945 : von Neumann, Eckert et Mauchly proposent l’EDVAC
(Electronic Discrete Variable Automatic Computer)
programme et données sont en mémoire
la machine n’est pas commandée par des fiches mais par le contenu
de sa mémoire
sauts, branchements conditionnels : l’ordinateur est né
1947 : premier transistor
1951–58 : premières machines commerciales (IBM 650 : 1500
exemplaires vendus)
monoprogrammation
traitement par lots (batch)
cartes perforées, bandes magnétiques, imprimante
fiabilité des tubes à vides (lampes) : le bug est né
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
17/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Origines de l’informatique
Répartition des ressources
chaque chiffre binaire est introduit manuellement à l’aide de
commutateurs
heures de calcul → affichage de résultat
⇒ utilisation de cartes perforées (programmes) et de bandes
magnétiques (E/S)
problème : l’impression des résultats, voire l’écriture sur bande,
prennent plus de temps que le calcul proprement dit
idée : stocker le résultat sur bande et imprimer via un autre
programme
vérifier que le calcul est terminé
gérer un programme d’impression
vérifier que l’impression des résultats précédents est terminée
optimiser temps de calcul et temps de lecture des données du
prochain calcul
dernière mission : confiée à un méta-programme, nommé Moniteur
→ 1955 : le système d’exploitation est né
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
18/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Origines de l’informatique
Du traitement par lot à la multiprogrammation
traitement par lots : répartition manuelle du travail sur plusieurs
machines par cartes performées
programme en charge de distribuer « harmonieusement » le temps
disponible entre des programmes qui s’exécutent
pseudo-simultanément : multi-programmation
programme en train de s’exécuter : processus
programme partageant le temps : système d’exploitation
arbitrage de la répartition du temps entre les processus : une des
fonctions fondamentales du S.E. (ordonnanceur)
N.B. : un mécanisme de protection entre les différents programmes
est mis en place
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
19/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Origines de l’informatique
Premiers S.E. commerciaux
1958 : premier circuit intégré (Texas Instruments)
1958–64 : transistors → vitesse et fiabilité
apparition de mini-ordinateurs
mode superviseur
E/S asynchrones
premiers systèmes à temps partagés
1964–78 : premiers circuits intégrés commerciaux
1971 : premier microprocesseur : Intel 4004 (4 bits, 108 KHz)
1974 : invention de la carte à puce
1974 : premier processeur Motorola : 6800 (8 bits)
1975 : Bill Gates et Paul Allen fondent Microsoft
1976 : Steve Jobs et Steve Wozniack fondent Apple
1978 : Intel lance le 8086 (16 bits, 4,7MHz)
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
20/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Origines de l’informatique
Systèmes multi-utilisateurs
multiprogrammation → temps partagé
au lieu d’avoir un seul gros système (mainframe) qui partitionne sa
mémoire entre les processus en optimisant le temps d’attente :
1 utilisateur ⇔ 1 terminal
allocation des ressources aux processus actifs (et pas par utilisateurs)
notion de temps partagé
CTSS (Compatible Time Sharing System) dans les années 60
puis Multics, Unix, ...
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
21/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Origines de l’informatique
Ordinateurs personnels
puces : milliers de transistors : production de masse à faible coût
possible
1972 : Micral, Intel 8008
1976 : Jobs & Wozniak : Apple I (666,66 dollars)
1977 : Apple II ; mémoire vidéo reliée à un moniteur de balayage
1979 : Visicalc (1er tableur) → entrée dans le monde de la gestion
1981 : 1er Micro IBM, Intel 8088, MS-DOS (monoprogrammation)
1981 : XEROX (interface graphique)
1985 : imprimante laser – langage de programmation PostScript
1987 : IBM lance OS/2 – Microsoft lance Windows (interface avec
MS-DOS)
1980–90 : réseaux, cartes à plusieurs millions de transistors au mm2 ,
disques magnétiques/optiques, écrans couleurs graphiques, interfaces
multi-fenêtres, réseaux par cable, fibre optique, satellite, ...
loi de Moore : 2x plus de transistors par mm2 tous les 2 ans
informatique d’aujourd’hui : presque la même qu’en 1980 (modulo
loi de Moore)
Simon E.B. Thierry
processeurs multi-cœurs
Pratique des Systèmes d’Exploitation – L2S3 Printemps
22/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Origines de l’informatique
Conclusion sur l’évolution de l’informatique
stagnation de l’accélération pour la plupart des algorithmes (temps
CPU minoritaire sur transferts mémoire)
accélération pour algorithmes parallèles (plusieurs cœurs : plus de
registres)
matériel extraordinairement varié
SE ont un rôle essentiel à jouer : rendre les spécificités du matériel
invisibles à l’utilisateur (ex : répartir la charge entre les cœurs de
façon transparente)
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
23/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Architecture
Différents niveaux
architecture matérielle
les composants électroniques de l’ordinateur
architecture logicielle
système d’exploitation
applications
Applications
Word, Excel, WinZip, ...
Vi, KDE, Gnome, ...
Système d'exploitation
Microsoft Windows 2000, XP, ...
Sun Solaris, Linux, FreeBSD, ...
Matériel
Architecture PC
Architecture Apple PowerPC
Architecture Sun Sparc
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
24/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Architecture
Micro-processeur
Rôle
exécuter les programmes suivant un jeu d’instructions
programme : suite d’instructions (branchements possibles)
instruction : commande unitaire adressé au micro-processeur,
ordonnant une suite d’opérations
Ils contiennent plusieurs millions de transistors
Une famille de processeurs est caractérisée par
leur type de jeu d’instructions
leur vitesse (cadencement en nombre de cycles d’horloge par
seconde)
leur capacité d’adressage (en bits)
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
25/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Architecture
Quelques familles de processeurs
CISC (Complex Instruction-Set Computer)
RISC (Reduced Instruction-Set Computer)
VLIW (Very Long Instruction Word)
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
26/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Architecture
CISC (Complex Instruction-Set Computer)
Caractéristiques
jeu d’instructions complexes, architecture complexe
taille d’instruction variable
le modèle le plus ancien
Exemples : Intel 8086 → Pentium 4, Motorola 68xxx
Avantage
Architecture souple → permet des opérations complexes
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
27/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Architecture
RISC (Reduced Instruction-Set Computer)
Caractéristiques
jeu d’instructions réduit, architecture simple
taille des instructions fixe
Exemples : PowerPC, ARM, Sparc, ...
Avantages
conception facile → moins de pannes possibles
moins de transistors → faible consommation
exécution d’une instruction très rapide
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
28/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Architecture
VLIW (Very Long Instruction Word)
Caractéristiques
instructions de taille fixe, 4 à 8x plus grande que RISC
jeu d’instructions de type RISC
technologie récente
Exemple : Transmeta Crusoe
Avantages
encore moins de transistors : très faible consommation
exécution potentielle de 4 à 8 instructions RISC par cycle d’horloge
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
29/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Architecture
Architecture d’un micro-processeur
Unité Arithmétique et Logique
Effectue les différentes opérations associées à l’instruction courante
Registre d’instruction
Contient l’instruction en cours d’exécution
Registre «compteur ordinal»
Contient la position de l’instruction courante en mémoire
(incrémentation : instruction suivante)
Registres (les autres) : mémoire interne au processeur permettant de
contenir les informations nécessaires pour réaliser les opérations
associées à l’instruction en cours
Autre type de processeur : Graphical Process Unit (GPU)
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
30/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Architecture
La mémoire
Organisation hiérarchique en fonction de la vitesse d’accès
mémoire interne au processeur (registres)
mémoire vive (RAM : Random Access Memory)
mémoire morte
Rôle(s)
contenir les informations nécessaires au cours de la vie d’un programme
(instructions et données) : mémoire vive
contenir les informations les plus demandées par un composant afin
d’accéler le traitement : mémoire cache
contenir les programmes même lorsque l’ordinateur n’est pas alimenté :
mémoire de masse
contenir des informations critiques de configuration et paramétrage du
système informatique : mémoire ROM
en particulier, contenant les instructions permettant de charger en
mémoire vive le système d’exploitation (BIOS sur une architecture PC)
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
31/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Architecture
Anecdote inutile : «Booter»
périphérique sur lequel se trouve le S.E. : boot device
identification de ce périphérique : booting
raccourci de « bootstrapping »
to pull oneself up by one’s bootstraps
réussir par soi-même, sans aide extérieure, une tâche ardue (voire
impossible)
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
32/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Architecture
Anecdote inutile : «Booter»
périphérique sur lequel se trouve le S.E. : boot device
identification de ce périphérique : booting
raccourci de « bootstrapping »
to pull oneself up by one’s bootstraps
réussir par soi-même, sans aide extérieure, une tâche ardue (voire
impossible)
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
32/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Architecture
Anecdote inutile : «Booter»
périphérique sur lequel se trouve le S.E. : boot device
identification de ce périphérique : booting
raccourci de « bootstrapping »
to pull oneself up by one’s bootstraps
réussir par soi-même, sans aide extérieure, une tâche ardue (voire
impossible)
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
32/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Architecture
Anecdote inutile : «Booter»
périphérique sur lequel se trouve le S.E. : boot device
identification de ce périphérique : booting
raccourci de « bootstrapping »
to pull oneself up by one’s bootstraps
réussir par soi-même, sans aide extérieure, une tâche ardue (voire
impossible)
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
32/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Architecture
Anecdote inutile : «Booter»
périphérique sur lequel se trouve le S.E. : boot device
identification de ce périphérique : booting
raccourci de « bootstrapping »
to pull oneself up by one’s bootstraps
réussir par soi-même, sans aide extérieure, une tâche ardue (voire
impossible)
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
32/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Rôle du Système d’Exploitation
Rôle du SE
Définitions
Système d’Exploitation ou operating system
Environnement logiciel permettant à l’utilisateur d’exploiter les
ressources matérielles d’un système informatique
Interface entre programmes d’un utilisateur (applications) et les
ressources matérielles du système
Importance du SE
gestion efficace des ressources matérielles
qualité du SE responsable des performances globales du système
SE performant : exploitation performante du matériel, bonne
répartition des ressources, applications performantes
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
33/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Rôle du Système d’Exploitation
SE dans l’architecture
Word, Excel, WinZip, ...
Vi, KDE, Gnome, ...
Applications
Système d'exploitation
Microsoft Windows 2000, XP, ...
Sun Solaris, Linux, FreeBSD, ...
Matériel
Architecture PC
Architecture Apple PowerPC
Architecture Sun Sparc
Applications : doivent fonctionner (ne dépend pas que du SE...
bossez !)
Système d’Exploitation : interface
Matériel : modifications constantes, compliqué
SE : programme pour «gérer le matériel»
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
34/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Rôle du Système d’Exploitation
Missions du S.E.
rendre transparente la complexité du matériel
lancer des instructions complexes par des commandes simples
offrir une notion de machine virtuelle
rentabiliser l’utilisation
minimiser les temps morts (multitâche, parallélisation E/S, ...)
MSDOS est-il un OS ?
minimiser le temps passé sur la machine
préserver les investissements
équipement, matériel et logiciel
informations, programmes et données
MSDOS ne serait donc pas un OS ?
faciliter la vie des informaticiens
Bon, là, plus de doute...
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
35/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Rôle du Système d’Exploitation
Outils pour l’administration que doit fournir un (bon) SE
protéger le système des utilisateurs, et les utilisateurs entre eux
partager les périphériques (file d’attente)
surveillance et maintenance du système
diagnostic (test de la machine, gestion des erreurs)
gestion des utilisateurs (mots de passe, quotas, priorité)
gestion et partage des ressources système
sauvegardes
contrôle des performances (embouteillages, saturation de l’espace
disque, du swap)
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
36/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Rôle du Système d’Exploitation
Rôles du SE (continued)
gestion de la communication
entre processus : synchronisation, partage mémoire, appel à distance
entre ordinateurs : réseau local, réseau global, internet
fournir un environnement à l’utilisateur
interface pour dialoguer avec le système
outils (compilateur, éditeur de liens, ...)
utilitaires (éditeurs de texte, débogueurs, interpréteurs de
commandes)
système de gestion de fichiers pour structurer, partager, ...
traitement des erreurs
heure, date
Certains de ces éléments (outils, interface graphique) peuvent être vus
comme extérieurs au SE. Mais ils doivent alors se baser sur l’interface
proposée par le SE pour dialoguer avec le système.
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
37/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Rôle du Système d’Exploitation
Complexité d’un S.E. → PSR, FSE
Gestion du processeur
Mono-tâche, «batch», puis multi-programmation (1960)
MS-DOS : 1981
choisir les programmes à exécuter
échanger les programmes dans le processeur
répartir la mémoire
partager le code entre plusieurs programmes
multi-tâches préemptif :
notion de temps partagé (quantum)
reprendre périodiquement le contrôle
nécessite un processeur préemptif avec un mode superviseur
Gestion de la mémoire
notion d’adressage mémoire
allocation, protection
mémoire segmentée, linéaire, paginée
prise en compte de la spécificité du matériel pour optimiser les
performances
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
38/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Rôle du Système d’Exploitation
Types de S.E.
Mono-tâche / multi-tâche
mono-tâche
une tâche ne peut utiliser les ressources du système que si la
précédente est terminée
simpliste, principé abandonné dans les années 70
multi-tâche
plusieurs applications prises en compte simultanément par le S.E.
présence de mécanismes de partage de temps entre les tâches
plus compliqué à mettre en œuvre
simplifie plus le travail des informaticiens et utilisateurs
Ha...
Mono-utilisateur / multi-utilisateur
mono-utilisateur
système utilisé par un seul utilisateur à la fois
ordinateurs personnels, stations de travail, systèmes embarqués
multi-utilisateur
système utilisé par plusieur utilisateurs simultanément
destiné aux serveurs à l’origine
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
39/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Rôle du Système d’Exploitation
Ces SE qui ont marqué l’Histoire
MS-DOS : MicroSoft Disk Operating System
Mono-utilisateur, mono-tâche (1981)
IBM OS/2 : Operating System/2
Mono-utilisateur, multi-tâche (1987)
Windows 95/98/ME
Mono-utilisateur, multi-tâches (1995) – sur-couche de MS-DOS
Windows NT/2000/XP
Multi-utilisateur, multi-tâche (1995)
Apple MacOS
Mono-utilisateur, mono-tâche puis multi-tâche (1986)
UNIX System V, BSD, SCO, Linux, GNU Hurd, MacOS X, ...
Multi-utilisateur, multi-tâche (1970)
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
40/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Rôle du Système d’Exploitation
Deux grandes familles
Aujourd’hui, deux grandes familles de systèmes d’exploitation
SE Microsoft
SE de type UNIX
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
41/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Rôle du Système d’Exploitation
S.E. Microsoft : Historique
1981/82 : première version de MS-DOS
1992 : Windows 3.11, première interface graphique aboutie (pas un
SE)
1995+ : gamme personnelle : Windows 95, Windows 98, Windows
ME (pas des SE)
gamme professionnelle : Windows NT, Windows 2000 (là, oui, c’est
des SE)
aujourd’hui : fusion des deux gammes
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
42/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Rôle du Système d’Exploitation
S.E. Microsoft : Caractéristiques
Windows XP, Vista, 7 : SE multi-utilisateur, multi-tâches pourvu
d’une interface graphique intuitive ; support du multi-cœur
destinés au grand public (installation et configuration «simples»)
ressources matérielles non exposées aux utilisateurs : convient aux
utilisateurs, moins aux développeurs
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
43/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Rôle du Système d’Exploitation
S.E. Unix : Historique
1969 : AT&T développe MULTICS (Multiplexed Information and
Computing Service)
première version, simplifiée, se nomme UNICS (Uniplexed ICS)
adaptation à plusieurs architectures matérielles : langage C
1979 : AT&T veut vendre son SE, jusqu’alors distribué aux
universités ; Berkeley décide de créer sa propre version : Berkeley
Software Distribution
1983 : le MIT créé X Window, une interface graphique pour les
différents UNIX (basés soit sur AT&T, soit sur BSD)
1991 : projet étudiant de Linus Torvalds, Linux
(il l’avait appelé Freax)
1992 : Sun développe Solaris, basé sur AT&T
1992–1995 : procès AT&T vs BSDI → aucun effort commercial de
l’un ni de l’autre, champ libre pour Apple et Microsoft
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
44/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Rôle du Système d’Exploitation
S.E. Unix : Caractéristiques
interface utilisateur réputée moins conviviale (jusqu’à RedHat et
Ubuntu)
plus complexe à installer, configurer
ressources du SE apparaissent à l’utilisateur sous forme de fichier ou
sont simples à utiliser : gestion aisée des ressources pour le
développeur
compatibles avec une série d’applications : projet GNU
((((((GNU)’s Not Unix)’s Not Unix)’s Not Unix)’s Not Unix)’s Not Unix)’s Not Unix
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
45/ 46
Modalités pratique
Rôle d’un Système d’Exploitation
Introduction aux SE Unix
Droits
Shell et ligne de commande
Shell scripts
Rôle du Système d’Exploitation
Questions ?
Sinon, à la semaine prochaine !
Semaine prochaine :
les composants d’un S.E.
plongée dans Unix
Simon E.B. Thierry
Pratique des Systèmes d’Exploitation – L2S3 Printemps
46/ 46
Téléchargement