My OS tsr1
My OS tsr1
My OS tsr1
Systèmes d‘Exploitation
Plan
• Définitions
• Structure d’un SE
• Classifications des SE
• Quelques définitions
• Modèle en couches
– Gestion de mémoire
2
Pourquoi étudier les S.E.?
• Logiciel très important…
– tout programme roule sur un SE
– interface usager-ordinateur
3
Introduction
•Un ordinateur doit être capable de faire fonctionner un programme, Pour cela il faut
que la machine puisse effectuer un certain nombre d'opérations préparatoires afin
d'assurer les échanges entre l'unité centrale de traitement, la mémoire, et les
périphériques.
4
Introduction
• Définition :
• Un système d'exploitation est un ensemble de programmes permettant à son utilisateur
de disposer d'un ensemble de services élaborés à partir des ressources de la machine sur
laquelle il s'exécute.il doit assurer :
chargement et lancement des programmes.
gestion du (des) processeur(s)
gestion des périphériques et entrées/sorties.
gestion de la mémoire principale et secondaire.
Applications
...
OS
Bios
Matériel
5
Introduction
A savoir :
les périphériques varient d'un ordinateur à
un autre, en particulier sur un PC. On a OS
introduit donc la notion des pilotes de
périphériques (instructions servant à piloter
un périphérique, en anglais drivers)
Pilotes
différents selon les types d'ordinateurs et les
types de périphériques.
Matériel
6
Définitions
• angl. « Operating System (OS) »
• Qu'est-ce que c'est?
« Programme assurant la gestion de l'ordinateur et de ses périphériques »
• A quoi ca sert?
– Fournit l’interface usager/machine:
– Masque les détails du matériel aux applications
– Le SE doit donc traiter ces détails
– Contrôle l’exécution des applications
– Le fait en reprenant périodiquement le contrôle de l’UCT
– Dit à l’UCT quand exécuter tel programme
– Il doit optimiser l`utilisation des ressources pour maximiser la
performance du système
7
Définitions
• Le système d’exploitation d’un système informatique est un
ensemble de programmes qui remplissent deux grandes
fonctions :
– gérer les ressources de l’installation matérielle en assurant leurs partages
entre un ensemble plus ou moins grand d’utilisateurs
– assurer un ensemble de services en présentant aux utilisateurs une
interface mieux adaptée à leurs besoins que celle de la machine physique
8
Abstraction
• Cacher la complexité des machines pour l'utilisateur afin
d'utiliser la machine sans savoir ce qui est derrière
• Abstraction du terme « Machine » selon Coy:
– machine réelle = Unité centrale + périphériques
– machine abstraite = machine réelle + système d'exploitation
– machine utilisable = machine abstraite + application
9
Vue abstraite d’un S.E.
10
Ressources et leur gestion
• Ressources:
– physiques: mémoire, unités E/S, UCT...
– Logiques = virtuelles: fichiers et bases de données partagés,
canaux de communication logiques, virtuels...
– les ressources logiques sont bâties par le logiciel sur les
ressources physiques
11
Exigences à un système
d’exploitation
Généralités
Satisfaire les utilisateurs et les programmeurs
Gérer 2D, 3D, vidéo, audio, réseau, CD, DVD, clé USB, ...
Plusieurs utilisateurs (itinérants) --> multi-utilisateurs
être extensible
12
Exigences de l’utilisateur
« Faut que ça marche ! »
(comme j'en ai envie ...)
13
Exigences du programmeur
Simplifier l'accès aux ressources de la machine :
Mémoire, processeur, périphériques, fichiers, programmes,
réseaux, communication interne
Modèle de programmation simple et unifié
= Machine étendue
14
Historique des systèmes
d’exploitaion
• CP/M (depuis 1974), Digital Research
• UNIX (depuis 1969-1979), premier par AT&T
• MS-DOS (depuis 1981), Microsoft
• MacOS (depuis 1984), Apple
• Windows (depuis 1991), Microsoft
• Linux (depuis 1992), OpenSource
15
Structure d’un système
informatique
Applications
r s Ed
t eu ite
l a Système d’exploitation urs
pi
o m
C Langage machine
Dispositifs
physiques
Interpréteur de commandes
16
Classification des S.E.
• Par la méthode d’accès au système par l’usager :
– par session : ce sont les systèmes transactionnels ou
conversationnels (ex : réservation d’un billet ONCF)
– par requête : temps réel (ex: la voix sur IP)
– par travaux (batch) : traitement par lots (ex: mise à jour des
comptes bancaires la nuit)
17
Classification des S.E.
• Par la configuration matérielle :
– un seul processeur : système monoprocesseur
– plusieurs processeurs : système multiprocesseur
– basée sur un réseau : système réseau (système distribué)
18
Classification des S.E.
• Par la politique de partage des ressources physiques et
logiques :
– partage de la mémoire entre plusieurs programmes : système
multiprogrammé
– partage du temps processeur entre les programmes en
exécution : temps partagé (partage par quantum de temps) ou
temps
– réel (partage par priorité des tâches)
19
Quelques définitions
• Noyau
• Processus
• Traitement par lots
• Systèmes Multi-tâche
• Systèmes Multi-utilisateurs
• Systèmes Multi-processeurs
• Systèmes temps réel
• Systèmes distribués
20
Définitions : le noyau
• Les fonctions principales du noyau sont :
– L’allocateur (dispatcher) du CPU : répartition du temps
disponible de l’unité de traitement entre les différents processus
– La gestion des interruptions : détermination de la source de
l’interruption et activation de la procédure de service
correspondante
– Le support de l’environnement des processus : synchronisation
des processus
21
Définitions : les processus
• Un processus est un programme qui s’exécute = un
programme exécutable + données + pile + compteur
ordinal …
P1
P6 P2
P5 P3
P4
22
Définitions : traitements par
lots (batch processing)
• Un utilisateurs donne plusieurs commandes (« Jobs »)
dans une queue d'éxécution de programmes
• Entièrement séquentielle
• p.ex. pour faire plusieurs calculs pendant la nuit
• p.ex. autoexec.bat
23
Définitions : Systèmes Multi-
tache (Multitasking)
• Assurer l'éxécution de plusieurs programmes en meme
temps (c-à-d. plusieurs processus)
24
Définitions : Systèmes Multi-
processeurs
• système avec plusieurs processeurs
– parallèle
– vrai multi-tâches
– doit assurer qu'il y a l'exécution d'autant de processus que
processeurs en même temps
25
Définitions : Systèmes Multi-
utilisateurs (« time sharing »)
• permettre a différentes personnes de travailler avec un
ordinateur en même temps
• connexion par
– via le terminal de l'ordinateur lui-même
– à distance (telnet, ssh, ftp, ...)
26
Définitions : Multi-utilisateurs
• Login
• Type:
– Administrateur (« root »)
– Groupes
– Utilisateurs
27
Définitions : Systèmes Temps
réels
• Sert pour le pilotage et le contrôle des déroulements
externes (p.ex. centrale électrique)
• doit garantir des temps de réactions données pour des
signaux extérieur urgents
• plusieurs systèmes d'exploitations n'y arrivent pas car
l'interruption de certaines activités met le système dans
un état instable
28
Définitions : Systèmes distribués
• doit permettre l'éxecution d'un seul programme sur
plusieurs machines
29
S.E. : Modèle en couches
Application (Logiciel, p.ex. Microsoft Word)
Gestion de la mémoire
30
Gestion de la Mémoire
31
Gestion de la Mémoire
Les mémoires
• Conservation de l’information
• Caractéristiques
– Situation, capacité, méthodes d’accès, performances
– Nature : magnétique, optique, semi-conducteurs
– Propriétés : volatile/non, effaçable/non, etc
• Organisation, hiérarchie
– CPU : registres, cache
– Mémoire centrale
– Mémoire secondaire : disque, CD, bande magnétique…
32
Gestion de la Mémoire
33
Gestion de la Mémoire
Mémoire/Adresses physiques et logiques:
• Mémoire physique:
– la mémoire principale RAM de la machine
34
Gestion de la Mémoire
• Le gestionnaire de mémoire est un sous-ensemble du
système d'exploitation. Son rôle est de partager la
mémoire entre l'OS et les diverses applications. Le terme
"mémoire" fait surtout référence à la mémoire principale,
c'est à dire à la RAM, mais la gestion de celle-ci
demande la contribution de la mémoire auxiliaire
(mémoire de masse, spacieuse mais lente) et à la
mémoire cache ( rapide mais de taille restreinte).
35
Gestion de la Mémoire
• Voici trois fonctions qu'on attend du gestionnaire de
mémoire :
• L'allocation de la mémoire aux processus
36
Gestion de la Mémoire
• La segmentation de l'espace d'adressage
37
Gestion de la Mémoire
• La mémoire virtuelle
38
Gestion de la Mémoire
La pagination est un système de gestion de mémoire. La pagination permet à un
processus d’être stocké dans une mémoire de manière non contiguë. Stocker le
processus d’une manière non-contiguë résout le problème de la fragmentation externe.
Pagination
39
Gestion de la Mémoire
• Les systèmes d'exploitation qui gèrent ces deux
techniques simultanément administrent une table
de segments et plusieurs tables de pages.
• Un segment peut contenir plusieurs pages mais
toutes ne doivent pas nécessairement être
présentes en mémoire à tout moment. On ne
garde en mémoire que celles qui sont réellement
utilisées. Chaque segment a sa propre table de
pages.
40
Gestion de la Mémoire
La mémoire virtuelle est très schématiquement un dispositif qui
permet de simuler la mémoire de l'ordinateur sur un disque (zone de
swap). Seules les informations nécessaires à l'activité immédiate
résident, à un instant donné, dans la vraie mémoire. Ceci permet
d'exécuter des programmes dont la taille est supérieure à la mémoire
réelle de la machine. Le mauvais côté de cette invention est qu'il faut
multiplier les échanges entre le disque et la mémoire pour la mettre à
jour. Il faut donc disposer de périphériques et de contrôleurs d'entrées-
sorties rapides.
41
Gestion des Processus
Gestion de la mémoire
42
Gestion des Processus
• Un processus comporte du code machine exécutable, une zone
mémoire (données allouées par le processus), une pile ou stack
(pour les variables locales des fonctions et la gestion des appels et
retour des fonctions) et un tas ou heap pour les allocations
dynamiques.
• Tous les processus sont donc associés à une entrée dans la table des
processus qui est interne au noyau.
43
Gestion des Processus
-Contexte d’un processus-
• Le contexte d’un processus (Process Control Block) est l’ensemble de :
1. son état
2. son mot d’état : en particulier la valeur des registres actifs et le compteur
ordinal
3. les valeurs des variables globales statiques ou dynamiques
4. son entrée dans la table des processus
5. les données privées du processus (zone u)
6. Les piles user et system
7. les zones de code et de données.
44
Gestion des Processus
-Généalogie des processus-
• La création d'un processus étant réalisée par un appel système (fork sous
UNIX/Linux). Chaque processus est identifié par un numéro unique, le PID
(Processus IDentification).
• Un processus est donc forcément créé par un autre processus (notion père-
fils). Le PPID (Parent PID) d'un processus correspond au PID du processus
qui l'a créé (son père)
45
Gestion des Processus
-Création dynamique de processus-
• Lors d'une opération fork, le noyau Unix crée un nouveau
processus qui est une copie conforme du processus père. Le code,
les données et la pile sont copiés et tous les fichiers ouverts par le
père sont ainsi hérités par le processus fils.
46
Gestion des Processus
-Attributs d’un processus-
47
Gestion des Processus
- Création de processus
Rappel
Un processus est forcément crée par un autre processus
Sous Unix
2 appels système :
•fork pour créer un processus à partir du processus courant
→ Le processus est dupliqué
•exec pour remplacer le processus courant par un autre processus
Sous Windows
•createprocess pour créer un processus (cf. exec Unix)
→ Le processus courant est conservé
48
Gestion des Processus
49
Gestion des Processus
Branchement et recouvrement
50
Gestion des Processus
- Notion de Thread-
Définition
La thread est l’unité de base du processus. Un processus peut avoir plusieurs
threads Les threads partagent le même code et les mêmes données Chaque
thread a sa propre pile
51
Gestion des Processus
- Notion de Thread-
Principe
52
Gestion des Processus
- États d’un processus-
• Lors de son exécution, un processus est caractérisé par un état :
– lorsque le processus obtient le processeur et s'exécute, il est dans l'état élu. L'état élu est
l'état d'exécution du processus.
– lors de cette exécution, le processus peut demander à accéder à une ressource (réalisation
d'une entrée/sortie, accès à une variable protégée) qui n'est pas immédiatement disponible :
le processus ne peut pas poursuivre son exécution tant qu'il n'a pas obtenu la ressource (par
exemple, le processus doit attendre la fin de l'entrée/sortie qui lui délivre les données sur
lesquelles il réalise les calculs suivants dans son code) : le processus quitte alors le
processeur et passe dans l'état bloqué.
L'état bloqué est l'état d'attente d'une ressource autre que le processeur.
53
Gestion des Processus
- États d’un processus-
– lorsque le processus a enfin obtenu la ressource qu'il attendait, celui-ci peut
potentiellement reprendre son exécution. Cependant, nous nous sommes placés
dans le cadre de systèmes multiprogrammés, c'est-à-dire qu'il y a plusieurs
programmes en mémoire centrale et donc plusieurs processus.. Lorsque le
processus est passé dans l'état bloqué, le processeur a été alloué à un autre
processus. Le processeur n'est donc pas forcément libre. Le processus passe alors
dans l'état prêt. L'état Prêt est l'état d'attente du processeur.
– Le passage de l'état prêt vers l'état élu constitue l'opération d'élection. Le passage
de l'état élu vers l'état bloqué est l'opération de blocage. Le passage de l'état
bloqué vers l'état prêt est l'opération de déblocage.
54
Gestion des Processus
- États d’un processus-
Un processus est toujours crée dans l'état prêt. Un processus se termine toujours à
partir de l'état élu (sauf anomalie).
55
Gestion des Processus
- États d’un processus-
• Le processus est une activité dynamique et possède un état qui
évolue au cours du temps. Ce processus transitera par différents états
selon que :
– il s'exécute (ACTIF ou Élu)
– il attend que le noyau lui alloue le processeur (PRET)
– il attend qu'un événement se produise (ATTENTE ou Bloqué)
56
Gestion des Processus
- Critères d’évaluation des performances-
• Rendement
– Nombre de travaux exécutés par unité de temps.
• Temps de service
– Temps qui s’écoule entre le moment où un travail est soumis et où il est exécuté(temps
d’accès mémoire + temps d’attente dans la file des processus éligibles + temps d’exécution
dans l’unité centrale + temps d’attente + temps d’exécution dans les périphériques
d’entrée/sortie).
• Temps d’attente
– Temps passé dans la file des processus éligibles.
• Temps de réponse
– Temps qui s’écoule entre la soumission d’une requête et la première réponse obtenue.
57
Gestion des Processus
- Ordonnancement-
• La figure précédente schématise le fonctionnement d'une machine multiprocessus. Plusieurs processus sont
présents en mémoire centrale. P1 est élu et s'exécute sur le processeur. P2 et P4 sont dans l'état bloqué car ils
attentent tous les deux une fin d'entrée/sortie avec le disque. Les processus P3, P5 et P6 quant à eux sont dans
l'état prêt : ils pourraient s'exécuter (ils ont à leur disposition toutes les ressources nécessaires) mais ils ne le
peuvent pas car le processeur est occupé par P1. Lorsque P1 quittera le processeur parce qu'il a terminé son
exécution, les trois processus P3, P5 et P6 auront tous les trois le droit d'obtenir le processeur. Mais le
processeur ne peut être alloué qu'à un seul processus à la fois : il faudra donc choisir entre P3, P5 et P6 : c'est le
rôle de l' ordonnancement qui élira un des trois processus .
58
Gestion des Processus
- Ordonnancement-
• Définition : Ordonnancement
59
Gestion des Processus
- Ordonnancement-
• But de l’ordonnancement :
60
Gestion des Processus
- Ordonnancement préemptif et non préemptif 1/2-
• La figure suivante reprend le graphe d'états concernant les processus.
Une transition a été cependant ajoutée entre l'état élu et l'état prêt :
c'est la transition de préemption. La préemption correspond à une
opération de réquisition du processeur, c'est-à-dire que le processeur
est retiré au processus élu alors que celui-ci dispose de toutes les
ressources nécessaires à la poursuite de son exécution. Cette
réquisition porte le nom de préemption .
61
Gestion des Processus
- Ordonnancement préemptif et non préemptif 2/2-
Définition : Préemption
Selon si l'opération de réquisition du processeur est autorisée ou non,
l'ordonnancement sera qualifié d'ordonnancement préemptif ou non préemptif
:
si l'ordonnancement est non préemptif, la transition de l'état élu vers l'état
prêt est interdite : un processus quitte le processeur si il a terminé son
exécution ou si il se bloque.
si l'ordonnancement est préemptif, la transition de l'état élu vers l'état
prêt est autorisée : un processus quitte le processeur si il a terminé son
exécution , si il se bloque ou si le processeur est réquisitionné.
62
Gestion des Processus
- Politiques d’ordonnancement -
1/ Politique Premier Arrivé, Premier Servi (First come First Served)
63
Gestion des Processus
- Politiques d’ordonnancement -
1/ Politique Premier Arrivé, Premier Servi (First come First Served)
2
1
64
Gestion des Processus
- Politiques d’ordonnancement -
2/ Politique plus court d’abord (Shortest Job first)
• Cette politique est également une politique sans réquisition. Elle a la propriété de
minimiser le temps de réponse moyen pour l'ensemble des algorithmes
d'ordonnancement sans réquisition. Elle pénalise les travaux longs. Elle impose
également d'estimer la durée des processus ce qu'on ne connaît pas habituellement.
• Il existe une version avec réquisition de cette politique appelée "temps restant le plus
court d'abord" : dans ce cas, le processus en exécution restitue le processeur lorsqu'un
nouveau processus de temps d'exécution inférieur à son temps d'exécution restant
devient prêt.
65
Gestion des Processus
- Politiques d’ordonnancement 2/3-
2/ Politique plus court d’abord (Shortest Job first)
66
Gestion des Processus
- Politiques d’ordonnancement -
3/ Politique d'ordonnancement par tourniquet (Round Robin)
• On définit une tranche de temps appelée quantum qui peut varier de 10 ms à 100 ms.
Chaque processus présent dans la file des processus prêts acquiert le processeur à tour
de rôle, et ce pour au maximum un temps égal au quantum de temps.
• Si le processus n'a pas terminé son exécution avant la fin du quantum, il perd le
processeur et est réinséré en fin de file des processus prêts.
• Cette politique du tourniquet est usuellement utilisée dans les systèmes en temps
partagé.
67
Gestion des Processus
- Politiques d’ordonnancement -
3/ Politique d'ordonnancement par tourniquet (Round Robin)
68
Gestion des Processus
- Politiques d’ordonnancement -
4/ Politique par priorité
• Cet algorithme présente une version sans réquisition et une version avec réquisition.
• Le défaut de cette politique est le risque de famine encouru par le processus de faible
priorité. Une solution à ce problème est de faire "vieillir" la priorité des processus en
attente, c'est-à-dire d'augmenter celle-ci en fonction du temps d'attente. La priorité des
processus devient ainsi variable.
Complément :
La famine est la situation où un processus ne peut disposer d'une ressource qu'il
demande (ici le processeur)
69
Gestion des Processus
- Politiques d’ordonnancement -
4/ Politique par priorité
70
Gestion des Processus
- Communication inter- processus-
Communications unidirectionnels:
71
Gestion des périphériques
(E/S)
Application (Logiciel, p.ex. Microsoft Word)
Gestion de la mémoire
72
Gestion des périphériques (E/S)
-Structure générale d’un système d’E/S-
73
Gestion des périphériques (E/S)
-Périphérique (Device)-
Types de périphériques :
74
Gestion des périphériques (E/S)
-Les interruptions-
75
Gestion des périphériques (E/S)
-Les interruptions-
Utilisation:
76
Gestion des périphériques (E/S)
-Les interruptions-
77
Gestion des périphériques (E/S)
-Les interruptions-
• Types d’interruptions
78
Gestion des périphériques
(E/S)
Application (Logiciel, p.ex. Microsoft Word)
Gestion de la mémoire
79
Gestion des fichiers
-Introduction-
80
81
Gestion des fichiers
-Système de gestion des fichiers-
• Un fichier est une collection logique d’information.
• Une des fonctions d'un SE est de masquer les spécificités des disques et des
autres périphériques d'entrées/sorties et d'offrir au programmeur un modèle
de manipulation des fichiers agréable et indépendant du matériel utilisé.
• Les appels système permettent de créer des fichiers, de les supprimer, de lire
et d'écrire dans un fichier. Il faut également ouvrir un fichier avant de
l'utiliser, le fermer ultérieurement. Les fichiers sont regroupés en répertoires
arborescents; ils sont accessibles en énonçant leur chemin d'accès (chemin
d'accès absolu à partir de la racine ou bien chemin d'accès relatif dans le
cadre du répertoire de travail courant).
82
Bienvenue dans la
section du système
Linux
Gestion des fichiers
-Désignation des partitions (sous Linux) 1/2-
• Un disque dur est généralement organisé de la façon suivante :
• Le Master Boot Record (MBR) est situé dans les premiers secteurs du
disque.
Dans ce modèle, une zone de 512 octets appelée le Master Boot Record
(MBR) est réservée en début de disque pour contenir l'information relative à
un maximum de 4 partitions.
84
Gestion des fichiers
-Désignation des partitions (sous
Linux) 2/2-
• Pour dénommer les disques, un format est adopté : /dev/XXYZ où
XX désigne le type de bus :
– hd pour les périphériques de type IDE
– sd pour les périphériques de type SATA
– Y désigne la lettre de périphérique :
– "a" pour le maître de la nappe IDE primaire
– "b" pour l'esclave de la nappe IDE primaire
– "c" pour le maître de la nappe IDE secondaire
– "d" pour l'esclave de la nappe IDE secondaire
– Z désigne le numéro de la partition
• Exemples :
– /dev/hda1 : partition 1 sur le 1er disque IDE
– /dev/sdb2 : partition 2 sur le 2ème disque SATA
85
Gestion des fichiers
-Systèmes de fichiers 1/6-
• Les données sont normalement présentées à l'utilisateur et aux
programmes selon une organisation structurée, sous la forme de
répertoires et de fichiers. Pour pouvoir stocker ces données
structurées sur un périphérique, il faut utiliser un format qui les
représente sous la forme d'une succession de blocs de données : c'est
ce qu'on appelle un système de fichiers.
86
Gestion des fichiers
-Systèmes de fichiers 2/6-
• RAPPEL: Sous Windows, les systèmes de fichiers disponibles sont :
87
Gestion des fichiers
-Systèmes de fichiers 3/6-
• FAT32 : Ce système de fichiers, aussi créé par Microsoft, est une
évolution de son prédécesseur. Depuis ses versions 2000 SP4 et XP,
Windows ne peut pas formater (ou bloque volontairement le
formatage) une partition en FAT32 d'une taille supérieure à 32 Go.
Cette limitation ne s'applique pas sous Linux, de même qu'avec des
versions antérieures de Windows. Une partition FAT32 d'une taille
supérieure à 32 Go déjà formatée pourra être lue par Windows, peu
importe sa version.
88
Gestion des fichiers
-Systèmes de fichiers 4/6-
• NTFS : Ce système de fichiers a aussi été développé par Microsoft,
et il reste très peu documenté. L'écriture depuis Linux sur ce système
de fichiers est stable à l'aide du pilote ntfs-3g.
89
Gestion des fichiers
-Systèmes de fichiers 5/6-
• ext4fs : ext4 est considéré par ses propres concepteurs comme une
solution intermédiaire en attendant le vrai système de nouvelle
génération que sera Btrfs.
90
Gestion des fichiers
-Systèmes de fichiers 6/6-
• ReiserFS : Développé par Hans Reiser et la société Namesys,
ReiserFS est reconnu particulièrement pour bien gérer les fichiers de
moins de 4 ko. Un avantage du ReiserFS, par rapport à ext3, est qu'il
ne nécessite pas une hiérarchisation aussi poussée: il s'avère
intéressant pour le stockage de plusieurs fichiers temporaires
provenant d'Internet. Par contre, ReiserFS n'est pas recommandé
pour les ordinateurs portables, car le disque dur tourne en
permanence, ce qui consomme beaucoup d'énergie.
91
Gestion des fichiers
-Arborescence 1/7-
• Une arborescence est une organisation logique de fichiers sur un ou plusieurs
systèmes de fichiers. Il s’agit d’une structure de données hiérarchique de type
arbre. Le système qui gère les fichiers sous Linux est un peu déroutant au début,
surtout quand on est habitué à celui de Windows. En effet, sous Windows, il y a
en fait plusieurs racines.C:\est la racine du disque dur, E:\est la racine de votre
lecteur CD (par exemple).
• Sous Linux, il n'y a qu'une et une seule racine : « / ». Il n'y a pas de lettre de
lecteur car justement, Linux ne donne pas de nom aux lecteurs comme le fait
Windows. Il dit juste « La racine, c'est/ ». Au lieu de séparer chaque disque dur,
lecteur CD, lecteur de disquettes, lecteur de carte mémoire… Linux place en gros
tout au même endroit sous une seule racine.
92
Gestion des fichiers
-Arborescence 2/7-
93
Gestion des fichiers
-Arborescence 3/7-
• etc : répertoire contenant les fichiers de configuration. Ce répertoire
contient des fichiers de données ainsi que des programmes réservés pour
la maintenance du système.
94
Gestion des fichiers
-Arborescence 4/7-
• bin : répertoire contenant les principales commandes disponibles
pour les utilisateurs ;
96
Gestion des fichiers
-Arborescence 6/7-
• /usr/bin est un répertoire composé essentiellement de fichiers contenant le code
exécutable des principales commandes sous linux. Si un de ces fichiers est
supprimé ou change de nom, la commande correspondante ne sera plus reconnue.
• /usr/include est un répertoire qui contient les fichiers référencés en tête (*.h)
d'un programme source en langage C.
• /usr/spool est un répertoire contenant une variété de sous répertoires utiles pour
y conserver les fichiers en attente d'impression.
97
Gestion des fichiers
-Arborescence 7/7-
• var : répertoire contenant les journaux systèmes. Il contient une
hiérarchie de fichiers système qui évoluent durant le fonctionnement
de la machine. Ex : /var/spool/ est le répertoire contenant les files
d'attente pour les sous-systèmes du courrier, de l'impression,
98
Gestion des fichiers
-Chemins relatifs et chemins
absolus 1/2-
• Sous Linux le disque est organisé en une structure hiérarchique, c'est-à-dire en
une arborescence de répertoires. Chaque répertoire contient des noms de fichiers
ou de sous répertoires qui contiennent eux-mêmes des noms de fichiers et de sous
répertoires, etc. …
• Sous Linux, un chemin d'accès se compose d'une suite de mots séparés par des /.
Il faudra cependant faire la distinction entre les chemins d'accès absolus et
relatifs.
99
Gestion des fichiers
-Chemins relatifs et chemins
absolus 2/2-
• Chemin absolu : la référence absolue d'un objet (fichier ou répertoire) se
fait par la liste des répertoires traversés pour atteindre cet objet, en
commençant par la racine /. Ex: /home/amine/etige/cours référence le fichier
cours qui est sous le répertoire etige lui-même sous amine qui lui est sous la
racine ce qui est indiqué par le premier /.
les fichiers spéciaux : certains autres fichiers sont spéciaux car ils
représentent quelque chose. Par exemple, le lecteur CD est un fichier
pour Linux. Là où Windows fait la distinction entre ce qui est un
fichier et ce qui ne l'est pas, Linux, lui, dit que tout est un fichier.
C'est une conception très différente, un peu déroutante comme je
vous l'ai dit, mais pas de panique, vous allez vous y faire.
101
Gestion des fichiers
-Catégorie des fichiers sous Linux
1/3-
• La commande ls –l donne un tel résultat :
Nom du
Autorisations propriétaire Taille du fichier Nom du fichier
102
Gestion des fichiers
-Types de fichiers sous Linux 2/3-
• Il existe 4 catégories de fichiers :
103
Gestion des fichiers
-Types de fichiers sous Linux 3/3-
Les fichiers spéciaux : situés sous /dev, ce sont les points d'accès
préparés par le système aux périphériques. Le montage va réaliser
une correspondance de ces fichiers spéciaux vers leur répertoire
"point de montage". Par exemple, le fichier /dev/hda permet l'accès
et le chargement du 1er disque IDE.
104
Gestion des fichiers
- I- nodes des fichier 1/2-
105
Gestion des fichiers
- I- nodes des fichier 2/2-
le type du fichier (fichier ordinaire, spécial, répertoire,...).
le nombre de liens (un lien d'un fichier est un autre nom de ce fichier),
Remarques :
•Tout fichier possède son unique i-node.
•L'i-node contient la totalité des informations sur le fichier, sauf le nom.
•Les i-nodes sont tous de même taille. 106
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 1/30-
Exemples
• ls [-options] chemin
• -a : liste tous les fichiers (y compris les fichiers qui commencent par le point :
fichiers cachés).
• -R : récursif, génère la liste de tout les fichiers du sous-arbre tout entier. 108
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 3/30-
Remarque
Certains caractères, appelés méta caractères, sont interprétés spécialement par
le Shell avant de lancer la commande entrée par l’utilisateur.
Par exemple, si l’on entre ls *.c, le Shell remplace l’argument *.c par la liste
des fichiers du répertoire courant dont le nom se termine par .c.
Les métacaractères permettent donc de spécifier facilement des ensembles de
fichiers, sans avoir à rentrer tous leurs noms. Voici les plus utilisés :
•* remplacé par n’importe quelle suite de caractères.
• ? remplacé par un seul caractère quelconque.
•[ ] remplacé par l’un des caractères mentionnés entre les crochets. On peut
spécifier un intervalle avec - : [a-z] spécifie donc l’ensemble des lettres
minuscules.
Exemple
ls *.[a-z].*
109
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 4/30-
La commande cat
• La commande cat affihe les fichiers l’un après l’autre sur la sortie standard
(écran). Si aucun argument n’est spécifié, lit sur l’entrée standard (clavier)
jusqu’à rencontrer un caractère fin de fichier CTRL^D.
– Exemple
– cat fich.txt : cette commande permet d’afficher sur l’écran le contenu du fichier fich.txt
– cat fich1 fich2 : cette commande permet d’afficher sur écran le contenu des deux fichiers
fich1 et fich2 (Concaténer deux fichiers).
La commande more
• Créer les fichiers f1.txt et f2.txt sous votre répertoire de travail en utilisant la
commande suivante :
• Il est possible sous Unix de connaître aussi le type de fichier sur lequel on
travaille. Tous les fichiers ont un entête permettant de déterminer leur type
(répertoire, exécutable, texte ASCII, programme C, document...). La
commande file permet de visualiser le type du fichier en question.
La commande mv (move)
La commande cp
• Si on effectue une copie d'un fichier sur un fichier qui existe déjà, celui-ci
sera écrasé et remplacé par le nouveau fichier, certaines options de cp
peuvent nous éviter de pareilles situations. On site dans ce qui suit quelques
options :
113
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 8/30-
• rm -r : agit de façon récursive, c’est à dire détruit aussi les répertoires (pleins
ou vide) et leurs sous-répertoires.
114
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 9/30-
• Une option de mkdir qui est souvent utile est mkdir –p elle permet de créer
une suite de répertoires.
• Exemple
– mkdir –p cours/tp/rsi21
– #crée le sous-répertoire rsi21 qui se trouve dans le sous-répertoire tp qui se trouve dans le 115
répertoire #cours.
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 10/30-
116
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 11/30-
La commande ln (link)
• Cette commande permet de créer des liens sur des fichiers. Les liens sont
des fichiers spéciaux permettant d'associer plusieurs noms (liens) à un seul
et même fichier. Ce dispositif permet d'avoir plusieurs instances d'un même
fichier en plusieurs endroits de l'arborescence sans nécessiter de copie, ce
qui permet notamment d'assurer un maximum de cohérence et d'économiser
de l'espace disque. On distingue deux types de liens :
– ln -s nom-du-fichier-reel nom-du-lien-symbolique
117
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 12/30-
ln –s fichier1 /titi/lien
ls –i fichier1 /titi/lien
ls -l /titi/lien
119
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 14/30-
ls -li fichier1
6341 -rw-rw-r-- 1 …………. fichier1
ln fichier1 /titi/liendur
$ls –li fichier1 /titi/ liendur
6341 -rw-rw-r-- 2 …………. fichier1
6341 -rw-rw-r-- 2 …………. /titi/ liendur
120
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 15/30-
• Les deux fichiers partent vers le même numéro d’index (numéro d’inode), ce
qui veut dire qu’il y a un seul espace disque associé aux deux noms.
• Si on déplace le fihier1 :
mv fichier1 fichier2
puis on fait :
ls -li fichier2
on aura :
6341 -rw-rw-r-- 2 …………. fichier2
Si on supprime fichier2 :
rm fichier2
puis on fait :
ls -li fichier2 /titi/liendur 121
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 16/30-
122
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 17/30-
123
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 18/30-
• Forme symbolique
• a pour all, pour les 3 catégories des utilisateurs. Cette option est utile quand
une même protection doit être définie vis-à-vis des 3 catégories des
utilisateurs.
124
• La syntaxe symbolique utilise l’opérateur + pour ajouter et - pour enlever ou
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 19/30-
• Exemples
• Forme numérique
• chmod mode fichier
• La commande chmod peut être utilisée avec un masque
composé de 3 chiffres en octal. Les bits de ce masque
autorisent les types d'accès correspondants avec la même
relation entre poids des bits et types d'accès.
• Le bit de poids 4 autorise les accès en lecture,
• le bit de poids 2 autorise les accès en écriture
• le bit de poids 1 autorise les accès en exécution.
126
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 21/30-
• Exemple :
• permet, pour le fichier toto, d'autoriser n'importe quel type d'accès de la part
du propriétaire, de limiter les accès des utilisateurs du même groupe que le
propriétaire en lecture et exécution, d'interdire tout type d'accès émanant des
autres utilisateurs.
• Exemples
• chmod 644 titi permet d’allouer les droits d’accès suivants : -rw-r—r—
• chmod 622 tata permet d’allouer les droits d’accès suivants : -rw—w-w-
127
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 22/30-
La commande umask
• Quand vous créer un fichier, par exemple avec la commande touch, ce fichier par
défaut possède certains droits. Ce sont 666 pour un fichier (-rw-rw-rw-) et 777
pour un répertoire (-rwxrwxrwx), ce sont les droits maximum. Vous pouvez faire
en sorte de changer ces paramètres par défaut. La commande umask est là pour
ça.
• Pour un fichier :
• Si vous tapez umask 022, vous partez des droits maximum 666 et vous
retranchez 022, on obtient donc 644, par défaut les fichiers auront comme
droit644 (-rw-r-r--).
128
• Si vous tapez umask 244, vous partez des droits maximum 666 et vous
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 23/30-
129
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 24/30-
La commande chown
• Exemples
ls -l TP.doc
-rw-r--r-- 1 amine etige 432 Feb 22 12:42 TP.doc
chown mohamed TP.doc
ls –l TP.doc
-rw-r--r-- 1 mohamed etige 432 Feb 22 12:42 TP.doc 130
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 25/30-
La commande chgrp
• Exemples :
ls –l tp.doc
-rw-r--r-- 1 amine enit 432 Feb 22 12:42 tp.doc
chgrp etige tp.doc
ls –l tp.doc
-rw-r--r-- 1 amine etige 432 Feb 22 12:42 tp.doc 131
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 26/30-
La commande find
• Syntaxe
132
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 27/30-
133
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 28/30-
134
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 29/30-
La commande grep
• olivier:29:0298333242:Brest
• marcel:13:0466342233:Gardagnes
• myriam:30:0434214452:Nimes
• yvonne:92:013344433:Palaiseau
136
Gestion des fichiers
- Commandes Shell de manipulations de fichiers 30/30-
• Remarque
• On a vu auparavant ce qu'étaient les méta caractères. Les expressions régulières sont aussi des suites de caractères
permettant de faire des sélections. Elles fonctionnent avec certaines commandes comme grep. Les différentes
expressions régulières sont :
• - ^ début de ligne
• - . un caractère quelconque
• - $ fin de ligne
• Quand nous voulons exécuter une commande, en général, nous ne voulons pas donner
le chemin entier (correspondant à son emplacement).
• Pour pouvoir faire cela la variable d’environnement PATH doit être établie.
138
Merci de votre
attention