Fondements des OS

Systèmes d'exploitation · course

Voir tous les documents en systèmes d'exploitation et cloud

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