21/11/2016
Systèmes d’Exploitation et Réseaux (SER)
Marc-Antoine Weisser Plan, Objectif du cours
2016-17
INTRODUCTION
15/11/2016 Système et réseau 1 15/11/2016 Système et réseau 2
Quel point commun ? Quel point commun ?
• Tous sont des ordinateurs bâtis sur
un modèle unique :
– une unité centrale, Architecture des ordinateurs
– un ensemble de périphériques,
– un système d’exploitation,
Algorithmes et structure de données
– des applications. Génie Logiciel
• Ils sont capables de communiquer avec d’autres ordinateurs.
Les éléments restants constituent la base de ce cours :
• Système d’exploitation
• Réseaux
15/11/2016 Système et réseau 3 15/11/2016 – Marc-Antoine Weisser Système et réseau 4
Faire le lien Objectif Pédagogique
• Analyser le fonctionnement d'un système d'exploitation
• Exploiter les services fournis par un système d'exploitation pour construire
une application
• Évaluer l'impact d'un choix d'architecture sur le fonctionnement et les
performances du système
Applications
• Analyser le fonctionnement d'un réseau informatique, notamment de type
Internet
Système d’exploitation
• Concevoir l'organisation d'un réseau
• Comprendre le concept transverse de virtualisation au niveau OS, comme
Hardware
Un nombre au niveau réseau
exponentiel de
configurations
15/11/2016 – Marc-Antoine Weisser Système et réseau 5 20/11/2016 – Marc-Antoine Weisser Système et réseau 6
1
21/11/2016
Ouvrages de références Sources de ces transparents
Transparents et notes de cours reposant sur de nombreux auteurs
• De nombreux livres existent, entre autres : Véronique Alanou, Yolaine Bourda, Cédric Cocquebert, Bernard Jouga,
Thibault Le Meur, Patrick Mercier, Stéphane Vialle, Assia Touil, Nicolas
– Operating System Concepts – Silberschatz, Galvin, Gagne
Sabouret, Ramzi Mahmoudi, Didier Mathieu, Henri Delebecque, hanifa
– Computer Networks – Andrew S. Tanenbaum
boucheneb, Pierre-Antoine Champin, Olivier Bonaventure, G. Detal, C.
Paasch, Cyril Pain-Barre, François Laissus, Eric Fleury…
20/11/2016 – Marc-Antoine Weisser Système et réseau 7 20/11/2016 – Marc-Antoine Weisser Système et réseau 8
Organisation du cours
Genèse
Rôle
Structure
Organisation du cours
• 12 x 1h30 de cours magistraux
• 4 x 1h30 de Travaux Dirigés
• 4 x 4h30 d’Études de Laboratoire Première partie – Cours 1
• Évaluation du cours lors d’un oral LES SYSTÈMES D’EXPLOITATION
15/11/2016 – Marc-Antoine Weisser Système et réseau 9 15/11/2016 Système et réseau 10
La genèse des ordinateurs La genèse des ordinateurs
Blaise Pascal Ada Lovelace Charles Babbage
(1623–1662) Pascaline – 1652
(1815–1852) (1791–1871)
15/11/2016 – Marc-Antoine Weisser Système et réseau 11 15/11/2016 – Marc-Antoine Weisser Système et réseau 12
2
21/11/2016
La genèse des ordinateurs La genèse des ordinateurs
Première Génération (1945—1955)
ENIAC – 1945
SSEM – 1948
MESM – 1950
IBM 701 – 1952
Alan Turing
(1912–1954) Bombe – 1940
ENIAC
15/11/2016 – Marc-Antoine Weisser Système et réseau 13 15/11/2016 – Marc-Antoine Weisser Système et réseau 14
La genèse des ordinateurs La genèse des ordinateurs
• Troisième génération (1963—1971) : circuit intégrés
• Quatrième génération (1971—1990) : microprocesseur
• …
Deuxième Génération (1956—1963)
Les générations se suivent et se mélangent, la classification n’est pas
Ramac 305 – 1956 vraiment arrêtée.
Gamma 60 – 1958
IBM 1401 – 1959
… • Apparitions progressives :
– des ordinateurs personnels
Ramac 305 – des super-calculateurs
– des malin-phones
– des objets connectés
15/11/2016 – Marc-Antoine Weisser Système et réseau 15 15/11/2016 – Marc-Antoine Weisser Système et réseau 16
La genèse des ordinateurs L’OS reste mystérieux…
En 70 ans d’histoire on est passé :
• d’ordinateurs peu nombreux avec peu d’architectures différentes à
plusieurs milliards de machines avec une très grande variété
d’architectures ;
• d’applications dédiées à des ordinateurs à des applications
fonctionnant sur beaucoup de plateformes différentes ;
• d’ordinateurs nécessitant des opérateurs à des ordinateurs avec
seulement des utilisateurs.
Beaucoup de ces évolutions reposent sur l’utilisation et le
développement des Systèmes d’Exploitation.
15/11/2016 – Marc-Antoine Weisser Système et réseau 17 15/11/2016 – Marc-Antoine Weisser Système et réseau 18
3
21/11/2016
L’OS reste mystérieux… L’OS reste mystérieux…
15/11/2016 – Marc-Antoine Weisser Système et réseau 19 15/11/2016 – Marc-Antoine Weisser Système et réseau 20
1ier rôle de l’OS : arbitrer 1ier rôle de l’OS : arbitrer
Partager Protéger mais communiquer
• Un système d'exploitation est un programme (un ensemble de
programme) qui dirige l'utilisation des capacités d'un ordinateur.
• L’OS est le premier programme exécuté lors de la mise en marche de
l'ordinateur, après l’amorçage (boot). • Veiller à ce que chaque application ne puisse pas accéder
(lecture/écriture) aux données d’une autre application.
• Il reçoit des demandes d'utilisation des capacités de l'ordinateur
(stockage des mémoires et des disques durs, calcul du processeur, • Les application protégées doivent toujours pouvoir communiquer.
communication vers des périphérique) de la part des logiciels applicatifs.
• L’OS accepte ou refuse ces demandes, puis réserve les ressources en
question pour éviter que leur utilisation n'interfère avec d'autres
demandes.
15/11/2016 – Marc-Antoine Weisser Système et réseau 21 20/11/2016 – Marc-Antoine Weisser Système et réseau 22
2ième rôle de l’OS : virtualiser 2ième rôle de l’OS : virtualiser
Étant donnée la très grande variété
Applications
du hardware, comment parvenir à • L’OS crée l’illusion de vrais ressources physiques (processeur,
développer des applications ? stockage, réseau…).
• Ces ressources sont semblables à des ressources réelles mais elles
L’OS vient jouer le rôle d’interface sont souvent plus simples et meilleurs.
Système d’exploitation
entre le hardware et les applications afin
de simuler une machine virtuelle.
• Différentes stratégies
Le principe de la virtualisation est – mupliplexer une ressource (partager son utilisation)
Hardware très similaire à celui de – émuler une ressource (créer une ressource purement logicielle)
l’encapsulation dans la – aggréger plusieurs ressources pour n’en présenter qu’une
Machine Virtuelle programmation objet : séparer
l’interface (publique) de
l’implémentation (privée)
15/11/2016 – Marc-Antoine Weisser Système et réseau 23 15/11/2016 – Marc-Antoine Weisser Système et réseau 24
4
21/11/2016
3ième rôle de l’OS : interface
• Interface :
– ligne de commandes
– graphique
– autre ? Première partie – Cours 1
STRUCTURE D’UN OS
15/11/2016 – Marc-Antoine Weisser Système et réseau 25 15/11/2016 Système et réseau 26
Organisation générale Structuration en couches
Appels Systèmes OS Monolithique
• Interruptions : évènements
produits par le matériel App App App Mode utilisateur
Pilotes • Exceptions : événements
générés par le processeur
VFS
Interruptions
• Noyau (kernel) : application
Exceptions rendant des services généraux IPC, Système de fichiers Noyau
Ordinateur • Pilotes (drivers) : applications Kernel
contrôlant les périphériques
Ordonnanceur, Mémoire Virtuelle
• Appels Systèmes : demandes
Noyau de services Driver, Dispatcher, … Mode superviseur
Applications Hardware
21/11/2016 – Marc-Antoine Weisser Système et réseau 27 15/11/2016 – Marc-Antoine Weisser Système et réseau 28
Structuration en couches Appel système – Définition
OS Monolithique OS à noyau hybride
Linux, FreeBSD, OpenVMS ou Solaris Mac OS X, Windows NT • Un appel système (system call, syscall) est une fonction primitive
fournie par le noyau d’un système d’exploitation et utilisée par les
App App App programmes s’exécutant dans l’espace utilisateur (en d’autres
termes, tous les processus distincts du noyau). Ce système permet
VFS
de contrôler de façon sécurisée les applications dans l’espace
OS Micronoyau
utilisateur.
IPC, Système de fichiers Minix, QNX ou GNU Hurd
Serveur
Ordonnanceur, Mémoire Virtuelle IPC App Driver • Le rôle du noyau est de gérer les ressources matérielles (il contient
Fichiers
des pilotes de périphériques) et de fournir aux programmes une
Driver, Dispatcher, … IPC basique, VM, Ordo., … interface uniforme pour l’accès à ces ressources : les appels
systèmes.
Hardware Hardware
15/11/2016 – Marc-Antoine Weisser Système et réseau 29 21/11/2016 – Marc-Antoine Weisser Système et réseau 30
5
21/11/2016
Exemple d’appels systèmes Appel système
Appel Description • La protection des systèmes est assurée par les deux modes de
fork Créer un processus fonctionnement des processeurs :
wait Attendre la terminaison d’un processus – mode superviseur, pour le système, toute instruction est
exit Terminer l’exécution autorisée ;
open/close Ouvrir/fermer un fichier – mode utilisateur, pour les programmes des utilisateurs,
certaines instructions ne sont pas autorisées et provoquent des
read/write Lire/écrire des données
exceptions.
mkdir/rmdir Créer/supprimer un répertoire
kill Envoyer un signal • Un appel système est une interruption logicielle qui active l’OS,
… passe en mode superviseur, exécute une fonction puis repasse en
mode utilisateur.
15/11/2016 – Marc-Antoine Weisser Système et réseau 31 15/11/2016 – Marc-Antoine Weisser Système et réseau 32
Changement de mode Démarrage de l’OS
Application
Utilisateur • Le CPU est démarré en mode superviseur.
Open • Le bootstrap loader en EEPROM localise le noyau et le charge.
Mode utilisateur (parfois, un bootloader plus évolué comme GRUB est utilisé)
Interface des appels systèmes
Mode superviseur
• L’OS partitionne l’espace mémoire en espace user et kernel. Il
return initialise la table des routines d’interruption.
Implémentation de • Une fois chargé, le noyau donne la main à utilisateur dont les
l’appel open applications tournent en mode utilisateur.
Table des appels
Code de l’appel
21/11/2016 – Marc-Antoine Weisser Système et réseau 33 20/11/2016 – Marc-Antoine Weisser Système et réseau 34
Observer les appels systèmes
• sudo dtruss -n firefox-bin
• sudo dtruss -e -n Python 2> out
• { sudo dtruss -e -n Python 1>&2; } 2>&1 | grep -e lseek -e fstat64
-e open -e fstat64 -e close -e lstat64 -e ioctl
21/11/2016 – Marc-Antoine Weisser Système et réseau 35