Fondements des OS
Chapitre I :
Introduction aux systèmes d'exploitation
Amine DHRAIEF
1) Qu’est ce qu’un système d’exploitation ?
27/09/20
Fondements des Systèmes d'Exploitation
2
Introduction
● Un système d'exploitation (Operating System OS) :
– un programme qui gère le hardware
– Intermédiaire entre l'utilisateur et le hardware
● Selon les exigences des équipements des OS différents
– Serveur vs. Ordinateur Portable vs. Supercalculateur
– Smartphone vs. Téléviseur vs. Console de jeux
– Compteur d'électricité/gaz/eau intelligent vs. Voiture vs. Drone
● Système complexe = décomposé en unité plus simple à
modéliser et implémenter
27/09/20
Fondements des Systèmes d'Exploitation
3
Introduction
● Un « ordinateur »
(computer system) est constitué essentiellement de
1)Hardware
2)OS
3)Applicatifs
4)Utilisateurs
27/09/20
Fondements des Systèmes d'Exploitation
4
Introduction
● Le hardware
– CPU + Mémoires + périphériques d'E/S
– → Ressources du système
● Le applicatifs
– Compilateur/navigateurs/Jeux/…
– → Utilisent les ressources du système pour satisfaire les besoins
des utilisateurs
● L'OS
– Contrôle le hardware et coordonne son utilisation par les différents
applicatifs des utilisateurs.
27/09/20
Fondements des Systèmes d'Exploitation
5
L'OS de point de vue de l'utilisateur
● La plupart des utilisateurs utilisent des équipements
mono-utilisateurs
– Les ressources sont monopolisées par un seul utilisateur
● De point vue de l'utilisateur : l'objectif de l'OS est
d'optimiser la facilité de l'utilisation de l’équipement
– Peu d'attention est donnée aux performances du système
– L'OS ne cherche pas à optimiser l'utilisation/partage des ressources
→ des OS optimisés pour un seul utilisateur
27/09/20
Fondements des Systèmes d'Exploitation
6
L'OS de point de vue de l'utilisateur
● Dans l'industrie et la recherche, un utilisateur utilise un
terminal pour accéder à des serveurs/calculateurs...
– Au même moment d'autres utilisateurs accèdent à ces
équipements via d'autres terminaux.
→ Les utilisateurs partagent les ressources disponibles et peuvent s'échanger des messages.
→ De point vue de l'utilisateur : L'objectif de l'OS est le partage équitable des ressources (CPU/Mémoire/…) entre les utilisateurs
27/09/20
Fondements des Systèmes d'Exploitation
7
L'OS de point de vue de l'utilisateur
Facilité de l'utilisation de l’équipement
De point vue de l'utilisateur
Partage équitable des ressources
27/09/20
Fondements des Systèmes d'Exploitation
8
L'OS de point de vue de système
● L'OS est vue comme un dispatcher de ressources
– Temps CPU
– Espace mémoire
– Périphériques d'E/S
● Gère les requêtes et les conflits des différent
programmes/utilisateurs qui demandent l'accès à ces ressources.
27/09/20
Fondements des Systèmes d'Exploitation
9
Est-ce qu'il y a une définition d'un OS ?
● Le terme « système d'exploitation » couvre un grand
nombre de fonctionnalités
– Une grande diversité d'architecture d'équipement ayant besoin
d'un OS (supercalculateurs → smartphones → capteurs)
● Loi de Moore : nombre de transistors dans un CPU
double tous les 18 mois
→ puissance des équipements en constante augmentations
→ émergence de nouvelles fonctionnalités/besoins
27/09/20
Fondements des Systèmes d'Exploitation
10
Loi ou Conjoncture de Moore
● Gordon Moore
● Né le 3 janvier 1929 à San Francisco
est un docteur en chimie et en physique, un chef d'entreprise américain.
● Il est le cofondateur avec Robert
Noyce et Andrew Grove de la société Intel en 1968, premier fabricant mondial de microprocesseurs.
● Il est connu pour avoir publié une loi empirique portant son nom, la loi de Moore, le 19 avril 1965 dans le magazine Electronics
– Source : wikipedia
27/09/20
Fondements des Systèmes d'Exploitation
11
Loi ou Conjoncture de Moore
● le nombre de
transistors des microprocesseurs sur une puce de silicium double tous les 18 mois
27/09/20
Fondements des Systèmes d'Exploitation
12
Est-ce qu'il y a une définition d'un OS ?
● Non : il n'y a pas une définition consensuelle
– Selon Prof. Avi Silberschatz (Professor of Computer Science at Yale
University) : « we have no completely adequate definition of an operating system »
● Est-ce qu'on connaît exactement quels sont les composants
fondamentales d'un OS ? Non
– « we have no universally accepted definition of what is part of the
operating system »
● Une vision simpliste : « the operating system is the one
program running at all times on the computer »
27/09/20
Fondements des Systèmes d'Exploitation
13
Est-ce qu'il y a une définition d'un OS ?
Avi Silberschatz, Peter Baer Galvin, and Greg Gagne. Operating System Essentials. Second Edition. John Wiley & Sons, Inc., 2012.
27/09/20
Fondements des Systèmes d'Exploitation
14
Quels sont les constituants d'un OS ?
● Procès antitrust contre Microsoft (justice
américaine): Windows® offre des fonctionnalités ne faisant pas partie d'un OS (Internet Explorer) → concurrence déloyale
– La vente couplée de Windows et d'Internet Explorer a eu pour effet de laminer la concurrence, et particulièrement Netscape.
● Les OS des smartphone inclus en plus du noyau
(kernel) un middelware (iOS/Android)
– Des APIs pour les développeurs
27/09/20
Fondements des Systèmes d'Exploitation
15
Noyau (Kernel) + Programmes Systèmes + Applications = ?
Noyau
Programmes Systèmes
OS
Applications
27/09/20
Fondements des Systèmes d'Exploitation
16
2) Structure matérielle des ordinateurs
27/09/20
Fondements des Systèmes d'Exploitation
17
Architecture des machines
● Un ordinateur à usage générale (general purpose computer) contient
– Un ou plusieurs CPUs
– Des contrôleurs au niveau de chaque équipements (device)
– Un bus relie le tout à la mémoire
27/09/20
Fondements des Systèmes d'Exploitation
18
Architecture des machines
Le CPU échange des données avec la mémoire
Pour cela il utilise deux registres
● MAR : memory address
register → contient l'adresse mémoire du prochain R/W
● MBR : memory buffer
register
→ contient les données
27/09/20
Fondements des Systèmes d'Exploitation
19
Architecture des machines
● Mise sous tension de la machine → démarrage d'un bootstrap
program
● Le bootstrap program :
– Un programme aussi simple que possible, connu sous le nom de firmware/
micro-code.
– Enregistré dans la Read Only Memory (ROM) ou Electrically Erasable
Read Only Memory ● EPROM= ROM programmable qui peut être effacé et réutilisée
– Initialise les équipements (Registre CPU, contenu de la mémoire,...)
→ Charge le noyau de l'OS (kernel) dans la mémoire.
27/09/20
Fondements des Systèmes d'Exploitation
20
Architecture des machines
● Une fois que le noyau (kernel) est chargé et
exécuté, il peut fournir ses services au système et aux utilisateurs.
– Les systèmes basés sur UNIX lancent après le
démarrage le processus « init ».
● Init lance à son tour d'autre processus.
– À ce stade, l'OS est complètement démarré, et il
attends l'occurrence d'un quelconque événement.
27/09/20
Fondements des Systèmes d'Exploitation
21
Architecture des machines
● L’occurrence d'un événement est signalé
par une interruption logicielle ou matérielle
– Le hardware peut déclencher une interruption à tous moments en envoyant un signal au CPU.
– Un programme peut déclencher une interruption en
exécutant un appel système.
27/09/20
Fondements des Systèmes d'Exploitation
22
Architecture des machines Structure de stockage
● Le CPU charge les instructions uniquement de la mémoire principale,
donc tous les programmes doivent être enregistrés en mémoire
● Les ordinateurs à usage générale (General-Purpose Computers)
Publicité
exécutent leurs programmes à partir d’une mémoire réinscriptible (re- writable) appelée RAM (Random-Access Memory) → mémoire principale
● Le CPU interagit avec la mémoire à travers des séquences de load et
store. – L'instruction load copie une mot mémoire de la mémoire principale vers un
registre interne du CPU
– L'instruction store copie un contenu d'un registre CPU vers la mémoire principale
27/09/20
Fondements des Systèmes d'Exploitation
23
Architecture des machines Structure de stockage
● Idéalement, nous voudrions que les programmes et leurs données soient d'une manière permanente en mémoire → Ceci est évidement impossible car :
– La taille de la mémoire principal est insuffisante pour accueillir tous les
programmes et leurs données.
– La mémoire principal est volatile et les données sont perdus lorsqu'on
éteint la machine.
→ Les machines sont équipées de mémoires secondaires qui étendent les capacités de la mémoire principal
– Stockage permanent
– Grande capacité
27/09/20
Fondements des Systèmes d'Exploitation
24
Architecture des machines Hiérarchie de mémoire
27/09/20
Fondements des Systèmes d'Exploitation
25
Architecture des machines Hiérarchie de mémoire
● Mémoire principale (RAM)
– Programmes doivent être « chargés » dans la RAM
pour être exécutées
– Les instructions et les données sont copiées depuis
la RAM dans des registres
● Or :
– La RAM est volatile
– De taille et vitesse moyennes
27/09/20
Fondements des Systèmes d'Exploitation
26
Architecture des machines Hiérarchie de mémoire
● D'autres mémoires volatiles ont des tailles réduites,
sont rapides et ont un coût par bit élevé
– Registres
– Caches CPU
● Mémoires non-volatiles (permanentes) ont des tailles
importantes, lentes et ont un coût réduit par bit
– Disque magnétique
– Disque optique
27/09/20
Fondements des Systèmes d'Exploitation
27
Architecture des machines les E/S
● Une large portion du code des OS est dédiée à la
gestion des E/S à cause de la variété de types d'E/S.
● Un ordinateur à usage générale est formé
– de CPU(s)
– et de contrôleurs de périphériques connectés à travers un
bus commun.
● Un contrôleur est en charge d'un type spécifique de périphérique. ● Selon le type de contrôleur, plusieurs équipements peuvent y être
attaché.
– Par exemple : 7 périphériques peuvent être attaché simultanément au contrôleur d’équipement small computer-systems interface ( SCSI )
27/09/20
Fondements des Systèmes d'Exploitation
28
Architecture des machines les E/S
● Le contrôleur de périphérique maintien un buffer (mémoire) local pour y stocker temporairement les données émises/reçues par périphérique.
● Un OS utilise un pilote de périphérique (device driver) pour chaque contrôleur de périphérique.
● Le pilote est l’intermédiaire entre le contrôleur de
périphérique et l'OS.
27/09/20
Fondements des Systèmes d'Exploitation
29
3) Les concepts de base des systèmes d'exploitation
27/09/20
Fondements des Systèmes d'Exploitation
30
Finalité des OS
● Un OS fournit l'environnement nécessaire pour
que les programme puissent s’exécuter.
● Pour cela, l'OS :
– Alloue les ressources matérielles et logicielles pour
satisfaire les besoins des programmes.
– Présente aux programme une interface mieux
adaptée à leurs besoins que celle fournie directement par le matériel.
27/09/20
Fondements des Systèmes d'Exploitation
31
Le système d'exploitation en tant que machine virtuelle
Peu de programmes seraient développés si chaque programmeur devait connaître le fonctionnement du hardware
trouver un moyen de libérer les programmeurs de la complexité du hardware
L’ABSTRACTION
27/09/20
Fondements des Systèmes d'Exploitation
32
Peu de programmes seraient développés si chaque programmeur devait connaître le fonctionnement du hardwaretrouver un moyen de libérer les programmeurs de la complexité du hardwareL’ABSTRACTIONLe système d'exploitation en tant que machine virtuelle
Hardware
API
Applications
1- Enrober le matériel avec une couche de logiciel qui gère l'ensemble du système.
2- Présenter au programmeur une API (Application Programming interface, interface de programmation d'application)
27/09/20
Fondements des Systèmes d'Exploitation
33
Le système d'exploitation en tant que machine virtuelle
● Un disque est composé de cylindres,
qui contiennent chacun autant de pistes qu'il y a de têtes placées verticalement.
● Les pistes se divisent en secteurs,
le nombre de secteurs étant compris entre 8 et 32.
● Tous les secteurs contiennent le même
nombre d'octets.
27/09/20
Fondements des Systèmes d'Exploitation
34
Le système d'exploitation en tant que machine virtuelle
• Prise en charge par Linux:
– /kernels/linux-2.6/drivers/block/
hd.c
/*
* This struct defines the
HD's and their types.
*/ struct hd_i_struct {
unsigned int head, sect, cyl, wpcom, lzone, ctl;
int unit; int recalibrate; int special_op;
};
Les champs représentent les caractéristiques géométriques du lecteur : le nombre de têtes (autrement dit de i.
pistes),
ii. iii.
le nombre de secteurs par piste, le nombre de cylindres
27/09/20
Fondements des Systèmes d'Exploitation
35
Le système d'exploitation en tant que machine virtuelle
● La plupart des programmeurs ne veulent pas se soucier de la programmation des disques durs. Ils veulent une abstraction simple de haut niveau :
– considérer par exemple que le disque contient des
fichiers nommés ;
– chaque fichier peut être ouvert en lecture ou en
écriture ;
– il sera lu ou écrit, et finalement fermé.
27/09/20
Fondements des Systèmes d'Exploitation
36
Le système d'exploitation en tant que machine virtuelle
● La partie machine virtuelle des systèmes
d'exploitation
– soustrait le matériel au regard du programmeur
– offre une vue simple et agréable de fichiers
nommés qui peuvent être lus et écrits
27/09/20
Fondements des Systèmes d'Exploitation
37
Le système d'exploitation en tant que machine virtuelle
Machine virtuelle
Cacher les détails de mise en œuvre du matériel
Cacher les limitations physiques (taille mémoire)
27/09/20
Fondements des Systèmes d'Exploitation
38
Machine virtuelleCacher les détails de mise en œuvre du matériel Cacher les limitations physiques (taille mémoire)Le système d'exploitation en tant que gestionnaire de ressources
● Les ordinateurs modernes se
composent de processeurs, de mémoires, d'horloges, de disques, de moniteurs, d'interfaces réseau, d'imprimantes, et d'autres périphériques qui peuvent être utilisés par plusieurs utilisateurs en même temps.
● Le travail du système d'exploitation consiste à ordonner et contrôler l'allocation des processeurs, des mémoires et des périphériques entre les différents programmes qui y font appel.
27/09/20
Fondements des Systèmes d'Exploitation
39
Le système d'exploitation en tant que gestionnaire de ressources
● Imaginez ce qui se produirait si trois programmes qui
s'exécutent sur un ordinateur essayaient simultanément d'imprimer leurs résultats sur la même imprimante.
– Les premières lignes imprimées pourraient provenir du programme 1, les suivantes du programme 2, puis du programme 3 et ainsi de suite.
→ Il en résulterait le désordre le plus total.
● Le système d'exploitation peut éviter ce chaos potentiel en transférant les résultats à imprimer dans un fichier tampon sur le disque.
→ Lorsqu'une impression se termine, le système d'exploitation peut alors imprimer un des fichiers se trouvant dans le tampon.
27/09/20
Fondements des Systèmes d'Exploitation
40
Systèmes multi-tâches
● La plupart des systèmes
d'exploitation modernes permettent l'exécution de plusieurs tâches à la fois
– un ordinateur peut, pendant qu'il exécute le programme d'un utilisateur, lire les données d'un disque ou afficher des résultats sur un terminal ou une imprimante.
● On parle de système d'exploitation multi-tâches ou multi-programmé dans ce cas.
27/09/20
Fondements des Systèmes d'Exploitation
41
Systèmes multi-tâches: les processus
● La notion fondamentale des systèmes d'exploitation
multi-tâches est celle de processus.
● Un processus est une instance de programme en
train de s'exécuter.
– Un processus est représenté par un programme (le code),
– mais également par ses données et par les paramètres
indiquant où il en est, lui permettant ainsi de continuer s'il est interrompu (pile d'exécution, compteur ordinal...).
→ On parle de l'environnement du programme.
27/09/20
Fondements des Systèmes d'Exploitation
42
Systèmes multi-tâches: le temps partagé
● La plupart des systèmes d'exploitation multi-tâches sont implémentés sur un ordinateur ayant un seul micro-processeur.
● Celui-ci, à un instant donné, n'exécute réellement
qu'un seul processus, mais le système peut le faire passer d'un programme à un autre
● Ceci donne aux utilisateurs l'impression que tous les
programmes sont exécutés en même temps.
27/09/20
Fondements des Systèmes d'Exploitation
43
Systèmes multi-utilisateurs
● Comme pour les systèmes multi-tâches, la
multi-utilisation est émulée en attribuant des laps de temps à chaque utilisateur.
● Naturellement, le fait de basculer d'une
application à l'autre ralentit chacune d'entre elles et affecte le temps de réponse perçu par les utilisateurs.
27/09/20
Fondements des Systèmes d'Exploitation
44
Structure externe des OS
Publicité
● Le système d'exploitation comporte un certain nombre de routines
(sous-programmes). Les plus importantes constituent le noyau (kernel).
● Il gère les ressources de l’ordinateur et permet aux différents
composants, matériels et logiciels, de communiquer entre eux.
● Le noyau d'un système d'exploitation se compose de quatre parties
principales :
1.le gestionnaire de tâches (ou des processus)/ordonnanceur,
2.le gestionnaire de mémoire,
3.le gestionnaire de fichiers
4.et le gestionnaire de périphériques d'entrée-sortie.
27/09/20
Fondements des Systèmes d'Exploitation
45
Le gestionnaire de tâches/ Ordonnanceur
● L’ordonnanceur d’un système
d’exploitation n’a de sens qu’en système multitâche.
● Il gère l’ordre dans lequel les
instructions de différentes tâches sont exécutées
● Il est responsable de la sauvegarde et de la restauration du contexte des tâches (ce contexte est constitué des registres processeurs), appelée également commutation de contexte.
27/09/20
Fondements des Systèmes d'Exploitation
46
Ordonnanceur Commutation de contexte ● Une commutation de contexte (context switch) consiste à sauvegarder l'état d'un processus pour restaurer à la place celui d'un autre dans le cadre de l'ordonnancement d'un système d'exploitation multitâche.
● La commutation de contexte invoque au moins trois étapes. Par exemple, en présumant que l'on veut commuter l'utilisation du processeur par le processus P1 vers le processus P2 :
– Sauvegarder le contexte du processus P1 quelque part en mémoire (usuellement
sur la pile de P1).
– Retrouver le contexte de P2 en mémoire (usuellement sur la pile de P2).
– Restaurer le contexte de P2 dans le processeur, la dernière étape de la restauration
consistant à reprendre l'exécution de P2 à son point de dernière exécution.
27/09/20
Fondements des Systèmes d'Exploitation
47
Ordonnanceur
● La plupart des ordonnanceurs modernes permettent d’indiquer sur quel processeur sont exécutées les tâches.
– Certains permettent également de migrer des tâches sur d’autres
machines d’une grappe de calcul.
● L’algorithme d’ordonnancement détermine quelle tâche
doit s’exécuter en priorité et sur quel processeur.
– Cet algorithme doit permettre d’utiliser efficacement les
ressources de la machine
27/09/20
Fondements des Systèmes d'Exploitation
48
Ordonnanceur
● L’ordonnancement peut être de type coopératif
– Les tâches doivent être écrites de manière à coopérer les unes avec les
autres et ainsi accepter leur suspension pour l’exécution d’une autre tâche.
● L’ordonnancement peut être également de type préemptif .
– L’ordonnanceur a la responsabilité de l’interruption des tâches et du choix
de la prochaine à exécuter.
● Certains noyaux sont eux-mêmes préemptifs
– l’ordonnanceur peut interrompre le noyau lui-même pour faire place à une
activité (typiquement, toujours dans le noyau) de priorité plus élevée.
27/09/20
Fondements des Systèmes d'Exploitation
49
Gestionnaire de mémoire
● Le gestionnaire de mémoire est le sous- ensemble du système d’exploitation qui permet de gérer la mémoire de l’ordinateur.
● Sa tâche la plus basique est d’allouer de la mémoire à des processus lorsqu’ils en ont besoin.
27/09/20
Fondements des Systèmes d'Exploitation
50
Gestionnaire de mémoire
● Le gestionnaire de mémoire
– masque la localisation physique de la mémoire (en mémoire vive
ou sur disque dur, dans l’espace de mémoire paginée)
– présente au programme une mémoire globale uniforme dite mémoire
virtuelle.
● Ainsi, tout processus croit manipuler une mémoire
«logique » qui a les propriétés suivantes :
– La mémoire peut être étendue jusqu’aux capacités théoriques de la
machine ;
– La mémoire est privée (protégée), un processus ne peut pas accéder à la mémoire d’un autre processus (sauf allocations et autorisations spécifiques).
27/09/20
Fondements des Systèmes d'Exploitation
51
Gestionnaire de fichiers
● Une des tâches fondamentales du système
d’exploitation est de masquer les spécificités des disques et des autres périphériques d’entrée-sortie et d’offrir au programmeur un modèle agréable et facile d’emploi.
→ Ceci se fait à travers la notion de fichier.
27/09/20
Fondements des Systèmes d'Exploitation
52
Le gestionnaire de périphériques
● Le contrôle des périphériques d’entrée-sortie (E/S) de l’ordinateur est l’une des fonctions primordiales d’un système d’exploitation.
– Ce dernier doit envoyer les commandes aux
périphériques, intercepter les interruptions, et traiter les erreurs.
– Il doit aussi fournir une interface simple et facile d’emploi entre les périphériques et le reste du système qui doit être, dans la mesure du possible, la même pour tous les périphériques, c’est-à-dire indépendante du périphérique utilisé.
27/09/20
Fondements des Systèmes d'Exploitation
53
Le gestionnaire de périphériques
De nombreux systèmes d’exploitation offrent un niveau d’abstraction qui permet aux utilisateurs de réaliser des entrées- sorties sans entrer dans le détail du matériel.
– Ce niveau d’abstraction fait apparaître chaque périphérique comme un fichier spécial, qui permettent de traiter les périphériques d’entrée- sortie comme des fichiers.
27/09/20
Fondements des Systèmes d'Exploitation
54
L’interpréteur de commandes
● Le système d’exploitation proprement dit est le code qui
permet de définir les appels système.
– Les programmes système tels que les éditeurs de texte, les compilateurs, les assembleurs, les éditeurs de liens et les interpréteurs de commandes ne font pas partie du système d’exploitation.
– Sous sa forme la plus rudimentaire, l’interpréteur de
commandes exécute une boucle infinie qui affiche une invite (montrant par là que l’on attend quelque chose), lit le nom du programme saisi par l’utilisateur à ce moment-là et l’exécute.
27/09/20
Fondements des Systèmes d'Exploitation
55
Les Appels Système
● Les appels système sont des fonctions :
– appelées depuis un programme de l’espace utilisateur ;
– dont l’exécution (le traitement) est effectuée dans l’espace noyau ;
– dont le retour est effectué dans le programme appelant dans l’espace
utilisateur.
● En plus d’un changement de mode d’exécution, l’appel
système suppose au moins deux commutations de contextes :
– Contexte du programme appelant ;
– Contexte du noyau ;
27/09/20
Fondements des Systèmes d'Exploitation
56
4) Étude de cas : LINUX 4.1) Présentation de LINUX
27/09/20
Fondements des Systèmes d'Exploitation
57
Historique
● Unix est né, en 1969, dans
les Bell Laboratories (AT&T)
– Ken Thompson et Dennis
Ritchie.
27/09/20
Fondements des Systèmes d'Exploitation
58
Historique
● En 1974, la version 4 d’Unix est « donnée » à
l’université de Berkeley, Californie, qui commence alors son propre développement du système. C’est le début d’une divergence entre les deux versions d’Unix : AT&T et BSD (Berkeley Software Distribution).
● De 1977 à 1979, Ken Thompson et Dennis Ritchie
réécrivent Unix pour le rendre réellement portable. Et en 1980 les premières licences de distribution d’Unix System V d’AT&T sont délivrées aux constructeurs.
27/09/20
Fondements des Systèmes d'Exploitation
59
Présentation d'UNIX
● Unix est un système d’exploitation, constitué
– du noyau Unix,
– d’un interpréteur de commandes
– et d’un grand nombre d’utilitaires.
● Le noyau assure la gestion des ressources physiques (processeur, mémoires, périphériques) et logicielles (processus, fichiers...).
– Le noyau est constitué d’un ensemble de procédures et de
fonctions écrites pour l’essentiel en langage C
● Unix est un système multi–utilisateur, temps partagé,
multi-tâche
27/09/20
Fondements des Systèmes d'Exploitation
60
Présentation de LINUX
● Linux, système Unix libre sur
plateforme PC, était au départ un projet de loisirs de Linus Torvalds, étudiant finlandais.
– Le 5 octobre 1991, Linus Torvalds
annonça la première version officielle de Linux
● Linux fut inspiré de Minix, un petit
système Unix développé par Andrew Tanenbaum
27/09/20
Fondements des Systèmes d'Exploitation
61
Présentation de LINUX Arborescence des répertoires
27/09/20
Fondements des Systèmes d'Exploitation
62
Présentation de LINUX Arborescence des répertoires
● / :
– Racine du système, hiérarchie primaire
● /bin :
binaires, utilitaires binaires ,binaries,
binary utilities (binutils)
– Exécutables des commandes essentielles
disponibles pour tous les utilisateurs (ex: cd, cat, ls…)
27/09/20
Fondements des Systèmes d'Exploitation
63
Présentation de LINUX Arborescence des répertoires
● /boot
initialisation (bootstrap)
– Fichiers statiques du chargeur d’amorçage (noyaux, images ramdisk,
fichiers de configuration du chargeur d'amorçage…)
● /dev périphérique (device)
– Fichiers spéciaux des périphériques
● /etc configuration éditable en mode texte
(editing text
config )
– Fichiers de configuration au format textuel de plusieurs programmes
et services du système
27/09/20
Fondements des Systèmes d'Exploitation
64
Présentation de LINUX Arborescence des répertoires
● /home maison (home directory)
– Répertoires personnels des utilisateurs
● /lib bibliothèques
(librairies)
– Bibliothèques partagées essentielles et modules du noyau
● /media
– Contient les points de montages pour les médias amovibles
27/09/20
Fondements des Systèmes d'Exploitation
65
Présentation de LINUX La désignation des fichiers
● Un fichier est repéré par son nom et sa
position dans l’arborescence : son chemin d’accès (pathname).
● La syntaxe de ce chemin d’accès est très
précise et peut être décrite des deux manières suivantes :
– Le chemin d’accès absolu
Publicité
– Le chemin d’accès relatif
27/09/20
Fondements des Systèmes d'Exploitation
66
Présentation de LINUX La désignation des fichiers
● Le chemin d’accès absolu
– Il permet d’accéder à un fichier quelconque dans l’arborescence
du système de fichiers.
– Il est composé d’une suite de noms de répertoires séparés par le
caractère /.
– Il commence toujours par le caractère / qui désigne le répertoire racine et se termine par le nom du fichier que l’on veut atteindre.
● Exemples
– /home/aminedhraief/Videos/mavideo.mp4
– /home/aminedhraief/Musiques/mamusique.mp3
27/09/20
Fondements des Systèmes d'Exploitation
67
Présentation de LINUX La désignation des fichiers
● Le chemin d’accès relatif
– La désignation d’un fichier par son chemin
d’accès absolu se révèle rapidement lourde vu le nombre de répertoires intermédiaires à désigner.
– Tout utilisateur peut se positionner sur
n’importe quel répertoire de l’arborescence.
– Ce répertoire devient courant (répertoire de
travail ou current working directory).
27/09/20
Fondements des Systèmes d'Exploitation
68
Présentation de LINUX La désignation des fichiers
● Le chemin d’accès relatif
– Dès l’entrée en session de l’utilisateur, le système le place dans un répertoire de travail initial (répertoire d’accueil ou home directory).
– Ce répertoire a été créé au moment de l’établissement du compte
de l’utilisateur.
– Le système associe alors en permanence, à tout processus ou
tâche, le chemin d’accès complet du répertoire de travail courant de l’utilisateur.
– Ainsi, l’usager peut désigner un fichier en ne donnant que son
chemin d’accès relatif au répertoire de travail courant.
– A partir de ce répertoire courant, l’utilisateur construit son propre
sous–arbre de répertoires et de fichiers.
27/09/20
Fondements des Systèmes d'Exploitation
69
Présentation de LINUX La désignation des fichiers
● Le chemin d’accès relatif – Exemples :
– chemin absolu → /home/amine/develop/code.c
– répertoire courant → /home/amine/code.c
– chemin relatif → develop/code.c
27/09/20
Fondements des Systèmes d'Exploitation
70
Présentation de LINUX Le terminale ou L’interpréteur de commandes
● L’interpréteur de
commandes est l’interface entre l’utilisateur et le système d’exploitation.
● Il a pour rôle de traduire les commandes saisies par l’utilisateur afin que le système puisse les exécuter.
27/09/20
Fondements des Systèmes d'Exploitation
71
HowTo: Installer Ubuntu
1) Préparation de votre ordinateur pour accueillir Linux
1) Partitionnement de votre disque dur existant pour une configuration en dual boot
2) Télécharger le fichier iso d’ubuntu https://ubuntu.com/download/desktop
3) Création d’une clé usb amorçable (bootable)
1)
Installer LinuxLive USB Creator http://www.linuxliveusb.com/fr
2) Générer des clés USB amorçables avec une installation de Linux → il suffit de spécifier la clé USB,
d’indiquer où se trouve le fichier ISO (la source), puis de lancer la création de la clé.
3) Placez la clef dans le connecteur USB de votre ordinateur et démarrez le système en veillant démarrer sur
le lecteur de disque ou sur la clé USB.
Source sur le net :
● https://lecrabeinfo.net/installer-ubuntu-20-04-lts-dual-boot-windows-10.html
● https://doc.ubuntu-fr.org/tutoriel/installer_ubuntu_avec_le_live_cd
27/09/20
Fondements des Systèmes d'Exploitation
72
4.2) Connexion d’un utilisateur
27/09/20
Fondements des Systèmes d'Exploitation
73
Connexion d’un utilisateur Connexion en mode texte
27/09/20
Fondements des Systèmes d'Exploitation
74
Connexion d’un utilisateur Connexion en mode graphique
27/09/20
Fondements des Systèmes d'Exploitation
75
Connexion d’un utilisateur Mot de passe
● Un utilisateur peut à tout moment changer son
mot de passe, ou s’en attribuer un par la commande passwd. – Lors du changement, il faut fournir l’ancien mot de
passe
27/09/20
Fondements des Systèmes d'Exploitation
76
Connexion d’un utilisateur Mot de passe
« La sécurité d'un mot de passe repose sur la force de l'algorithme de chiffrement et sur la taille de l'espace de clés utilisé. La méthode de chiffrement des systèmes UNIX est basée sur l'algorithme NBS DES. Des méthodes plus récentes sont maintenant recommandées (voir ENCRYPT_METHOD). La taille de l'espace de clés dépend de l'aléa du mot de passe utilisé. »
Extrait $man passwd
27/09/20
Fondements des Systèmes d'Exploitation
77
Fichier /etc/passwd
● Lors des diverses connexions de l’utilisateur, la lecture du mot de passe se fera sans écho.
● Lorsque le nom et le mot de passe sont
corrects, login récupère dans le fichier /etc/ passwd toutes les informations utiles pour cet utilisateur.
27/09/20
Fondements des Systèmes d'Exploitation
78
Fichier /etc/passwd
27/09/20
Fondements des Systèmes d'Exploitation
79
Fichier /etc/passwd
● root:x:0:0:root:/root:/bin/bash
● Ce fichier est accessible en lecture à tous les utilisateurs et
contient, pour chaque utilisateur, les champs suivants :
– nom de connexion (login) de l’utilisateur,
– un caractère x (indique qu’un mot de passe existe pour le compte)
– le numéro de l’utilisateur (UID = user identifier),
– le numéro de groupe (GID = group identifier),
– Commentaires : informations complémentaire sur l'utilisateur (num
de téléphone, adresse courriel,...)
– le répertoire d’accueil,
– programme à lancer
27/09/20
Fondements des Systèmes d'Exploitation
80
Fichier /etc/shadow
● Le fichier /etc/shadow contient les mots de
passe et l'information sur l'expiration des comptes
27/09/20
Fondements des Systèmes d'Exploitation
81
Fichier /etc/shadow
amine :$6$VnYAAYRG$pwj1PIa25WRqaoqQcUvr68J/ JjnnqG.IL3RiOCc582kcP7Ii54nL.luoZGTt6yuetLzmIoYR.dZvXqWxX/ gb00:16686:0:99999:7:::
– Nom d'utilisateur, jusqu'à 8 caractères. Case-sensitive, habituellement uniquement des minuscules.
Exactement la même entrée que dans le fichier /etc/passwd.
– Mot de passe, 13 caractères codés. Une entrée nulle (eg. ::) indique qu'un mot de passe n'est pas
demandé pour entrer dans le système (une mauvaise idée en général), et une entrée ``*'' (eg. :*:) indique que le compte a été désactivé.
– Le nombre de jours (depuis le 1er Janvier 1970) depuis le dernier changement du mot de passe.
– Le nombre de jours avant que le mot de passe ne puisse être changé (un 0 indique qu'il peut être changé
à n'importe quel moment).
– Le nombre de jours après lesquels le mot de passe doit être changé (99999 indique que l'utilisateur peut
garder son mot de passe inchangé pendant beaucoup, beaucoup d'années)
– Le nombre de jours pour avertir l'utilisateur qu'un mot de passe ne va plus être valable (7 pour une
semaine entière)
– Le nombre de jours avant de désactiver le compte après expiration du mot de passe
– Le nombre de jours depuis le 1er Janvier 1970 pendant lesquels un compte a été désactivé
– Un champ réservé pour une utilisation future possible
27/09/20
Fondements des Systèmes d'Exploitation
82
Algorithme de hashage utilisé dans /etc/shadow
● Format du mot de passe $ID$Salage$Hash
– ID: l’algorithme utilisé :
● $1$ is MD5 ● $2a$ is Blowfish ● $2y$ is Blowfish ● $5$ is SHA-256 ● $6$ is SHA-512
– Salage : dynamique/statique
– Hash : empreinte du mot de passe
27/09/20
Fondements des Systèmes d'Exploitation
83
Principe de hashage
27/09/20
Fondements des Systèmes d'Exploitation
84
4.3) Les shells
27/09/20
Fondements des Systèmes d'Exploitation
85
Les shells
● Un script est fichier contenant une série
d’ordres que l’on va soumettre à un programme externe pour qu’il les exécute.
– Ce programme est appelé interpréteur de
commandes.
Interpréteur de commande
Résultat
Script
Écris Lis Écris Lis …..
27/09/20
Fondements des Systèmes d'Exploitation
86
Les shells langage interprété
● Il existe de nombreux interpréteurs de
commandes.
– Naturellement, le shell en fait partie, tout comme
certains outils tels que Sed et Awk, ainsi que d’autres langages tels que Perl, Python, Tcl/Tk, Ruby, etc.
● Ces langages sont dits interprétés, par
opposition aux langages compilés (comme C, C++, Fortran, Ada, etc.).
27/09/20
Fondements des Systèmes d'Exploitation
87
Les langages compilés
● Un code source écrit en langage compilé doit être
traduit en instructions de code machine compréhensibles pour le processeur.
– Cette étape de compilation nécessite plusieurs outils et peut
parfois s’avérer longue.
Code source
Compilation
Fichier binaire
Résultat
Écris Lis Écris Lis …..
27/09/20
Fondements des Systèmes d'Exploitation
88
Les shells langages interprétés vs compilés
Le code compilé étant directement compris par le processeur du système, son exécution est très rapide
Un script doit être interprété dynamiquement, ce qui ralentit sensiblement l’exécution
27/09/20
Fondements des Systèmes d'Exploitation
89
Les shells langages interprétés vs compilés
Publicité
Le fichier exécutable issu d’une compilation est souvent volumineux et n’est utilisable que sur un seul type de proces