SlideShare une entreprise Scribd logo
Systèmes d’Exploitation I
Chapitre IV :
Système de Gestion des
Fichiers Amine DHRAIEF
1ère
année
ESEN, Université de la Manouba
18/04/18 OS I 2
À quoi ressemble un disque dur ?
18/04/18 OS I 3
Structure physique d'un disque dur
18/04/18 OS I 4
Structure physique d'un disque dur
A : plateau ; B : bras ; C : tête ;
D : cylindre ; E : piste ; F :
secteur géométrique
Source : Wikimedia Commons
18/04/18 OS I 5
Structure physique d'un disque dur
(A) piste, (B) secteur géométrique, (C)
secteur d'une piste, (D) bloc
Source : Wikimedia Commons
Le secteur (ou bloc) est la plus petite unité
physique de stockage sur un support de
donnée
Sa taille varie de 512 octets à 4096 octets
18/04/18 OS I 6
Géométrie d'un disque dur
Adressage CHS : Cylinder/Head/Sector
●
Cylindre: superposition
de plusieurs pistes
– Les pistes au dessus les
unes des autres sont
accessibles sans bouger les
têtes de lecture
18/04/18 OS I 7
Géométrie d'un disque dur
Adressage CHS : Cylinder/Head/Sector
●
Head:
– Les têtes de lecture/enregistrement sont
solidaires des bras mobiles
– Le plus souvent il y a une tête par surface soit
deux par plateau
– Le chemin parcouru par une tête particulière
sur un cylindre particulier s'appelle une piste
●
Secteur :
– La piste est divisée en secteurs (aussi appelés
blocs) contenant les données.
– La taille d'une piste diminue en allant vers
le centre du disque → le nombre de secteur
par piste diminue aussi en allant vers le
centre
– Taille d'un secteur plus commune= 512 octets
18/04/18 OS I 8
Géométrie d'un disque dur
Adressage CHS : Cylinder/Head/Sector
●
L'adresse CHS est
simplement constituée par
l'assemblage des trois
composants décrits ci-
dessus.
– Le tout premier secteur d'un
disque est à l'adresse 0 / 0 / 1 :
c'est le premier secteur accédé
par la première tête positionnée
sur le premier cylindre.
– Le suivant sera 0 / 0 / 2 (ce
secteur est naturellement atteint
juste après par la même tête)
18/04/18 OS I 9
Taille d'un disque
●
Taille d'un disque =
(Nombre de cylindre) x
(Nombre de piste par cylindre) x
(Nombre moyen de secteur par piste) x
(Taille du secteur)
●
Exemple=
– Nombre de piste par cylindre 255
– Nombre de cylindre = 36481
– Nombre moyen de secteur par piste = 63
– Taille du secteur = 512 octets
– Taille du disque ≈ 300 GB (255 * 36481 * 63 * 512 = 300066439680
octets)
18/04/18 OS I 10
Pourquoi a-t-on besoin de fichiers ?
18/04/18 OS I 11
Définition d'un fichier
●
Toutes les applications informatiques doivent
enregistrer et retrouver des informations.
●
L’espace d’adressage étant insuffisant, on utilise des
fichiers pour cela.
●
Fichier (nom masculin)
– Meuble, boîte servant à recevoir des fiches.
– Ensemble de données regroupées en une unité indépendante
de traitement informatique.
18/04/18 OS I 12
Définition #1 : Dictionnaire
Larousse
●
Fichier (nom masculin) : Ensemble organisé
d'informations, désigné par un nom précis,
que le système d'exploitation d'un ordinateur
manipule comme une simple entité, dans sa
mémoire ou sur un support de stockage.
18/04/18 OS I 13
Définition #2 : Wikipedia
●
Un fichier informatique est au sens commun,
une collection, un ensemble de données
numériques réunies sous un même nom,
enregistrées sur un support de stockage
permanent, appelé mémoire de masse, tel
qu'un disque dur, un CD-ROM, une mémoire
flash ou une bande magnétique, et manipulées
comme une unité.
18/04/18 OS I 14
Information indépendante du processus
●
Un processus en cours d’exécution peut enregistrer une quantité
d’informations dans son espace d’adressage mais cette façon de faire
présente trois inconvénients :
1)La capacité de stockage est limitée à la mémoire vive. Cette taille peut convenir
pour certaines applications, mais elle est beaucoup trop faible pour d’autres
(applications des banques, réservations, téléchargement p2p,...)
2)Les informations stockées en mémoire vive sont perdues, lorsque le processus
se termine ou lors du plantage de l'ordinateur. Pour un grand nombre d'applications,
les informations doivent être conservées pendant des durées importantes.
3)Il ne peut pas y avoir d’accès simultané à ces informations. Un répertoire
téléphonique stocké dans l’espace d’adressage d’un processus ne peut être
examiné que par ce seul processus (pour les raisons de protection des données
expliquées lors de l’étude des processus), de telle sorte qu’on ne peut rechercher
qu’un seul numéro à la fois.
→ Pour résoudre ce problème, il faut rendre l’information
indépendante d’un processus donné.
18/04/18 OS I 15
Stockage à long terme des informations
Trois caractéristiques sont donc requises pour le
stockage des informations à long terme :
1) Il faut pouvoir stocker des informations de très grande taille ;
2) Les informations ne doivent pas disparaître lorsque le
processus qui les utilise se termine ;
3) Plusieurs processus doivent pouvoir accéder simultanément
aux informations.
18/04/18 OS I 16
Fichiers = solution au problème
●
La solution à tous ces problèmes consiste à stocker les
informations dans des fichiers sur des disques ou d’autres
supports.
– Les processus peuvent alors les lire ou en écrire de nouvelles.
●
Les informations stockées dans des fichiers doivent être
permanentes, c’est-à- dire non affectées par la création ou
la fin d’un processus.
●
Un fichier ne doit disparaître que lorsque son propriétaire le
supprime explicitement.
18/04/18 OS I 17
Disque= suite de blocs
●
Nous considérons un disque comme une suite
séquentielle de blocs de taille fixe qui supportent
deux opérations
– Lire le bloc k
– Écrire le bloc k
→ Ces deux opérations permettent en principe
de résoudre le stockage à long terme des
informations.
18/04/18 OS I 18
Des questions évidentes
●
Voici quelques questions que l'on se pose
rapidement :
1)Comment trouve-t-on l'information ?
2)Comment empêche-t-on un utilisateur de lire les
données d'un autre utilisateur ?
3)Comment sait-on qu'un bloc est libre ?
18/04/18 OS I 19
Vie et mort d'un fichier
●
Le fichier (file) est l'unité d'information qui est
créée par un processus.
●
L'information enregistrée dans des fichier doit être
persistante → c'est-à-dire qu'elle ne doit pas être
affectée par la création ou la fin d'un processus
●
Un fichier doit disparaître quand son propriétaire
le demande expressément
18/04/18 OS I 20
Qui les gère alors ?
●
Les fichiers sont gérés par le système d’exploitation.
●
La façon dont ils sont structurés, nommés, utilisés,
protégés et implémentés sont des points majeurs de
la conception du système d’exploitation.
●
La partie du système d’exploitation qui gère les
fichiers est appelée le gestionnaire du système de
fichiers (en anglais file system)
18/04/18 OS I 21
Les fichiers
18/04/18 OS I 22
Les fichiers du point de vue utilisateur
●
Le système de fichiers est la partie la plus
visible d’un système d’exploitation.
– La plupart des programmes lisent ou écrivent au
moins un fichier, et les utilisateurs manipulent
beaucoup de fichiers.
– De nombreuses personnes jugent un système
d’exploitation sur la qualité de son système de
fichiers : son interface, sa structure et sa fiabilité.
18/04/18 OS I 23
Les fichiers du point de vue utilisateur
●
L’utilisateur attache la plus grande importance à
l’interface d’un système de fichiers, c’est-à-dire à
la manière de nommer les fichiers, de les protéger,
aux opérations permises sur eux, etc.
– Il est moins important pour lui de connaître les détails de
son implémentation, c’est-à-dire de connaître le nombre de
secteurs d’un bloc logique ou de savoir si l’on utilise des
listes chaînées ou des tables de bits pour mémoriser les
emplacements libres.
– Ces points sont, en revanche, fondamentaux pour le
concepteur du système de fichiers.
18/04/18 OS I 24
Nom d’un fichier : Pourquoi ?
●
Les fichiers sont un mécanisme d'abstraction.
– Ils permettent d’écrire des informations sur le disque et de les lire
ultérieurement.
●
Ceci doit être fait de manière à masquer le fonctionnement et
l’emplacement de stockage des informations à l’utilisateur.
– Il ne doit pas avoir à choisir tel ou tel secteur, par exemple.
●
La gestion et l’affectation des noms des objets sont les
parties les plus importantes d’un mécanisme abstrait.
– Un processus qui crée un fichier lui attribue un nom.
– Lorsque le processus se termine, le fichier existe toujours et un autre
processus peut y accéder au moyen de ce nom.
18/04/18 OS I 25
Nom d’un fichier : Règles de formation ?
●
Les règles d’affectation des noms de fichiers varient d’un
système à un autre, mais tous les systèmes d’exploitation
autorisent les noms de fichiers constitués de chaînes de un à
huit caractères non accentués.
– Ainsi « tunis » et «ariana » sont des noms de fichiers valides.
– Les chiffres et des caractères spéciaux sont quelquefois autorisés. Ainsi « 2
», « urgent! » et « Fig.2-14 » peuvent être des noms valides.
●
Certains systèmes de fichiers différencient les lettres
majuscules et minuscules alors que d’autres ne le font pas.
– Unix fait partie de la première catégorie et MS-DOS de la deuxième.
– Les noms suivants désignent donc des fichiers distincts sur un système Unix
: « tunis », «Tunis» et « TUNIS».
– Sur MS-DOS, ils désignent le même fichier.
18/04/18 OS I 26
Nom de fichier: extension
●
De nombreux systèmes d’exploitation gèrent des noms en deux
parties, les deux parties étant séparées par un point, comme dans
« prog.c ». La partie qui suit le point est alors appelée extension ;
elle donne en général une indication sur la nature du fichier.
– Sous MS-DOS, par exemple, les noms de fichiers comportent 1 à 8 caractères
éventuellement suivis d’une extension de 1 à 3 caractères.
– Sous Unix, la taille de l’extension éventuelle est libre, le fichier pouvant même
avoir plus d’une extension comme dans « prog.c.Z ».
●
Dans certains cas, les extensions sont simplement des
conventions et ne sont pas contrôlées. Un fichier « fichier.txt » est
vraisemblablement un fichier texte, mais ce nom est destiné
davantage au propriétaire du fichier qu’au système d’exploitation.
En revanche, certains compilateurs C imposent l’extension « .c » à
tous les fichiers à compiler
18/04/18 OS I 27
La structure des fichiers
●
Les fichiers peuvent être structurés de
différentes manières
– Suite d'octets
– Suite enregistrement
– Arbre
18/04/18 OS I 28
Fichier= suite d'octets
●
Le fichier est une suite d'octets
sans structure
– Le système d'exploitation ne connaît
pas et ne s'occupe pas du contenu
de ce fichier
– Il ne voit que des octets
– Toute signification doit être apporté
par le programme des utilisateurs
– UNIX et Windows suivent tout deux
cette approche
1 octet
18/04/18 OS I 29
Fichier= suite d'enregistrements
●
Le fichier est une suite d'enregistrements de
longueur fixe
– Concept principal : une opération de lecture renvoie un
enregistrement/une opération d’écriture réécrit ou ajoute
un enregistrement
– 80 caractère → carte perforées de 80 colonnes
– 132 caractères → imprimantes de 132 colonnes
– Les programmes lisaient les données par bloc de 80
caractère est écrivaient par bloc de 132 caractères
– Obsolète
18/04/18 OS I 30
Fichier= arbre
●
Le fichier est un arbre d'enregistrement
– Les enregistrements n'ont pas la même longueur
– Chaque enregistrement contient une clé dont la
position est fixe dans l'enregistrement
– L'arbre est trié en fonction des clés → permet de
rechercher rapidement une clé donnée
– L'opération fondamentale ne consiste pas à obtenir
le prochain enregistrement, mais obtenir un
enregistrement avec une clé donnée
18/04/18 OS I 31
Les types de fichiers
●
La plupart des systèmes d'exploitation supportent plusieurs types de fichiers
– UNIX est Windows ont des fichiers ordinaires et des répertoires
– UNIX traite aussi des fichiers spéciaux caractère et bloc
●
Les fichiers ordinaires (regular files) sont ceux qui contiennent les informations des
utilisateurs. Ils sont soit des fichiers en code ASCII, soit des fichiers binaires.
●
Les répertoires (directories) sont des fichiers systèmes qui conservent la structure du
système de fichiers
●
Les fichiers spéciaux caractère (character special files) sont liés aux périphériques
entrées/sorties
●
Les fichiers spéciaux bloc (block special files) servent à modéliser les disques.
18/04/18 OS I 32
Les fichiers ASCII
●
Les fichiers ASCII se composent de lignes
de texte
– Chaque ligne se termine par le caractère retour
chariot (CR : Carriage Return) ou le caractère saut
de ligne (LF : Line Feed)
– On peut les afficher et les éditer avec n'importe quel
éditeur de texte
18/04/18 OS I 33
Les fichiers binaires
●
Ce ne sont pas des fichiers ASCII !
– Si on les affiche cela donne un résultat incompréhensible
– Ils possèdent une structure interne connue des
programme qui les exploitent
●
Bien que techniquement le fichier soit juste une
structure d'octets, le système d'exploitation
exécutera ce fichier seulement s'il possède un
certain format
18/04/18 OS I 34
Les fichiers binaires
●
Un fichier binaire
comporte généralement
cinq parties :
– L'en-tête (header)
– Le code
– Les données
– Les bits de translation
(relocation)
– La table des symboles
18/04/18 OS I 35
Les fichiers binaires
●
Le début de l'en-tête
est un nombre magique
(Magic number)
– C'est une valeur qui
identifie le fichier comme
étant un fichier exécutable
– Pour éviter l’exécution
accidentelle d'un fichier
qui ne possède pas ce
format
18/04/18 OS I 36
Les fichiers binaires
●
Le code et les
données du
programme lui
même suivent l'en-
tête
– Ils sont chargés en
mémoire et déplacés à
l'aide des bits de
translation
18/04/18 OS I 37
L'accès au fichiers : accès séquentiel
●
Les premiers systèmes d'exploitation
proposaient un seul type d'accès au
fichiers : l'accès séquentiel (sequential
access).
– Dans ce système, un processus pouvait lire tous les
octets ou tous les enregistrements d'un fichier dans
l'ordre en commençant au début
– Les fichiers séquentiels étaient pratiques quand le
support de stockage était une bande magnétique .
18/04/18 OS I 38
L'accès au fichiers : accès aléatoire
●
Lorsque les disques ont servi à l'enregistrement
des fichiers, il est devenu possible de lire des
octets ou des enregistrement d'un fichier dans
n'importe quel ordre
●
Les fichiers dont les octets ou les
enregistrements peuvent être lus dans n'importe
quel ordre sont appelés fichier à accès directe
ou accès aléatoire (random access)
18/04/18 OS I 39
Les attributs des fichiers
●
Chaque fichier possède un nom et des données.
●
Les systèmes d'exploitation associent des
informations complémentaire :
– l'heure et la date de sa création et sa taille
→ Ces informations sont appelés les attributs du
fichier (file's attributes) ou metadonnées
(metadata)
18/04/18 OS I 40
Les attributs des fichiers
18/04/18 OS I 41
Les opérations sur les fichiers
●
Create
●
Delete
●
Open
●
Close
●
Read
●
Write
●
Append
●
Seek
●
Get atributes
●
Set attributes
●
Rename
18/04/18 OS I 43
Les répertoires
18/04/18 OS I 44
Les répertoires : des fichiers comme
d'autres ?
●
Pour conserver une trace des fichiers, les systèmes
de fichiers possèdent généralement des répertoires
(directory) ou des dossiers (folders)
●
Les répertoires sont eux mêmes des fichiers dans
nombre de systèmes
18/04/18 OS I 45
Les répertoires sous UNIX
●
Sur un système Unix les fichiers sont organisés, du
point de vue de l’utilisateur, selon un domaine de
nommage structuré en arbre, et dont les éléments
principaux sont les répertoires et les chemins.
home
/
etc
bin dev mnt
media
amine
18/04/18 OS I 46
Les répertoires
●
Chaque nœud de l’arbre, hormis les feuilles, est un
répertoire
●
Le répertoire correspondant à la racine de l’arbre est
appelé le répertoire racine (root directory en anglais). Par
convention, son nom est une oblique « / » (slash en
anglais).
●
Les noms de fichiers d’un même répertoire doivent être
différents, mais le même nom peut être utilisé dans des
répertoires différents
18/04/18 OS I 47
Les chemins d'accès : absolue ou
relatif
●
Pour identifier un fichier particulier, on utilise un chemin (path en anglais),
c’est-à-dire la suite des noms des répertoires qui conduisent au fichier,
séparés par des obliques.
●
Si le premier élément de départ est une barre oblique, le chemin est dit absolu
(absolute path name). Son point de départ est alors le répertoire racine.
– Exemple : /home/amine/Dropbox/Cours/Cours-ESEN/L1-OS-I/
●
Sinon (le premier élément est un nom de répertoire ou le nom du fichier lui-
même), le chemin est dit relatif : son point de départ est alors le répertoire de
travail courant du processus en cours, répertoire qui lui est associé lors de sa
création.
– Exemple : Dropbox/Cours/Cours-ESEN/L1-OS-I/
18/04/18 OS I 48
Les répertoires spéciaux
●
Chaque répertoire contient au moins deux
répertoires, notés « . » et « .. » : ils
représentent respectivement le répertoire
courant et son répertoire parent.
●
Dans le cas du répertoire racine, ils
coïncident.
18/04/18 OS I 49
Dessine moi un système de fichiers ?
18/04/18 OS I 50
La conception des systèmes de fichiers
utilisateur vs. concepteur
●
Nous examinons maintenant le système de fichiers du point de vue
du concepteur.
●
Les utilisateurs se préoccupent des noms des fichiers, des
opérations qui permettent de les manipuler, de l’arborescence des
fichiers, ...
●
Les concepteurs portent d'avantage leur attention sur
l’organisation de l’espace du disque et sur la manière dont les
fichiers et les répertoires sont sauvegardés.
→ Ils recherchent un fonctionnement efficace et fiable
18/04/18 OS I 51
L'organisation du système de fichier
rôle de l'MBR
●
Les systèmes de fichiers sont enregistrés sur des disques.
●
Les disques peuvent être divisés en une ou plusieurs partitions,
avec des systèmes de fichiers indépendants sur chaque partition.
●
Le secteur 0 du disque appelé enregistrement d'amorçage maître
(MBR – Master Boot Record) sert à amorcer la machine
●
La fin du MBR comprend la table de partitions, laquelle indique
l'adresse de début et de fin de chaque partition
– Une de ces partitions est marquée comme étant la partition active
18/04/18 OS I 52
L'organisation du système de fichier
le bloc d'amorçage
●
Quand l’ordinateur est amorcé, le BIOS lit et
exécute le MBR
– Le programme MBR détermine la partition active, y lit le
premier bloc appelé bloc d'amorçage (boot block) et
l'exécute
●
Le programme du bloc d'amorçage charge le
système d'exploitation contenu dans cette
partition
18/04/18 OS I 53
L'organisation du système de fichier
●
Pour une question d'uniformité, chaque partition
commence un bloc d'amorçage, même si elle ne contient
pas de système d'exploitation
– Elle pourrait en contenir un ultérieurement
●
Une organisation possible d'un système de fichiers
18/04/18 OS I 54
L'organisation du système de fichier
le superbloc
●
Après le bloc de boot, vient généralement le
superbloc (superblock)
– Contient tout les paramètres clé concernant le système de
fichier
– Contient un numéro magique qui identifie le type de système
de fichier
18/04/18 OS I 55
Organisation logicielle de l’espace du disque
●
Les fichiers étant habituellement sauvegardés sur
des disques, l’organisation logicielle de l’espace
du disque est primordiale pour les concepteurs de
systèmes de fichiers.
●
Celle-ci porte sur la stratégie de stockage, sur la
taille des blocs et sur la façon de repérer les blocs
libres.
18/04/18 OS I 56
Organisation logicielle de l’espace du disque
Stratégie de stockage
●
Il existe deux stratégies pour stocker un fichier de n octets :
– on alloue n octets consécutifs sur le disque
– ou on divise le fichier en plusieurs blocs (pas nécessairement
contigus/adjacents).
●
Si l’on sauvegarde un fichier sur un nombre contigu d’octets,
on doit le déplacer chaque fois que sa taille augmente (ce qui
arrive fréquemment).
●
La plupart des concepteur systèmes de fichiers préfèrent donc
stocker les fichiers dans plusieurs blocs de taille fixe, pas
nécessairement adjacents.
18/04/18 OS I 57
Organisation de l’espace du disque
Taille des blocs
●
Il faut alors déterminer la taille optimale d’un
bloc.
●
Le compromis habituellement adopté consiste à
prendre des blocs de 512 octets, 1 Ko ou 2 Ko.
●
Si l’on prend des blocs de 1 Ko sur un disque
dont les secteurs font 512 octets, le système de
fichiers lit et écrit deux secteurs consécutifs en
les considérant comme un ensemble unique et
indivisible, appelé unité d’allocation (cluster).
18/04/18 OS I 58
Organisation de l’espace du disque
Repérage des blocs libres
●
Dès qu’on a choisi la taille des blocs, on doit
trouver un moyen de mémoriser les blocs libres
●
Les deux méthodes les plus répandues sont
– Liste chaînée
– Table de bits
18/04/18 OS I 59
Organisation de l’espace du disque
Repérage des blocs libres
18/04/18 OS I 60
Organisation de l’espace du disque
Repérage des blocs libres
●
La première méthode consiste à utiliser une liste
chaînée des blocs du disque, chaque bloc
contenant des numéros de blocs libres.
●
La deuxième technique de gestion des espaces
libres a recours à une table de bits, chaque bit
représentant un bloc et valant 1 si le bloc est
occupé (ou libre suivant le système d’exploitation).
– Un disque de n blocs requiert une table de n bits.
18/04/18 OS I 61
Organisation de l’espace du disque
Repérage des blocs libres - liste chaînée
●
Considérons un disque dur de 500GB. Une taille d'un bloc de 1KB.
→ Le disque contient 524 millions de bloc (500*1024*1024= 524 288 000)
●
Le numéro de bloc codée sur 32 bits. Taille d'un élément de la liste
chaînée = un bloc contiendra 256 numéros de bloc libres
– Nombre de numéro de bloc libre que peut contenir un bloc de 1Ko =
Taille d'un bloc en bit / taille du numéro du bloc
(1024 octet*8 bit /32 bits)
●
Pour adresser tous les blocs du disque dur (524 millions de numéro de
blocs) on a besoin de (524 288 000 / 256 = 2 048 000 blocs)
→ 2 millions de blocs !!!!
18/04/18 OS I 62
Organisation de l’espace du disque
Repérage des blocs libres – table de bit
●
Considérons un disque dur de 500GB. Une taille d'un bloc
de 1KB.
→ Le disque contient 524 millions de bloc (500*1024*1024)
●
1 bloc est représenté par un bit → taille max de la table de
bit = 524 millions de bits = (524/8) / 1024 = 64000 Ko =
64000 blocs
●
Pour adresser tous les blocs du disque dur
→ 64000 bloc
18/04/18 OS I 63
Les méthodes de stockage des fichiers
●
Les fichiers étant constitués d’un certain nombre de blocs, le
système de fichiers doit mémoriser les blocs des différents fichiers.
●
Le principe fondamental pour stocker un fichier est de mémoriser
l’adresse des blocs le constituant.
●
Différentes méthodes sont utilisées pour cela :
– allocation contiguë,
– allocation par liste chaînée,
– allocation par liste chaînée indexée
– et nœud d’information (i-node)
18/04/18 OS I 64
Stockage des fichiers
Allocation contiguë
●
La méthode d’allocation la plus simple consiste à stocker
chaque fichier dans une suite de blocs consécutifs. Un fichier
de 50 Ko, par exemple, occupera 50 blocs consécutifs sur un
disque dont la taille des blocs est 1 Ko.
●
Cette méthode a deux avantages importants :
1)Elle est simple à mettre en œuvre puisqu’il suffit de mémoriser un
nombre, l’adresse du premier bloc, pour localiser le fichier.
2)Les performances sont excellentes puisque tout le fichier peut être lu
en une seule opération.
→ Aucune autre méthode d’allocation ne peut l’égaler.
18/04/18 OS I 65
Stockage des fichiers
Allocation contiguë
●
Malheureusement, l’allocation contiguë présente également
deux inconvénients importants :
– Premièrement, elle ne peut être mise en œuvre que si la taille
maximum du fichier est connue au moment de sa création.
●
Sans cette information, le système d’exploitation ne peut pas déterminer
l’espace à réserver sur le disque.
●
Dans les systèmes où les fichiers doivent être écrits en une seule opération,
elle peut néanmoins être avantageusement utilisée.
– Le deuxième inconvénient est la fragmentation du disque qui découle
de cette politique d’allocation.
●
Elle gaspille de l’espace sur le disque.
●
Le compactage du disque peut y remédier mais il est en général coûteux. Il
peut cependant être réalisé la nuit lorsque le système n’est pas chargé.
18/04/18 OS I 66
Stockage des fichiers
Allocation contiguë
(a) Allocation contiguë de l'espace disque pour 7 fichier
(b) L'état du disque après suppression des fichiers D et F
18/04/18 OS I 67
Stockage des fichiers
Allocation par liste chaînée
●
La deuxième méthode consiste à sauvegarder les blocs des fichiers dans
une liste chaînée. Le premier mot de chaque bloc, par exemple, est un
pointeur sur le bloc suivant. Le reste du bloc contient les données.
●
Cette méthode possède les avantages suivants :
– Contrairement à l’allocation contiguë, tous les blocs peuvent être utilisés → Il n’y a pas
d’espace perdu en raison d’une fragmentation du disque.
– L’entrée du répertoire stocke simplement l’adresse du premier bloc. Les autres blocs sont
trouvés à partir de celui-là.
●
Elle possède également des inconvénients :
– Si la lecture séquentielle d’un fichier est simple, l’accès direct est extrêmement lent.
– Le pointeur sur le bloc suivant occupant quelques octets → l’espace réservé aux données
dans chaque bloc n’est plus une puissance de deux.
●
Ceci est moins efficace car de nombreux programmes lisent et écrivent des blocs dont la taille est une
puissance de deux.
18/04/18 OS I 68
Stockage des fichiers
Allocation par liste chaînée
18/04/18 OS I 69
Stockage des fichiers
Allocation par liste chaînée indexée
●
Les inconvénients de l’allocation au moyen d’une liste chaînée
peuvent être éliminés en retirant le pointeur de chaque bloc
pour le placer dans une table ou en index en mémoire. MS-
DOS utilise cette méthode avec la FAT (File Allocation Table).
●
Cette méthode possède les avantages suivants :
– Elle libère intégralement l’espace du bloc pour les données → Elle
facilite les accès directs.
●
La liste doit toujours être parcourue pour trouver un déplacement donné dans le
fichier, mais elle réside entièrement en mémoire et peut être parcourue sans
accéder au disque.
– Comme pour la méthode précédente, l’entrée du répertoire contient
un seul entier (le numéro du premier bloc) qui permet de retrouver
tous les autres blocs quelle que soit la taille du fichier.
18/04/18 OS I 70
Stockage des fichiers
Allocation par liste chaînée indexée
Le fichier A utilise les
blocs 4,7 2 10 et 12
Le fichier B utilise les
blocs 6,3 11 et 14
18/04/18 OS I 71
Stockage des fichiers
Allocation par liste chaînée indexée
●
Le principal inconvénient de cette méthode
vient du fait que la table doit résider
entièrement en mémoire en permanence.
●
Un grand disque de 500 000 blocs requiert
500 000 entrées dans la table qui occupent
chacune 4 octets dans le cas de FAT32. La
table occupera 2 Mo en mémoire
18/04/18 OS I 72
Stockage des fichiers
Nœuds d’information i-node
●
Pour mémoriser quel bloc appartient à
quel fichier, une dernière méthode
consiste à associer à chaque fichier
un structure de donnée appelée
nœud d'index ou i-node.
●
Un i-node inclut
1)les attributs
2)et les adresses disque des blocs du
fichier
●
En fonction de l'i-node il est
possible de trouver tous les blocs
d'un fichier
18/04/18 OS I 73
Stockage des fichiers: Avantage des i-node
●
Le grand avantage de cette conception est que le i-
node a besoin d'être en mémoire seulement quand
le fichier correspondant est ouvert.
– Si chaque i-node occupe n octets
– Et un maximum de k fichiers peuvent être ouvert en même
temps
– La mémoire totale occupée par le tableau contenant les i-
nodes des fichiers ouverts est k*n octets
→ seul cet espace pourra être réservé à l'avance.
18/04/18 OS I 74
Stockage des fichiers: Avantage des i-node
●
Le tableau des i-node des fichiers ouverts est plus petit que
l'espace occupé par la table du cas de l'allocation par liste
chaînée indexée.
– La taille de la table de maintient de la liste chaînée croît
proportionnellement avec la taille du disque : si le disque contient
n blocs la table contient n entrée → elle croît linéairement à
mesure que la taille du disque augmente
– Le concept de i-node requiert un tableau en mémoire dont la taille
est proportionnelle au nombre maximum de fichier qui peuvent
être ouvert simultanément → quelque soit la taille du disque
18/04/18 OS I 75
Stockage des fichiers : Problème des i-node
●
Les i-nodes posent cependant un problème :
– Si chacun d'eux a la place pour un nombre donné
d'adresse disque, que se passe-t-il lorsqu'un fichier croît
au-delà de cette limite ?
– La solution est de réserver la dernière adresse disque,
non pour un bloc de données du fichier mais pour
l'adresse d'un bloc comprenant plusieurs adresse
supplémentaire
18/04/18 OS I 76
Les répertoires dans tout ça ?
●
Pour lire un fichier, il faut qu'il soit ouvert
●
Quand un fichier est ouvert, le système d'exploitation se sert du chemin
d'accès précisé par l'utilisateur afin de rechercher l'entrée du répertoire.
●
L'entrée du répertoire fournit les informations nécessaires pour trouver les
blocs de disque. Ces informations peuvent être
– L'adresse disque du fichier entier (allocation contiguë)
– Le numéro du premier bloc (liste chaînée)
– Le numéro de l'i-node
●
La fonction principale du répertoire est de faire correspondre le nom ASCII
du fichier à une information nécessaire pour trouver les données.
18/04/18 OS I 77
Les répertoires dans tout ça ?
●
Pour UNIX, les répertoires sont des fichiers et
leurs i-nodes mappent les noms de fichiers aux
i-node correspondant
18/04/18 OS I 78
Mise en œuvre des répertoires : ou
stocker les attributs des fichiers ?
●
Chaque système de fichier gère des attributs, tels que le
propriétaire de chaque fichier ou sa date de création, et
cela doit être stocké quelque part
●
Une solution évidente consiste à les stocker directement
dans l'entrée du répertoire
– Dans cette conception simple, un répertoire consiste en une liste
d'entrées dont la taille est fixe, qui correspond chacune à un fichier
– Chaque entrée contient le nom du fichier, une structure d’attribut et
une ou plusieurs adresses disque précisant les blocs du disque
– Approche de Windows
18/04/18 OS I 79
Mise en œuvre des répertoires : ou
stocker les attributs des fichiers ?
●
Pour les systèmes qui fonctionnent avec les i-
nodes, une autre possibilité de stocker les
attributs est de le faire dans les i-node plutôt
que dans les entrées de répertoires
●
Dans ce cas l'entrée du répertoire peut être
plus petite et être juste constituée d'un nom de
fichier et d'un numéro d'i-node
– Approche d 'UNIX
18/04/18 OS I 80
Les fichiers partagés : un besoin
●
Lorsque plusieurs
utilisateurs travaillent
ensemble sur un même
projet, ils ont
fréquemment besoin de
partager des fichiers
– Ainsi il est souvent
souhaitable qu'un fichier
partagé apparaisse
simultanément dans
différents répertoires qui
appartiennent à différents
utilisateurs
18/04/18 OS I 81
Exemple de fichier partagé
●
Exemple : un des fichiers de
l'utilisateur C est présent dans
un répertoire de l'utilisateur B.
●
La connexion entre le
répertoire de B et le fichier
partagé est appelé lien (link)
●
Le système de fichiers est
maintenant l'équivalent d'un
graph orienté acyclique ou
DAG (Directed Acyclic Graph),
plutôt qu'un arbre
18/04/18 OS I 82
Les fichiers partagés : Problèmes
●
Même si le partage de fichiers est pratique, ce principe amène
néanmoins quelques problèmes
– Si les répertoires comprennent réellement les adresses des fichiers sur le
disque, une copie des adresses devra être faite dans le répertoire B au
moment de la création du lien.
– Si l'utilisateur B ou l'utilisateur C modifie le fichier, les nouveaux blocs
n’apparaîtront que dans le répertoire de l'utilisateur qui effectué la
modification.
– Les modifications ne seront pas visibles pour l'autre utilisateur qui est un
échec pour un but de partage.
18/04/18 OS I 83
Résolution des problèmes des fichiers
partagés
●
Ce problème peut être résolu de deux manières.
●
Premièrement, les blocs ne sont pas listés dans
le répertoires mais dans une petite structure de
données associée au fichier lui-même.
– Les répertoires pointent simplement sur la petite
structure de données.
– C'est l’approche utilisée sous UNIX (dans lequel la petite
structure de données est l'i-node)
18/04/18 OS I 84
Résolution des problèmes des fichiers
partagés
●
Deuxièmement, B est lié à l'un des fichiers de
C par la création d'un nouveau fichier de type
lien, et par le placement de ce fichier dans le
répertoire de B.
– Le nouveau fichier possède simplement l'accès du
fichier avec lequel il est lié
– Quand B lit le fichier partagé, le système d'exploitation
s'aperçoit qu'il est de type lien, recherche le nom du
fichier et le lit. Ce lien s'appelle lien symbolique
(symbolic link)
18/04/18 OS I 85
Les fichiers partagés : Inconvénients de la
solution
●
Chacune de ces méthodes présente des inconvénients
●
Dans la première, au moment où B fait le lien avec le
fichier partagé, l'i-node indique que c'est l'utilisateur C
qui en est le propriétaire, la création d'un lien ne modifie
pas le propriétaire, mais elle augment le compteur de
liens de l'i-node, de sorte que le système sait combien
d'entrées de répertoires pointent à ce moment sur le
fichier
18/04/18 OS I 86
Les fichiers partagés : Inconvénients de la solution
●
Si l'utilisateur C décide de détruire le fichier, le système est
confronté à un problème :
– S'il supprime le fichier et efface l'i-node, l'utilisateur B aura une entrée de
répertoire qui pointe sur un i-node invalide.
– Si cet i-node est réattribué plus tard à un autre fichier, le lien de l'utilisateur B
pointera sur un mauvais fichier.
●
Le système peut voir que le fichier est encore utilisé d'après le
compteur de l'i-node, mais il n'a aucun moyen de déterminer toutes
les entrées de répertoire qui contienne ce lien avant de les détruire.
– Les pointeurs sur les répertoires ne peuvent pas être stockés dans les i-nodes
parce que le nombre des liens peut être illimité
18/04/18 OS I 87
Les fichiers partagés : Inconvénients de la
solution
●
Il ne reste alors plus qu'à effacer l'entrée du répertoire
de C, mais en conservant l'i-node intact, avec un
compteur à 1.
– l'utilisateur B est le seul utilisateur à avoir une entrée de
répertoire sur un fichier dont le propriétaire est C.
18/04/18 OS I 88
Les fichiers partagés : Inconvénients de la
solution
●
Ce problème ne se produit pas avec les liens
symboliques, parce que seul le propriétaire du ficher a
un pointeur sur l'i-node de ce fichier
– Les utilisateurs qui ont un lien sur un fichier ont uniquement
des chemins d'accès ; ils n'ont pas de pointeurs sur l'i-node
– Quand le propriétaire efface le fichier, ce dernier est détruit
– La destruction d'un lien symbolique n'affecte en rien le
fichier
18/04/18 OS I 89
Exemple de systèmes de fichiers
18/04/18 OS I 90
Les systèmes de fichiers de MSDOS : FAT (16/32)
●
C'est un système de fichier qui a été utilisé
sur les premiers ordinateurs personnels
d'IBM
– Il est utilisé (FAT32) dans toutes les versions de
Windows et dans des appareils embarqués
– Il est utilisé par Apple dans ces appareils
embarqués (IPod)
– Plus utilisé que le système de fichier moderne
NTFS (journalisé)
18/04/18 OS I 91
Entrée répertoire MSDOS
●
Pour lire un fichier, un programme MS-DOS doit d'abord
faire un appel système open afin d'obtenir un descripteur
pour ce fichier
– un descripteur de fichier est une clé abstraite (un entier) pour accéder
à un fichier (stdin=0, stdout=1,stderr=2).
● open a besoin du chemin d'accès, qui peut être absolu ou
relatif au répertoire de travail
– Ce chemin est parcouru élément par élément jusqu'au répertoire finale.
– Le répertoire finale est lu en mémoire.
– On y cherche alors le fichier qui peut ensuite être ouvert.
18/04/18 OS I 92
Entrée répertoire MSDOS
●
Bien que les répertoires MS-DOS aient des tailles variables,
leurs entrées ont une taille fixe de 32 octets
●
La figure ci-dessous présente le format d'une entrée de
répertoire MS-DOS
– Il contient le nom du fichier, ses attributs, la date et l'heure
de sa création, son bloc de début et sa taille exacte
– 10 bits inutilisé (reseved)
18/04/18 OS I 93
Taille maximale d'un fichier MSDOS
●
MS-DOS enregistre la taille exacte du fichier
en utilisant un nombre sur 32 bits
– Les fichiers peuvent ainsi avoir en théorie une taille
maximal de 4Go (2^32 = 4294967296 = 4Go).
– Cependant, la taille maximale d'un fichier est limité
à 2Go.
18/04/18 OS I 94
MSDOS et FAT
●
MS-DOS conserve une trace des blocs de fichiers dans une
table d'allocation en mémoire principale
– L'entrée du répertoire comprend le numéro du premier bloc
– Celui-ce sert de l'index dans les entrées de la FAT (File Allocation
Table) de 64 Ko qui présente en mémoire principal
– En suivant le chaînage, on peut trouver tous les blocs
18/04/18 OS I 95
FAT 12 – 16 -32
●
Il existe trois versions du système de fichier
de type FAT : FAT-12, FAT-16 et FAT-32,
selon le nombre de bits d'une adresse disque
●
FAT-32 porte mal son nom, puisque seuls les
28 bits de poids faible des adresses disque
sont employées.
– On aurait dû l'appeler FAT-28 !
18/04/18 OS I 96
Taille maximale de partition dans FAT-12
●
Pour toutes les FAT, le bloc de disque peut
être un multiple de 512 octets
– FAT-12 : taille maximale de partition = (2¹²– 10
adresses)x 512 octet. Les 10 adresses sont réservés
pour des marqueurs spéciaux : fin de fichier, bloc en
erreur…
– FAT-12 : taille maximale de partition = 4086 x 512 =
2Mo
– FAT-12 : taille de la FAT en mémoire = 4096 entrée
de 2 octets chacune = 8192 octets
18/04/18 OS I 97
Taille maximale de partition dans FAT-16
●
FAT avec des pointeurs de disques de 16
bits
– Taille de bloc de 8,16,32 Ko
– Taille maximale de la partition 2¹ adresses x 32 Ko
⁶
chacune = 2 Go
– Un disque supporte 4 partitions → taille maximal
d'un disque de 8 Go
18/04/18 OS I 98
Taille maximale de partition dans FAT-32
●
FAT avec des pointeurs de disques de 28
bits
– Taille maximale de la partition = 2² adresse x 4 Ko
⁸
= 2² x (2²) x (2¹ ) = 2 = 1 To
⁸ ⁰ ⁴⁰
Théoriquement 4 To
Théoriquement 8 To
18/04/18 OS I 99
Avantages de FAT-32
●
Nombre de partition :
– Un disque de 8Go peut être constitué d'une seule partition au lieu de 4
(dans FAT-16).
●
Taille de bloc :
– FAT-16 doit absolument utiliser un bloc 32 Ko pour une partition de 2 Go
– FAT-32 on peut utiliser des blocs de 4 Ko pour une partition de 2 Go
– L'avantage de disposer de blocs de plus petite taille est que l'on
gaspille moins d'espace
●
un fichier de 10 octets occupe 32 Ko d'espace disque
●
Avec un fichier de 8 Ko et des blocs de 32 Ko : 3/4 du bloc gaspillé
●
Avec un fichier de 8 Ko et un bloc de 4 Ko → pas de gaspillage disque
18/04/18 OS I 100
Exercice I (Rattrapage 2017)
Considérons un disque dur ayant une capacité de 256 Go et un système de
gestion de fichier utilisant FAT-32
1) Donner la taille minimale de bloc physique en Kilo octets pour indexer tout
l'espace disque.
2)Quelle est alors la taille minimale d'un fichier dans un tel système ?
3) Calculer le nombre de blocs nécessaires pour stocker la table FAT sur le
disque.
4) Pour la mémorisation de blocs libres de cette unité disque, la méthode table
de bits (bitmap) est utilisée. Quelle est la taille de la table de bits en blocs ?
5) Vous décidez de formater ce disque dur en FAT-16 en choisissant des blocs
physiques de 32 Koctets. Expliquer pourquoi il est déconseillé fortement de
faire cette opération ?
18/04/18 OS I 101
Correction Exercice I
1) Donner la taille minimale de bloc physique
en Kilo octets pour indexer tout l'espace
disque.
• Taille du disque = 256 Go = 28 * 230 = 238 octets.
• Une entrée de la FAT-32 a 28 bits. Nombre
d'unité d'allocations (nombre d'entrée
possibles) = 228
• Taille minimale de bloc physique = 1 bloc
physique = 238/228 = 210 octets = 1 Koctets
18/04/18 OS I 102
Correction Exercice I
2) Quelle est alors la taille minimale d'un
fichier dans un tel système ?
●
Taille minimale d'un fichier = 1 bloc physique = 1 Koctets
3)Calculer le nombre de blocs nécessaires
pour stocker la table FAT sur le disque.
●
Taille de la table FAT = 228 * 28 bits.
●
Nombre de blocs nécessaires = 228 * 28 /8*210= 228 * 28 /213
=28 *215blocs
18/04/18 OS I 103
Correction Exercice I
4) Pour la mémorisation de blocs libres de
cette unité disque, la méthode table de bits
(bitmap) est utilisée. Quelle est la taille de la
table de bits en blocs ?
●
Taille de la table de bit = nombre de blocs du disque
= 228 bits.
●
Taille de la table en bloc =228 / 213= 215 blocs
18/04/18 OS I 104
Correction Exercice I
5) Vous décidez de formater ce disque dur
en FAT-16 en choisissant des blocs
physiques de 32 Koctets. Expliquer
pourquoi il est déconseillé fortement de
faire cette opération ?
●
taille max = 216 * 215 = 231 = 2 GB <<< 256 Go
18/04/18 OS I 105
Système de fichier d'UNIX
●
Un répertoire UNIX comprend une entrée pour chaque fichier de ce
répertoire.
●
Chaque entrée est extrêmement simple
– Le nom du fichier (14 octets)
– Et le numéro de son i-node (2 octets)
– Ces paramètres limitent à 64 Ko (2^16 , 2 octets = 16 bits, numéro de l’i-node) le
nombre de fichier par système de fichier
18/04/18 OS I 106
Les i-nodes sous UNIX
●
Un i-node unix stocke à la fois les attributs (metadata) ainsi que les pointeurs
sur les blocs
●
Les i-nodes UNIX contiennent certains attributs
– La taille du fichier
– Trois information temporelles
●
Date et heure de créations
●
Date et heure du dernier accès
●
Date et heure de la dernière modification
– Le nom du propriétaire
– Le nom du groupe
– Les information de protection
– Un compteur indiquant le nombre d'entré de répertoires pointant sur lui (pour les liens)
●
Un compteur indiquant 0 → l'i-node est récupéré et les blocs de disque sont placés dans la lste des
blocs libres
18/04/18 OS I 107
Les i-nodes sous UNIX
●
Les 10 (12) premières adresses des blocs sont
enregistrées dans l'i-node lui-même
– Pour les petits fichiers, toutes les informations nécessaire se
trouvent dans l'i-node, lequel est chargé dans la mémoire quand le
fichier est ouvert
– Pour de plus grands fichiers, une des adresses de l'i-node
correspond à l'adresse d'un bloc de disque appelé bloc de simple
indirection (single indirect block)
●
Ce bloc contient non pas de données mais des adresses supplémentaires
18/04/18 OS I 108
Les i-nodes sous UNIX
●
Si cela n'est pas suffisant, une autre adresse de l'i-
node, appelée bloc de double indirection (double
indirect block), contient l'adresse d'un bloc qui
contient une lise de bloc de simple indirection
– Chacun de ces blocs de simple indirection pointe sur
quelques centaines de blocs de données
●
Si cela ne suffit toujours pas, on peut avoir recours
à un bloc de triple indirection (triple indirect block)
18/04/18 OS I 109
Les i-nodes d'UNIX
18/04/18 OS I 110
Exercice 2 (EXAMEN 2017)
●
On rappelle que sous Unix, un fichier est représenté de façon interne
par la structure de données i-node. Cette structure comprend:
– un ensemble de 10 pointeurs directs qui pointent vers des blocs contenant les
premières données du fichier
– un pointeur indirect simple,
– un pointeur indirect double,
– et enfin un pointeur indirect triple (un degré de plus d'indirection).
●
En supposant que la taille d'un bloc est de 512 octets et que la taille
d'un index est de 4 octets, indiquer (en nombre de blocs et en octets) :
– 1) la taille minimale d'un fichier ?
– 2) la taille maximale d'un fichier ?
18/04/18 OS I 111
Correction Exercice 2
1) La taille minimale d'un fichier ?
– Un fichier une fois créé va occuper au minimum 01
bloc ; sa taille est au moins égale à 512 octets
2) La taille maximale d'un fichier ?
– Avec 128 entrées pour chaque table de pointeurs et
512 octets par bloc, cela donne des fichiers d'au
maximum 10 + 128 + 128*128 + 128*128*128= 2.113.674
blocs soit une taille très confortable de 512*2.097.152 =
1.082.201.087 octets.
18/04/18 OS I 112
Les i-nodes d'UNIX
●
Exemple : chemin d'accès /usr/ast/mbox
18/04/18 OS I 113
Les systèmes de fichier journalisés
18/04/18 OS I 114
Les systèmes de fichier journalisés
●
L'idée de base est de conserver dans un journal la
trace de ce que va faire le système avant qu'il ne le
fasse
– En cas de plantage, avant la réalisation des travaux planifiés et
après le démarrage, le système pourra retrouver dans le journal
ce qu'il devait faire au moment du plantage et terminer le travail
●
Un tel système est appelé système de fichier
journalisé (journaling file system)
– NTFS/ext3/ResierFS
18/04/18 OS I 115
Les systèmes de fichier journalisés
●
Pour illustrer le problème, regardons une opération simple :
supprimer un fichier sous UNIX. Elle demande trois étapes
– Supprimer l'entrée du fichier dans le répertoire
– Libérer l'i-node et le placer dans le groupe des i-nodes libres
– Libérer tous les blocs et les placer dans le groupes des blocs libres
●
Supposons que le système plante après la première étape
– L'i-node et les blocs ne sont plus accessibles mais ils ne peuvent pas
non plus être réassignés.
– Si le plantage a lieu après la deuxième étape, seuls les blocs sont
perdus.
18/04/18 OS I 116
Les systèmes de fichier journalisés
●
Ce que fait un système de fichier journalisé est d'écrire en
premier dans le journal un événement qui contient la liste des
actions à réaliser
– Cet événement est ensuite écrit sur le disque
– Une fois l’événement est écrit dans le journal, alors les actions sont
réalisées
– Une fois les actions ont été réalisées, l’événement est effacé du journal
●
Si le plantage se réalise, pour récupérer, le système de fichiers
peut lire le journal et regarde si des actions sont en cours
– Si oui, ces actions seront exécutées jusqu'à ce que le fichier soit
correctement supprimé
18/04/18 OS I 117
Les systèmes de fichier journalisés
●
Pour que la journalisation fonctionne, il faut que
les actions journalisées soient idempotentes,
ce qui veut dire qu'elles peuvent être répétées,
sans dommage, autant de fois que nécessaire
– Idempotence : une opération qui produit le même
résultat qu'elle soit exécutée une seule ou plusieurs fois
– Exemple : : Le tri d'une liste d'éléments est une
procédure idempotente. Une fois la liste triée, le fait de
la trier à nouveau ne changera pas l'ordre des
éléments ; la liste ne sera donc pas modifiée.
18/04/18 OS I 118
Les systèmes de fichier journalisés
●
Une action telle que « mettre à jour la table de bits pour indiquer que l'i-
node k ou le bloc n est libre » doit pouvoir être répétée indéfiniment sans
danger
●
De la même manière, rechercher dans un répertoire et supprimer toute
entrée XXX est idempotent
●
Par contre, ajouter le bloc nouvellement libéré de l'i-node k à la fin de la
liste des blocs libres n'est pas idempotent puisqu'il peut déjà être dans la
liste
●
L'action plus longue « Chercher dans la liste des blocs libres et ajouter le
bloc n s'il n'y est pas » est idempotente.
18/04/18 OS I 119
Les systèmes de fichier journalisés
●
Les systèmes de fichiers journalisés doivent
accommoder leurs structures de données et
leurs actions journalisables pour qu'elles
soient toutes idempotentes
→ Sous de telles conditions la récupération
d'un plantage peut être faite rapidement et
de manière sûre.
18/04/18 OS I 120
Les systèmes de fichier journalisés
●
Afin d'augmenter la fiabilité des systèmes
de fichiers on peut utiliser la notion de
transaction atomique (atomic transaction)
– Lorsque ce concept est utilisé, un groupe d'actions
doit être encadré par begin transaction et end
transaction
– Le système sait alors qu'il doit accomplir toutes les
actions encadrées ou aucune, mais en aucun cas
un sous ensemble
18/04/18 OS I 121
Les systèmes de fichiers virtuels
18/04/18 OS I 122
Les systèmes de fichiers virtuels
●
Plusieurs systèmes de fichiers sont utilisés, souvent sur le même
ordinateur, parfois avec un même système d'exploitation
– Un système Windows peut gérer NTFS comme système de fichiers principal
mais aussi un système FAT-32 ou FAT-16 par héritage
– Un système Linux peut avoir un systèe ext2 comme racine du système de
fichiers, une partition ext3 montée sur /usr et un second disque dur avec
RiserFS.
→ Du point de vue de l'utilisateur, c'est un système de fichiers
unique et hiérarchique. Ce qui se passe pour intégrer ces divers
et incompatibles systèmes de fichiers est invisible aux
utilisateurs et aux processus.
18/04/18 OS I 123
Les systèmes de fichiers virtuels
●
Les systèmes UNIX utilisent le concept de
système de fichiers virtuels ou VFS (Virtual File
System) pour tenter d'intégrer différents systèmes
de fichier dans une structure ordonnée.
●
L'idée principale est d'extraire la partie du système
de fichiers qui est commune à tous les systèmes
de fichiers et de mettre le code dans une couche
séparée qui appelle les systèmes de fichiers réels
sous-jacent pour gérer les données.
18/04/18 OS I 124
Les systèmes de fichiers virtuels
●
Les appels qui
proviennent des
processus utilisateurs
sont des appels
normalisés POSIX tels
que : open, read, write
●
Le VFS a ainsi une
interface haute avec les
processus utilisateur qui
est l'interface POSIX
18/04/18 OS I 125
Les systèmes de fichiers virtuels
●
Le VFS a aussi une
interface basse avec
les systèmes de
fichier spécifique qui
est appelé interface
VFS.
18/04/18 OS I 126
Commandes du SGF d'UNIX
18/04/18 OS I 127
L’ARBORESCENCE
●
Le système Linux ne connaît que trois types de fichiers :
– Les fichiers ordinaires (regular files). Ils servent à mémoriser les
programmes et les données des utilisateurs et du système.
– Les fichiers répertoires ou répertoires (directories). Chaque répertoire
contient la liste et la référence des fichiers placés sous son contrôle et la
référence du répertoire dont il dépend (répertoire père).
– Les fichiers spéciaux. Ils désignent les périphériques, les tubes ou autres
supports de communication inter-processus. Les fichiers spéciaux
associés aux périphériques peuvent être caractères (terminaux) ou blocs
(disque) ; les entrées/sorties (E/S) se font soit caractère par caractère, soit
bloc par bloc, un bloc étant composé de n caractères (512, 1024 ou 2048).
18/04/18 OS I 128
L’ARBORESCENCE
●
L’extension du système de fichiers aux périphériques
constitue une des grandes particularités de Linux.
– Cela permet à un utilisateur de diriger les données produites par son
application vers un fichier ou un périphérique.
– Autre conséquence, les noms des fichiers et des périphériques
obéissent à la même syntaxe et l’accès aux périphériques est contrôlé
par le mécanisme de protection des fichiers.
●
Le système de fichiers est organisé en une seule
arborescence logique.
– Cet arbre est composé de répertoires qui contiennent eux–mêmes
d’autres répertoires, ou des fichiers.
18/04/18 OS I 129
L’ARBORESCENCE
Filesystems Hierarchy Standard, FHS
●
/ :
– 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…)
18/04/18 OS I 130
L’ARBORESCENCE
Filesystems Hierarchy Standard, FHS
●
/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
18/04/18 OS I 131
L’ARBORESCENCE
Filesystems Hierarchy Standard, FHS
●
/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
18/04/18 OS I 132
L’ARBORESCENCE
Filesystems Hierarchy Standard, FHS
●
/mnt montage (mount)
– Point de montage pour monter temporairement un système de fichiers
●
/opt optionnel (optional)
– Emplacement pour des applications installées hors gestionnaire de paquets
(logiciels optionnels)
●
/proc processus (processes)
– Répertoire virtuel pour les informations système (états du noyau et des
processus système)
●
/root racine (root)
– Répertoire personnel du super-utilisateur
18/04/18 OS I 133
L’ARBORESCENCE
Filesystems Hierarchy Standard, FHS
●
/run exécution système (runtime system)
– Informations relatives au système depuis son dernier démarrage (ex :
utilisateurs actifs, services en cours d'exécution, etc.)
●
/sbin binaires système (super binaries, super binnary utilities
(super binutils))
– Exécutables système essentiels
●
/srv services (services)
– Données pour les services du système
●
/tmp temporaire (temporary)
– Fichiers temporaires des applications
18/04/18 OS I 134
L’ARBORESCENCE
Filesystems Hierarchy Standard, FHS
●
/usr ressources système Unix (Unix system resources)
– Hiérarchie secondaire, pour des données en lecture seule par les
utilisateurs. Ce répertoire contient la vaste majorité des applications
usuelles des utilisateurs et leurs fichiers
●
/usr/bin
– Exécutables des programmes additionnels disponibles pour tous les
utilisateurs (ex : le gestionnaire de fichiers, le lecteur de musique, le
navigateur Web…)
●
/usr/lib
– Bibliothèques partagées par les applications additionnelles de /usr/bin
et /usr/sbin
18/04/18 OS I 135
L’ARBORESCENCE
Filesystems Hierarchy Standard, FHS
●
/usr/local Hiérarchie tertiaire.
– Emplacement où les utilisateurs doivent installer les applications
qu'ils compilent.
●
/usr/share
– Fichiers non reliés à l'architecture partagés par les applications de
/usr/bin et /usr/sbin (ex : les icônes, les thèmes, la documentation…)
●
/var variable (variable)
– Données variables et diverses
18/04/18 OS I 136
LA CLASSIFICATION DES
FICHIERS LINUX
●
La syntaxe d’un nom de fichier n’est pas très stricte.
Il est recommandé de limiter le nom d’un fichier à 14
caractères au plus et de n’utiliser que les lettres
majuscules ou minuscules (attention, Linux
différencie les majuscules des minuscules),
– les chiffres et quelques autres caractères (le point ., le tiret –,
le souligné ).
– Linux autorise jusqu’à 255 caractères pour le nom du fichier.
La longueur minimum est de un caractère.
– Les caractères spéciaux suivants sont à proscrire absolument :
 > < | $ ? & [ ] * ! " ‘ ( ) ` @ ~ <espace>
18/04/18 OS I 137
LA CLASSIFICATION DES
FICHIERS LINUX
●
Le point (.) joue un rôle particulier dans le nom d’un fichier.
– Les fichiers dont les noms commencent par un point (.), comme
.profile, sont des fichiers cachés (c’est–à–dire qu’ils n’apparaissent
pas dans la liste des fichiers en tapant la commande ls sans
argument).
●
Le point sert également à suffixer les noms des fichiers.
Cette pratique est très recommandée, car elle facilite la
gestion des fichiers.
– Il est vrai qu’il n’existe pas de syntaxe précise ; il existe toutefois un
certain nombre de conventions
18/04/18 OS I 138
LA CLASSIFICATION DES
FICHIERS LINUX
●
Les caractères spéciaux et leur
signification
– * → désigne toute chaîne de 0 à n caractères,
– ? → désigne un caractère quelconque,
– [. . .] → désigne un caractère quelconque
appartenant à l’ensemble des caractères entre
crochets.
18/04/18 OS I 139
LA CLASSIFICATION DES
FICHIERS LINUX
●
Fich* → désigne tous les fichiers de nom fich et
ayant un suffixe.
●
Essai? → permet d’obtenir tous les fichiers ayant un
nom de 6 caractères dont les 5 premiers caractères
sont essai, le dernier caractère est quelconque.
●
[a-z]* désigne tous les noms commençant par une
lettre minuscule.
18/04/18 OS I 140
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
– Le chemin d’accès relatif
18/04/18 OS I 141
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.
– La longueur du chemin d’accès absolu d’un fichier est limitée à 1024
caractères
●
Exemple
– /home/amine/Dropbox/Cours/Cours-ESEN/L1-OS-
I/Cours/Chapitre4/code-source-chapt4/fichier-appel-
system.c
18/04/18 OS I 142
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).
– 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.
18/04/18 OS I 143
LA DÉSIGNATION DES FICHIERS
●
chemin absolu : /home/amine/develop/prog1
●
répertoire courant : /home/amine
●
chemin relatif : develop/prog1
18/04/18 OS I 144
LA DÉSIGNATION DES FICHIERS
●
Tout répertoire contient au moins deux entrées :
– . → représente le répertoire lui–même.
– .. → représente le répertoire père.
●
Ces entrées de répertoire ne sont en général pas
imprimées par les utilitaires du système. Elles
permettent de référencer le répertoire courant sans
l’obligation de citer son nom de chemin d’accès
absolu ou de référencer avec un chemin d’accès
relatif un fichier dans un sous–arbre.
18/04/18 OS I 145
LA DÉSIGNATION DES FICHIERS
●
répertoire courant : /home/amine/
●
chemin d’accès relatif:
../amine/develop/prog1
●
chemin d’accès absolu équivalent :
/home/amine/develop/prog1
18/04/18 OS I 146
LA MANIPULATION DES
FICHIERS
● $pwd → Print Working Directory : Affiche le chemin d’accès du
répertoire courant.
● $cd → Change Directory
● $mkdir → MaKe DIRectory, Crée un nouveau répertoire
● $rmdir → ReMove DIRectory, Supprime un répertoire, s’il est vide.
● $du → Disk Usage
18/04/18 OS I 147
LA MANIPULATION DES
FICHIERS
● $ls → LiSt files. Permet d’obtenir la liste et les
caractéristiques des fichiers contenus dans un
répertoire.
● $cat → conCATenate. La commande cat est une
commande multi–usage qui permet d’afficher, de
créer, de copier et de concaténer des fichiers.
● $cp → CoPy. Cette commande permet la copie
de fichiers
18/04/18 OS I 148
Protection des fichiers
●
Comme tout système multi-utilisateur, Linux possède des
mécanismes permettant au propriétaire d’un fichier d’en
protéger le contenu. Le propriétaire est l’utilisateur ayant
créé le fichier.
●
Pour permettre le partage de fichiers et faciliter le travail en
équipe, Linux définit la notion de groupe d’utilisateurs, et
tout utilisateur appartient à un groupe au moins.
●
Les droits d’accès (en anglais permissions) à un fichier
sont définis par son propriétaire.
18/04/18 OS I 149
DROIT D’ACCÈS AUX FICHIERS
●
À chaque fichier est associé un ensemble
d’indicateurs précisant les droits d’accès au
fichier.
●
Pour chaque fichier il existe trois types
d’utilisateurs :
– le propriétaire du fichier,
– les membres du groupe propriétaire du fichier,
– les autres utilisateurs du système.
18/04/18 OS I 150
DROIT D’ACCÈS AUX FICHIERS
●
Pour chaque fichier et par type d’utilisateur il
existe trois modes principaux :
– autorisation d’écriture (w)
– autorisation de lecture (r)
– autorisation d’exécution (x)
●
En plus de ces neuf bits (rwx rwx rwx),
Unix/Linux définit d'autres bits de permission
(SUID, SGID).
18/04/18 OS I 151
DROIT D’ACCÈS AUX FICHIERS
●
Sous Linux il existe différents types de fichiers :
– fichier ordinaire → ()
– fichier répertoire → (d)
– fichier spécial : périphérique accédé en mode caractère
→ (c)
– fichier spécial : périphérique accédé en mode bloc → (b)
– tube nommé (named pipe) → (p)
– lien symbolique → (l)
– Socket → (s)
18/04/18 OS I 152
DROIT D’ACCÈS AUX FICHIERS
●
Ainsi, à chaque fichier Linux sont associés 10
attributs (1 pour désigner le type, et 9 attributs de
protection, 3 pour le propriétaire, 3 pour le groupe
et 3 pour les autres utilisateurs). L’ensemble des
renseignements sur un fichier est obtenu en
utilisant la commande $ls -l
18/04/18 OS I 153
DROIT D’ACCÈS AUX FICHIERS
18/04/18 OS I 154
DROIT D’ACCÈS AUX FICHIERS
●
On écrit côte à côte les droits r, w puis x respectivement
pour le propriétaire (u), le groupe (g) et les autres
utilisateurs (o).
●
Les codes u, g et o (u comme user, g comme group et o
comme others) sont utilisés par les commandes qui
permettent d'attribuer les droits et l'appartenance des
fichiers.
●
Lorsqu'un flag est attribué à une entité, on écrit ce flag (r,
w ou x), et lorsqu'il n'est pas attribué, on écrit un '-'
18/04/18 OS I 155
DROIT D’ACCÈS AUX FICHIERS
●
Une autre manière de représenter ces droits est sous forme binaire
grâce à une clef numérique fondée sur la correspondance entre un
nombre décimal et son expression binaire, une lettre équivaut à 1,
un tiret à 0.
– 0 = 000
– 1 = 001
– 2 = 010
– 3 = 011
– 4 = 100
– 5 = 101
– 6 = 110
– 7 = 111
●
Les droits rwx rwx rwx est équivalent à 777
●
Les droits rwx rw- r- x est équivalent à 765
18/04/18 OS I 156
MODIFICATION DES DROITS
D’ACCÈS AUX FICHIERS
●
La protection d’un fichier ne peut être modifiée
que par le propriétaire à l’aide de la commande
chmod (CHange MODe). Il existe deux modes
d’utilisation de cette commande.
●
La première (la plus ancienne) utilise la
description des protections par un nombre
octal.
– $chmod 765 exemple
18/04/18 OS I 157
MODIFICATION DES DROITS
D’ACCÈS AUX FICHIERS
●
Le deuxième mode d’utilisation de chmod, le mode symbolique, permet une
description absolue ou relative des droits d’accès, comme suit
● chmod [who]op[permission] fichier
●
Who
– est une combinaison de lettre u (user=propriétaire), g (groupe), o (other=autre) ou a
(all=tous) pour ugo,
●
op
– + permet d’ajouter un droit d’accès, - de supprimer un droit d’accès et = d’affecter un droit
de manière absolue (tous les autres bits sont remis à zéro),
●
permission
– r (read=lecture), w (write=écriture), x (exécution).
18/04/18 OS I 158
MODIFICATION DES DROITS
D’ACCÈS AUX FICHIERS
● $chmod u-w file → supprime le droit d’écriture
au propriétaire.
● $chmod g+r file → ajoute le droit de lecture
pour le groupe.
● $chmod ug=x file → accès uniquement en
exécution pour le propriétaire et le groupe, pas de
modification pour les autres.
18/04/18 OS I 159
Droit d’accès à la création du
fichier
●
La protection d’un fichier, ainsi que le nom du propriétaire (le
vôtre) et le nom du groupe auquel il appartient, sont établis à sa
création et ne peuvent être modifiés que par son propriétaire.
● La commande umask permet de définir un masque de
protection des fichiers (et répertoires) lors de leur création.
– Cette commande se trouvait en général dans le fichier .bashrc, mais elle
peut être exécutée à tout moment.
– Pour les distribution récente de ubuntu, la valeur par défaut de umask se
trouve dans /etc/login.defs
– Le masque est exprimé en base de 8
18/04/18 OS I 160
Droit d’accès à la création du
fichier
18/04/18 OS I 161
Droit d’accès à la création du
fichier
18/04/18 OS I 162
Droit d’accès à la création du
fichier
●
La valeur 022 est soustraite de la permission permanente
(111 111 111) :
111 111 111 → permission permanente
-
000 010 010 → on enlève les bits dont on ne veut pas
111 101 101 → 755
●
umask 022 permet de créer des fichiers ou des répertoires
dont la protection est rwx r-x r-x. C’est souvent l’option par
défaut.
18/04/18 OS I 163
Droit d’accès à la création du
fichier
●
La valeur 002 est soustraite de la permission
permanente (111 111 111) :
111 111 111 → permission permanente
-
000 000 010 → on enlève les bits dont on ne veut pas
111 111 101 → 775
●
umask 002 permet de créer des fichiers ou répertoires
dont la protection est rwx rwx r-x.
18/04/18 OS I 164
Droit d’accès à la création du
fichier
●
Pour les fichiers ordinaires,
– $umask 022 donnera une protection de type
rw- r-- r-- ,
– $umask 002 donnera une protection de type
rw- rw- r-- ,
●
car la possibilité d’exécution n’est pas autorisée sur les
fichiers ordinaire
18/04/18 OS I 165
Accès au contenu des répertoires
18/04/18 OS I 166
Droits des répertoires
●
Dans le cas des répertoires, l’interprétation
des droits est légèrement différente de celle
concernant les fichiers.
●
Les informations concernant un répertoire
sont obtenues par la commande $ls -dl
nom_repertoire
18/04/18 OS I 167
Droits des répertoires
●
L’interprétation des protections pour les répertoires est la
suivante :
– r → autorise la lecture du contenu du répertoire comme dans le cas des
fichiers; permet donc de voir la liste des fichiers qui sont dans le
répertoire.
– x → autorise l’accès au répertoire (à l’aide de la commande cd).
– w → autorise la création, la suppression et le changement du nom d’un
élément du répertoire. Cette permission est indépendante de l’accès
aux fichiers dans le répertoire.
18/04/18 OS I 168
Droits des répertoires
●
La possibilité de suppression d’un fichier n’est pas fixée dans les
permissions de ce fichier, mais dans les permissions du répertoire qui le
contient.
– Ce n’est donc pas une permission fixée fichier par fichier.
●
Cela pose problème, en particulier dans le répertoire /tmp : tout
utilisateur doit pouvoir créer des fichiers dans /tmp, qui a donc les
permissions rwx pour other.
– Chacun peut donc lire et écrire dans /tmp, et donc y créer des fichiers.
●
Mais chacun pourrait aussi supprimer tout fichier dans /tmp, y compris
des fichiers créés par d’autres utilisateurs.
→ D’où l’utilité du bit t sur un répertoire : si ce bit est positionné, un
utilisateur qui peut écrire dans le répertoire peut y créer des fichiers,
mais ne peut supprimer un fichier que s’il en est propriétaire
18/04/18 OS I 169
MODIFICATION DU PROPRIÉTAIRE ET DU GROUPE
● La commande $chown nom_propriétaire
nom_fichier permet de changer le propriétaire d’un
fichier.
– Pour des raisons de sécurité, seul l’administrateur peut
modifier le propriétaire d’un fichier ou d’un répertoire.
● La commande $chgrp nom_groupe nom_fichier
permet le changement de groupe pour les fichiers ou
répertoires cités,
– à condition que l’utilisateur fasse partie du nouveau groupe
et soit propriétaire de ces fichiers ou répertoires.
18/04/18 OS I 170
MODIFICATION DU PROPRIÉTAIRE ET DU GROUPE
●
Le fichier /etc/group défini les groupes auxquels les utilisateurs appartiennent
●
Le format d'une entrée /etc/group
– adm:x:4:amine,syslog
● adm : Nom du groupe
● x : password
● 4 : Group ID (GID)
● amine,syslog : Group List : membres des groupes
18/04/18 OS I 171
MODIFICATION DU PROPRIÉTAIRE ET DU GROUPE
● Le fichier /etc/passwd contient les
information sur les comptes utilisateurs
18/04/18 OS I 172
Lien matériel (hard link)
●
Un fichier, en tant qu’espace disque, est repéré par son index et non
par son nom. L’index est le numéro de l’inode décrivant entièrement
le fichier sur disque. Un répertoire est un fichier de type particulier
contenant des couples (index, nom_de_fichier).
●
Il est donc possible d’associer deux noms différents au même index.
Cette opération est effectuée par la commande ln (LiNk)
● $ln fichier_existant nouveau_nom
●
Le même fichier, au sens espace disque, peut alors être accédé par
les deux noms : fichier_existant et nouveau_nom.
18/04/18 OS I 173
Lien symbolique (soft link)
●
La numérotation des inodes est interne à chaque système de fichier.
●
Or, deux fichiers différents appartenant à deux système de fichier
différents peuvent porter le même index (le même numéro d’inode).
La logique décrite précédemment est alors inapplicable.
●
Pour résoudre ce problème, il faut utiliser dans ce cas un lien
symbolique : $ln -s fichier_existant nouveau_nom
●
Le fichier nouveau nom est créé (nouvel inode), mais n’occupe que
peu de place sur disque : il ne contient que la référence à
fichier_existant.
18/04/18 OS I 174
The END

Contenu connexe

Similaire à Système de gestion des fichiers de amine

esi1an_lessons_archi-vue_ensemble_oridnateur_smahat.pdf
esi1an_lessons_archi-vue_ensemble_oridnateur_smahat.pdfesi1an_lessons_archi-vue_ensemble_oridnateur_smahat.pdf
esi1an_lessons_archi-vue_ensemble_oridnateur_smahat.pdf
ThoughtlessTv
 
memoires_ch7.ppt
memoires_ch7.pptmemoires_ch7.ppt
memoires_ch7.ppt
nadir89
 
ch7_memoires.ppt
ch7_memoires.pptch7_memoires.ppt
ch7_memoires.ppt
amine17157
 
0081-cours-systemes-exploitations.ppt
0081-cours-systemes-exploitations.ppt0081-cours-systemes-exploitations.ppt
0081-cours-systemes-exploitations.ppt
DenisKouakou1
 
Formation Informatique base et généralités
Formation Informatique base et généralitésFormation Informatique base et généralités
Formation Informatique base et généralités
Sinovatia
 
Système d’exploitation: Principe
Système d’exploitation: PrincipeSystème d’exploitation: Principe
Système d’exploitation: Principe
Souhaib El
 
Chapitre 2 - Structure de base d_un ordinateur.pdf
Chapitre 2 - Structure de base d_un ordinateur.pdfChapitre 2 - Structure de base d_un ordinateur.pdf
Chapitre 2 - Structure de base d_un ordinateur.pdf
YounesAziz3
 
1173793reseauxinformatiquefpptmarocmr.ppt
1173793reseauxinformatiquefpptmarocmr.ppt1173793reseauxinformatiquefpptmarocmr.ppt
1173793reseauxinformatiquefpptmarocmr.ppt
achrafelbouzidi2
 
Cours système d’exploitation partie1
Cours système d’exploitation partie1Cours système d’exploitation partie1
Cours système d’exploitation partie1
manou2008
 
1514117367383.pptx
1514117367383.pptx1514117367383.pptx
1514117367383.pptx
BenFradjHajer1
 
1514117367383.pptx
1514117367383.pptx1514117367383.pptx
1514117367383.pptx
MahdiHERMASSI1
 
Les systemes-dexploitation
Les systemes-dexploitationLes systemes-dexploitation
Les systemes-dexploitation
mohamedramibelhadj
 
chapitre0.pptx
chapitre0.pptxchapitre0.pptx
chapitre0.pptx
BenFradjHajer1
 
Need it help in Operating System quiz(computer language) and in some course
Need it help in Operating System quiz(computer language) and in some courseNeed it help in Operating System quiz(computer language) and in some course
Need it help in Operating System quiz(computer language) and in some course
Douria Zohbi
 
System d\'exploitation
System d\'exploitationSystem d\'exploitation
System d\'exploitation
Thắng Thao
 
Présentation1.pptx
Présentation1.pptxPrésentation1.pptx
Présentation1.pptx
nmercadopsapamp
 
ICDL MODULE 1 Lesson 2
ICDL MODULE 1 Lesson 2ICDL MODULE 1 Lesson 2
ICDL MODULE 1 Lesson 2
YACINE MESSAOUI
 
Architecture des ordinateurs(Présentation).pptx
Architecture des ordinateurs(Présentation).pptxArchitecture des ordinateurs(Présentation).pptx
Architecture des ordinateurs(Présentation).pptx
olayaElbaida
 
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdfCours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
MedBechir
 

Similaire à Système de gestion des fichiers de amine (20)

esi1an_lessons_archi-vue_ensemble_oridnateur_smahat.pdf
esi1an_lessons_archi-vue_ensemble_oridnateur_smahat.pdfesi1an_lessons_archi-vue_ensemble_oridnateur_smahat.pdf
esi1an_lessons_archi-vue_ensemble_oridnateur_smahat.pdf
 
memoires_ch7.ppt
memoires_ch7.pptmemoires_ch7.ppt
memoires_ch7.ppt
 
ch7_memoires.ppt
ch7_memoires.pptch7_memoires.ppt
ch7_memoires.ppt
 
0081-cours-systemes-exploitations.ppt
0081-cours-systemes-exploitations.ppt0081-cours-systemes-exploitations.ppt
0081-cours-systemes-exploitations.ppt
 
Formation Informatique base et généralités
Formation Informatique base et généralitésFormation Informatique base et généralités
Formation Informatique base et généralités
 
Système d’exploitation: Principe
Système d’exploitation: PrincipeSystème d’exploitation: Principe
Système d’exploitation: Principe
 
Ch7 memoires
Ch7 memoiresCh7 memoires
Ch7 memoires
 
Chapitre 2 - Structure de base d_un ordinateur.pdf
Chapitre 2 - Structure de base d_un ordinateur.pdfChapitre 2 - Structure de base d_un ordinateur.pdf
Chapitre 2 - Structure de base d_un ordinateur.pdf
 
1173793reseauxinformatiquefpptmarocmr.ppt
1173793reseauxinformatiquefpptmarocmr.ppt1173793reseauxinformatiquefpptmarocmr.ppt
1173793reseauxinformatiquefpptmarocmr.ppt
 
Cours système d’exploitation partie1
Cours système d’exploitation partie1Cours système d’exploitation partie1
Cours système d’exploitation partie1
 
1514117367383.pptx
1514117367383.pptx1514117367383.pptx
1514117367383.pptx
 
1514117367383.pptx
1514117367383.pptx1514117367383.pptx
1514117367383.pptx
 
Les systemes-dexploitation
Les systemes-dexploitationLes systemes-dexploitation
Les systemes-dexploitation
 
chapitre0.pptx
chapitre0.pptxchapitre0.pptx
chapitre0.pptx
 
Need it help in Operating System quiz(computer language) and in some course
Need it help in Operating System quiz(computer language) and in some courseNeed it help in Operating System quiz(computer language) and in some course
Need it help in Operating System quiz(computer language) and in some course
 
System d\'exploitation
System d\'exploitationSystem d\'exploitation
System d\'exploitation
 
Présentation1.pptx
Présentation1.pptxPrésentation1.pptx
Présentation1.pptx
 
ICDL MODULE 1 Lesson 2
ICDL MODULE 1 Lesson 2ICDL MODULE 1 Lesson 2
ICDL MODULE 1 Lesson 2
 
Architecture des ordinateurs(Présentation).pptx
Architecture des ordinateurs(Présentation).pptxArchitecture des ordinateurs(Présentation).pptx
Architecture des ordinateurs(Présentation).pptx
 
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdfCours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
 

Dernier

Auguste Herbin.pptx Peintre français
Auguste   Herbin.pptx Peintre   françaisAuguste   Herbin.pptx Peintre   français
Auguste Herbin.pptx Peintre français
Txaruka
 
MÉDIATION ORALE - MON NOUVEL APPARTEMENT.pdf
MÉDIATION ORALE - MON NOUVEL APPARTEMENT.pdfMÉDIATION ORALE - MON NOUVEL APPARTEMENT.pdf
MÉDIATION ORALE - MON NOUVEL APPARTEMENT.pdf
lebaobabbleu
 
GUIDE POUR L’EVRAS BALISES ET APPRENTISSAGES
GUIDE POUR L’EVRAS BALISES ET APPRENTISSAGESGUIDE POUR L’EVRAS BALISES ET APPRENTISSAGES
GUIDE POUR L’EVRAS BALISES ET APPRENTISSAGES
DjibrilToure5
 
Bonnard, Pierre et Marthe.pptx
Bonnard,     Pierre     et    Marthe.pptxBonnard,     Pierre     et    Marthe.pptx
Bonnard, Pierre et Marthe.pptx
Txaruka
 
1e geo metropolisation metropolisation x
1e geo metropolisation metropolisation x1e geo metropolisation metropolisation x
1e geo metropolisation metropolisation x
NadineHG
 
Compréhension orale La famille de Sophie (12).pdf
Compréhension orale  La famille de Sophie (12).pdfCompréhension orale  La famille de Sophie (12).pdf
Compréhension orale La famille de Sophie (12).pdf
lebaobabbleu
 
A1- Compréhension orale - présentations.pdf
A1- Compréhension orale - présentations.pdfA1- Compréhension orale - présentations.pdf
A1- Compréhension orale - présentations.pdf
lebaobabbleu
 
1e Espaces productifs 2024.Espaces productif
1e Espaces productifs 2024.Espaces productif1e Espaces productifs 2024.Espaces productif
1e Espaces productifs 2024.Espaces productif
NadineHG
 

Dernier (8)

Auguste Herbin.pptx Peintre français
Auguste   Herbin.pptx Peintre   françaisAuguste   Herbin.pptx Peintre   français
Auguste Herbin.pptx Peintre français
 
MÉDIATION ORALE - MON NOUVEL APPARTEMENT.pdf
MÉDIATION ORALE - MON NOUVEL APPARTEMENT.pdfMÉDIATION ORALE - MON NOUVEL APPARTEMENT.pdf
MÉDIATION ORALE - MON NOUVEL APPARTEMENT.pdf
 
GUIDE POUR L’EVRAS BALISES ET APPRENTISSAGES
GUIDE POUR L’EVRAS BALISES ET APPRENTISSAGESGUIDE POUR L’EVRAS BALISES ET APPRENTISSAGES
GUIDE POUR L’EVRAS BALISES ET APPRENTISSAGES
 
Bonnard, Pierre et Marthe.pptx
Bonnard,     Pierre     et    Marthe.pptxBonnard,     Pierre     et    Marthe.pptx
Bonnard, Pierre et Marthe.pptx
 
1e geo metropolisation metropolisation x
1e geo metropolisation metropolisation x1e geo metropolisation metropolisation x
1e geo metropolisation metropolisation x
 
Compréhension orale La famille de Sophie (12).pdf
Compréhension orale  La famille de Sophie (12).pdfCompréhension orale  La famille de Sophie (12).pdf
Compréhension orale La famille de Sophie (12).pdf
 
A1- Compréhension orale - présentations.pdf
A1- Compréhension orale - présentations.pdfA1- Compréhension orale - présentations.pdf
A1- Compréhension orale - présentations.pdf
 
1e Espaces productifs 2024.Espaces productif
1e Espaces productifs 2024.Espaces productif1e Espaces productifs 2024.Espaces productif
1e Espaces productifs 2024.Espaces productif
 

Système de gestion des fichiers de amine

  • 1. Systèmes d’Exploitation I Chapitre IV : Système de Gestion des Fichiers Amine DHRAIEF 1ère année ESEN, Université de la Manouba
  • 2. 18/04/18 OS I 2 À quoi ressemble un disque dur ?
  • 3. 18/04/18 OS I 3 Structure physique d'un disque dur
  • 4. 18/04/18 OS I 4 Structure physique d'un disque dur A : plateau ; B : bras ; C : tête ; D : cylindre ; E : piste ; F : secteur géométrique Source : Wikimedia Commons
  • 5. 18/04/18 OS I 5 Structure physique d'un disque dur (A) piste, (B) secteur géométrique, (C) secteur d'une piste, (D) bloc Source : Wikimedia Commons Le secteur (ou bloc) est la plus petite unité physique de stockage sur un support de donnée Sa taille varie de 512 octets à 4096 octets
  • 6. 18/04/18 OS I 6 Géométrie d'un disque dur Adressage CHS : Cylinder/Head/Sector ● Cylindre: superposition de plusieurs pistes – Les pistes au dessus les unes des autres sont accessibles sans bouger les têtes de lecture
  • 7. 18/04/18 OS I 7 Géométrie d'un disque dur Adressage CHS : Cylinder/Head/Sector ● Head: – Les têtes de lecture/enregistrement sont solidaires des bras mobiles – Le plus souvent il y a une tête par surface soit deux par plateau – Le chemin parcouru par une tête particulière sur un cylindre particulier s'appelle une piste ● Secteur : – La piste est divisée en secteurs (aussi appelés blocs) contenant les données. – La taille d'une piste diminue en allant vers le centre du disque → le nombre de secteur par piste diminue aussi en allant vers le centre – Taille d'un secteur plus commune= 512 octets
  • 8. 18/04/18 OS I 8 Géométrie d'un disque dur Adressage CHS : Cylinder/Head/Sector ● L'adresse CHS est simplement constituée par l'assemblage des trois composants décrits ci- dessus. – Le tout premier secteur d'un disque est à l'adresse 0 / 0 / 1 : c'est le premier secteur accédé par la première tête positionnée sur le premier cylindre. – Le suivant sera 0 / 0 / 2 (ce secteur est naturellement atteint juste après par la même tête)
  • 9. 18/04/18 OS I 9 Taille d'un disque ● Taille d'un disque = (Nombre de cylindre) x (Nombre de piste par cylindre) x (Nombre moyen de secteur par piste) x (Taille du secteur) ● Exemple= – Nombre de piste par cylindre 255 – Nombre de cylindre = 36481 – Nombre moyen de secteur par piste = 63 – Taille du secteur = 512 octets – Taille du disque ≈ 300 GB (255 * 36481 * 63 * 512 = 300066439680 octets)
  • 10. 18/04/18 OS I 10 Pourquoi a-t-on besoin de fichiers ?
  • 11. 18/04/18 OS I 11 Définition d'un fichier ● Toutes les applications informatiques doivent enregistrer et retrouver des informations. ● L’espace d’adressage étant insuffisant, on utilise des fichiers pour cela. ● Fichier (nom masculin) – Meuble, boîte servant à recevoir des fiches. – Ensemble de données regroupées en une unité indépendante de traitement informatique.
  • 12. 18/04/18 OS I 12 Définition #1 : Dictionnaire Larousse ● Fichier (nom masculin) : Ensemble organisé d'informations, désigné par un nom précis, que le système d'exploitation d'un ordinateur manipule comme une simple entité, dans sa mémoire ou sur un support de stockage.
  • 13. 18/04/18 OS I 13 Définition #2 : Wikipedia ● Un fichier informatique est au sens commun, une collection, un ensemble de données numériques réunies sous un même nom, enregistrées sur un support de stockage permanent, appelé mémoire de masse, tel qu'un disque dur, un CD-ROM, une mémoire flash ou une bande magnétique, et manipulées comme une unité.
  • 14. 18/04/18 OS I 14 Information indépendante du processus ● Un processus en cours d’exécution peut enregistrer une quantité d’informations dans son espace d’adressage mais cette façon de faire présente trois inconvénients : 1)La capacité de stockage est limitée à la mémoire vive. Cette taille peut convenir pour certaines applications, mais elle est beaucoup trop faible pour d’autres (applications des banques, réservations, téléchargement p2p,...) 2)Les informations stockées en mémoire vive sont perdues, lorsque le processus se termine ou lors du plantage de l'ordinateur. Pour un grand nombre d'applications, les informations doivent être conservées pendant des durées importantes. 3)Il ne peut pas y avoir d’accès simultané à ces informations. Un répertoire téléphonique stocké dans l’espace d’adressage d’un processus ne peut être examiné que par ce seul processus (pour les raisons de protection des données expliquées lors de l’étude des processus), de telle sorte qu’on ne peut rechercher qu’un seul numéro à la fois. → Pour résoudre ce problème, il faut rendre l’information indépendante d’un processus donné.
  • 15. 18/04/18 OS I 15 Stockage à long terme des informations Trois caractéristiques sont donc requises pour le stockage des informations à long terme : 1) Il faut pouvoir stocker des informations de très grande taille ; 2) Les informations ne doivent pas disparaître lorsque le processus qui les utilise se termine ; 3) Plusieurs processus doivent pouvoir accéder simultanément aux informations.
  • 16. 18/04/18 OS I 16 Fichiers = solution au problème ● La solution à tous ces problèmes consiste à stocker les informations dans des fichiers sur des disques ou d’autres supports. – Les processus peuvent alors les lire ou en écrire de nouvelles. ● Les informations stockées dans des fichiers doivent être permanentes, c’est-à- dire non affectées par la création ou la fin d’un processus. ● Un fichier ne doit disparaître que lorsque son propriétaire le supprime explicitement.
  • 17. 18/04/18 OS I 17 Disque= suite de blocs ● Nous considérons un disque comme une suite séquentielle de blocs de taille fixe qui supportent deux opérations – Lire le bloc k – Écrire le bloc k → Ces deux opérations permettent en principe de résoudre le stockage à long terme des informations.
  • 18. 18/04/18 OS I 18 Des questions évidentes ● Voici quelques questions que l'on se pose rapidement : 1)Comment trouve-t-on l'information ? 2)Comment empêche-t-on un utilisateur de lire les données d'un autre utilisateur ? 3)Comment sait-on qu'un bloc est libre ?
  • 19. 18/04/18 OS I 19 Vie et mort d'un fichier ● Le fichier (file) est l'unité d'information qui est créée par un processus. ● L'information enregistrée dans des fichier doit être persistante → c'est-à-dire qu'elle ne doit pas être affectée par la création ou la fin d'un processus ● Un fichier doit disparaître quand son propriétaire le demande expressément
  • 20. 18/04/18 OS I 20 Qui les gère alors ? ● Les fichiers sont gérés par le système d’exploitation. ● La façon dont ils sont structurés, nommés, utilisés, protégés et implémentés sont des points majeurs de la conception du système d’exploitation. ● La partie du système d’exploitation qui gère les fichiers est appelée le gestionnaire du système de fichiers (en anglais file system)
  • 21. 18/04/18 OS I 21 Les fichiers
  • 22. 18/04/18 OS I 22 Les fichiers du point de vue utilisateur ● Le système de fichiers est la partie la plus visible d’un système d’exploitation. – La plupart des programmes lisent ou écrivent au moins un fichier, et les utilisateurs manipulent beaucoup de fichiers. – De nombreuses personnes jugent un système d’exploitation sur la qualité de son système de fichiers : son interface, sa structure et sa fiabilité.
  • 23. 18/04/18 OS I 23 Les fichiers du point de vue utilisateur ● L’utilisateur attache la plus grande importance à l’interface d’un système de fichiers, c’est-à-dire à la manière de nommer les fichiers, de les protéger, aux opérations permises sur eux, etc. – Il est moins important pour lui de connaître les détails de son implémentation, c’est-à-dire de connaître le nombre de secteurs d’un bloc logique ou de savoir si l’on utilise des listes chaînées ou des tables de bits pour mémoriser les emplacements libres. – Ces points sont, en revanche, fondamentaux pour le concepteur du système de fichiers.
  • 24. 18/04/18 OS I 24 Nom d’un fichier : Pourquoi ? ● Les fichiers sont un mécanisme d'abstraction. – Ils permettent d’écrire des informations sur le disque et de les lire ultérieurement. ● Ceci doit être fait de manière à masquer le fonctionnement et l’emplacement de stockage des informations à l’utilisateur. – Il ne doit pas avoir à choisir tel ou tel secteur, par exemple. ● La gestion et l’affectation des noms des objets sont les parties les plus importantes d’un mécanisme abstrait. – Un processus qui crée un fichier lui attribue un nom. – Lorsque le processus se termine, le fichier existe toujours et un autre processus peut y accéder au moyen de ce nom.
  • 25. 18/04/18 OS I 25 Nom d’un fichier : Règles de formation ? ● Les règles d’affectation des noms de fichiers varient d’un système à un autre, mais tous les systèmes d’exploitation autorisent les noms de fichiers constitués de chaînes de un à huit caractères non accentués. – Ainsi « tunis » et «ariana » sont des noms de fichiers valides. – Les chiffres et des caractères spéciaux sont quelquefois autorisés. Ainsi « 2 », « urgent! » et « Fig.2-14 » peuvent être des noms valides. ● Certains systèmes de fichiers différencient les lettres majuscules et minuscules alors que d’autres ne le font pas. – Unix fait partie de la première catégorie et MS-DOS de la deuxième. – Les noms suivants désignent donc des fichiers distincts sur un système Unix : « tunis », «Tunis» et « TUNIS». – Sur MS-DOS, ils désignent le même fichier.
  • 26. 18/04/18 OS I 26 Nom de fichier: extension ● De nombreux systèmes d’exploitation gèrent des noms en deux parties, les deux parties étant séparées par un point, comme dans « prog.c ». La partie qui suit le point est alors appelée extension ; elle donne en général une indication sur la nature du fichier. – Sous MS-DOS, par exemple, les noms de fichiers comportent 1 à 8 caractères éventuellement suivis d’une extension de 1 à 3 caractères. – Sous Unix, la taille de l’extension éventuelle est libre, le fichier pouvant même avoir plus d’une extension comme dans « prog.c.Z ». ● Dans certains cas, les extensions sont simplement des conventions et ne sont pas contrôlées. Un fichier « fichier.txt » est vraisemblablement un fichier texte, mais ce nom est destiné davantage au propriétaire du fichier qu’au système d’exploitation. En revanche, certains compilateurs C imposent l’extension « .c » à tous les fichiers à compiler
  • 27. 18/04/18 OS I 27 La structure des fichiers ● Les fichiers peuvent être structurés de différentes manières – Suite d'octets – Suite enregistrement – Arbre
  • 28. 18/04/18 OS I 28 Fichier= suite d'octets ● Le fichier est une suite d'octets sans structure – Le système d'exploitation ne connaît pas et ne s'occupe pas du contenu de ce fichier – Il ne voit que des octets – Toute signification doit être apporté par le programme des utilisateurs – UNIX et Windows suivent tout deux cette approche 1 octet
  • 29. 18/04/18 OS I 29 Fichier= suite d'enregistrements ● Le fichier est une suite d'enregistrements de longueur fixe – Concept principal : une opération de lecture renvoie un enregistrement/une opération d’écriture réécrit ou ajoute un enregistrement – 80 caractère → carte perforées de 80 colonnes – 132 caractères → imprimantes de 132 colonnes – Les programmes lisaient les données par bloc de 80 caractère est écrivaient par bloc de 132 caractères – Obsolète
  • 30. 18/04/18 OS I 30 Fichier= arbre ● Le fichier est un arbre d'enregistrement – Les enregistrements n'ont pas la même longueur – Chaque enregistrement contient une clé dont la position est fixe dans l'enregistrement – L'arbre est trié en fonction des clés → permet de rechercher rapidement une clé donnée – L'opération fondamentale ne consiste pas à obtenir le prochain enregistrement, mais obtenir un enregistrement avec une clé donnée
  • 31. 18/04/18 OS I 31 Les types de fichiers ● La plupart des systèmes d'exploitation supportent plusieurs types de fichiers – UNIX est Windows ont des fichiers ordinaires et des répertoires – UNIX traite aussi des fichiers spéciaux caractère et bloc ● Les fichiers ordinaires (regular files) sont ceux qui contiennent les informations des utilisateurs. Ils sont soit des fichiers en code ASCII, soit des fichiers binaires. ● Les répertoires (directories) sont des fichiers systèmes qui conservent la structure du système de fichiers ● Les fichiers spéciaux caractère (character special files) sont liés aux périphériques entrées/sorties ● Les fichiers spéciaux bloc (block special files) servent à modéliser les disques.
  • 32. 18/04/18 OS I 32 Les fichiers ASCII ● Les fichiers ASCII se composent de lignes de texte – Chaque ligne se termine par le caractère retour chariot (CR : Carriage Return) ou le caractère saut de ligne (LF : Line Feed) – On peut les afficher et les éditer avec n'importe quel éditeur de texte
  • 33. 18/04/18 OS I 33 Les fichiers binaires ● Ce ne sont pas des fichiers ASCII ! – Si on les affiche cela donne un résultat incompréhensible – Ils possèdent une structure interne connue des programme qui les exploitent ● Bien que techniquement le fichier soit juste une structure d'octets, le système d'exploitation exécutera ce fichier seulement s'il possède un certain format
  • 34. 18/04/18 OS I 34 Les fichiers binaires ● Un fichier binaire comporte généralement cinq parties : – L'en-tête (header) – Le code – Les données – Les bits de translation (relocation) – La table des symboles
  • 35. 18/04/18 OS I 35 Les fichiers binaires ● Le début de l'en-tête est un nombre magique (Magic number) – C'est une valeur qui identifie le fichier comme étant un fichier exécutable – Pour éviter l’exécution accidentelle d'un fichier qui ne possède pas ce format
  • 36. 18/04/18 OS I 36 Les fichiers binaires ● Le code et les données du programme lui même suivent l'en- tête – Ils sont chargés en mémoire et déplacés à l'aide des bits de translation
  • 37. 18/04/18 OS I 37 L'accès au fichiers : accès séquentiel ● Les premiers systèmes d'exploitation proposaient un seul type d'accès au fichiers : l'accès séquentiel (sequential access). – Dans ce système, un processus pouvait lire tous les octets ou tous les enregistrements d'un fichier dans l'ordre en commençant au début – Les fichiers séquentiels étaient pratiques quand le support de stockage était une bande magnétique .
  • 38. 18/04/18 OS I 38 L'accès au fichiers : accès aléatoire ● Lorsque les disques ont servi à l'enregistrement des fichiers, il est devenu possible de lire des octets ou des enregistrement d'un fichier dans n'importe quel ordre ● Les fichiers dont les octets ou les enregistrements peuvent être lus dans n'importe quel ordre sont appelés fichier à accès directe ou accès aléatoire (random access)
  • 39. 18/04/18 OS I 39 Les attributs des fichiers ● Chaque fichier possède un nom et des données. ● Les systèmes d'exploitation associent des informations complémentaire : – l'heure et la date de sa création et sa taille → Ces informations sont appelés les attributs du fichier (file's attributes) ou metadonnées (metadata)
  • 40. 18/04/18 OS I 40 Les attributs des fichiers
  • 41. 18/04/18 OS I 41 Les opérations sur les fichiers ● Create ● Delete ● Open ● Close ● Read ● Write ● Append ● Seek ● Get atributes ● Set attributes ● Rename
  • 42. 18/04/18 OS I 43 Les répertoires
  • 43. 18/04/18 OS I 44 Les répertoires : des fichiers comme d'autres ? ● Pour conserver une trace des fichiers, les systèmes de fichiers possèdent généralement des répertoires (directory) ou des dossiers (folders) ● Les répertoires sont eux mêmes des fichiers dans nombre de systèmes
  • 44. 18/04/18 OS I 45 Les répertoires sous UNIX ● Sur un système Unix les fichiers sont organisés, du point de vue de l’utilisateur, selon un domaine de nommage structuré en arbre, et dont les éléments principaux sont les répertoires et les chemins. home / etc bin dev mnt media amine
  • 45. 18/04/18 OS I 46 Les répertoires ● Chaque nœud de l’arbre, hormis les feuilles, est un répertoire ● Le répertoire correspondant à la racine de l’arbre est appelé le répertoire racine (root directory en anglais). Par convention, son nom est une oblique « / » (slash en anglais). ● Les noms de fichiers d’un même répertoire doivent être différents, mais le même nom peut être utilisé dans des répertoires différents
  • 46. 18/04/18 OS I 47 Les chemins d'accès : absolue ou relatif ● Pour identifier un fichier particulier, on utilise un chemin (path en anglais), c’est-à-dire la suite des noms des répertoires qui conduisent au fichier, séparés par des obliques. ● Si le premier élément de départ est une barre oblique, le chemin est dit absolu (absolute path name). Son point de départ est alors le répertoire racine. – Exemple : /home/amine/Dropbox/Cours/Cours-ESEN/L1-OS-I/ ● Sinon (le premier élément est un nom de répertoire ou le nom du fichier lui- même), le chemin est dit relatif : son point de départ est alors le répertoire de travail courant du processus en cours, répertoire qui lui est associé lors de sa création. – Exemple : Dropbox/Cours/Cours-ESEN/L1-OS-I/
  • 47. 18/04/18 OS I 48 Les répertoires spéciaux ● Chaque répertoire contient au moins deux répertoires, notés « . » et « .. » : ils représentent respectivement le répertoire courant et son répertoire parent. ● Dans le cas du répertoire racine, ils coïncident.
  • 48. 18/04/18 OS I 49 Dessine moi un système de fichiers ?
  • 49. 18/04/18 OS I 50 La conception des systèmes de fichiers utilisateur vs. concepteur ● Nous examinons maintenant le système de fichiers du point de vue du concepteur. ● Les utilisateurs se préoccupent des noms des fichiers, des opérations qui permettent de les manipuler, de l’arborescence des fichiers, ... ● Les concepteurs portent d'avantage leur attention sur l’organisation de l’espace du disque et sur la manière dont les fichiers et les répertoires sont sauvegardés. → Ils recherchent un fonctionnement efficace et fiable
  • 50. 18/04/18 OS I 51 L'organisation du système de fichier rôle de l'MBR ● Les systèmes de fichiers sont enregistrés sur des disques. ● Les disques peuvent être divisés en une ou plusieurs partitions, avec des systèmes de fichiers indépendants sur chaque partition. ● Le secteur 0 du disque appelé enregistrement d'amorçage maître (MBR – Master Boot Record) sert à amorcer la machine ● La fin du MBR comprend la table de partitions, laquelle indique l'adresse de début et de fin de chaque partition – Une de ces partitions est marquée comme étant la partition active
  • 51. 18/04/18 OS I 52 L'organisation du système de fichier le bloc d'amorçage ● Quand l’ordinateur est amorcé, le BIOS lit et exécute le MBR – Le programme MBR détermine la partition active, y lit le premier bloc appelé bloc d'amorçage (boot block) et l'exécute ● Le programme du bloc d'amorçage charge le système d'exploitation contenu dans cette partition
  • 52. 18/04/18 OS I 53 L'organisation du système de fichier ● Pour une question d'uniformité, chaque partition commence un bloc d'amorçage, même si elle ne contient pas de système d'exploitation – Elle pourrait en contenir un ultérieurement ● Une organisation possible d'un système de fichiers
  • 53. 18/04/18 OS I 54 L'organisation du système de fichier le superbloc ● Après le bloc de boot, vient généralement le superbloc (superblock) – Contient tout les paramètres clé concernant le système de fichier – Contient un numéro magique qui identifie le type de système de fichier
  • 54. 18/04/18 OS I 55 Organisation logicielle de l’espace du disque ● Les fichiers étant habituellement sauvegardés sur des disques, l’organisation logicielle de l’espace du disque est primordiale pour les concepteurs de systèmes de fichiers. ● Celle-ci porte sur la stratégie de stockage, sur la taille des blocs et sur la façon de repérer les blocs libres.
  • 55. 18/04/18 OS I 56 Organisation logicielle de l’espace du disque Stratégie de stockage ● Il existe deux stratégies pour stocker un fichier de n octets : – on alloue n octets consécutifs sur le disque – ou on divise le fichier en plusieurs blocs (pas nécessairement contigus/adjacents). ● Si l’on sauvegarde un fichier sur un nombre contigu d’octets, on doit le déplacer chaque fois que sa taille augmente (ce qui arrive fréquemment). ● La plupart des concepteur systèmes de fichiers préfèrent donc stocker les fichiers dans plusieurs blocs de taille fixe, pas nécessairement adjacents.
  • 56. 18/04/18 OS I 57 Organisation de l’espace du disque Taille des blocs ● Il faut alors déterminer la taille optimale d’un bloc. ● Le compromis habituellement adopté consiste à prendre des blocs de 512 octets, 1 Ko ou 2 Ko. ● Si l’on prend des blocs de 1 Ko sur un disque dont les secteurs font 512 octets, le système de fichiers lit et écrit deux secteurs consécutifs en les considérant comme un ensemble unique et indivisible, appelé unité d’allocation (cluster).
  • 57. 18/04/18 OS I 58 Organisation de l’espace du disque Repérage des blocs libres ● Dès qu’on a choisi la taille des blocs, on doit trouver un moyen de mémoriser les blocs libres ● Les deux méthodes les plus répandues sont – Liste chaînée – Table de bits
  • 58. 18/04/18 OS I 59 Organisation de l’espace du disque Repérage des blocs libres
  • 59. 18/04/18 OS I 60 Organisation de l’espace du disque Repérage des blocs libres ● La première méthode consiste à utiliser une liste chaînée des blocs du disque, chaque bloc contenant des numéros de blocs libres. ● La deuxième technique de gestion des espaces libres a recours à une table de bits, chaque bit représentant un bloc et valant 1 si le bloc est occupé (ou libre suivant le système d’exploitation). – Un disque de n blocs requiert une table de n bits.
  • 60. 18/04/18 OS I 61 Organisation de l’espace du disque Repérage des blocs libres - liste chaînée ● Considérons un disque dur de 500GB. Une taille d'un bloc de 1KB. → Le disque contient 524 millions de bloc (500*1024*1024= 524 288 000) ● Le numéro de bloc codée sur 32 bits. Taille d'un élément de la liste chaînée = un bloc contiendra 256 numéros de bloc libres – Nombre de numéro de bloc libre que peut contenir un bloc de 1Ko = Taille d'un bloc en bit / taille du numéro du bloc (1024 octet*8 bit /32 bits) ● Pour adresser tous les blocs du disque dur (524 millions de numéro de blocs) on a besoin de (524 288 000 / 256 = 2 048 000 blocs) → 2 millions de blocs !!!!
  • 61. 18/04/18 OS I 62 Organisation de l’espace du disque Repérage des blocs libres – table de bit ● Considérons un disque dur de 500GB. Une taille d'un bloc de 1KB. → Le disque contient 524 millions de bloc (500*1024*1024) ● 1 bloc est représenté par un bit → taille max de la table de bit = 524 millions de bits = (524/8) / 1024 = 64000 Ko = 64000 blocs ● Pour adresser tous les blocs du disque dur → 64000 bloc
  • 62. 18/04/18 OS I 63 Les méthodes de stockage des fichiers ● Les fichiers étant constitués d’un certain nombre de blocs, le système de fichiers doit mémoriser les blocs des différents fichiers. ● Le principe fondamental pour stocker un fichier est de mémoriser l’adresse des blocs le constituant. ● Différentes méthodes sont utilisées pour cela : – allocation contiguë, – allocation par liste chaînée, – allocation par liste chaînée indexée – et nœud d’information (i-node)
  • 63. 18/04/18 OS I 64 Stockage des fichiers Allocation contiguë ● La méthode d’allocation la plus simple consiste à stocker chaque fichier dans une suite de blocs consécutifs. Un fichier de 50 Ko, par exemple, occupera 50 blocs consécutifs sur un disque dont la taille des blocs est 1 Ko. ● Cette méthode a deux avantages importants : 1)Elle est simple à mettre en œuvre puisqu’il suffit de mémoriser un nombre, l’adresse du premier bloc, pour localiser le fichier. 2)Les performances sont excellentes puisque tout le fichier peut être lu en une seule opération. → Aucune autre méthode d’allocation ne peut l’égaler.
  • 64. 18/04/18 OS I 65 Stockage des fichiers Allocation contiguë ● Malheureusement, l’allocation contiguë présente également deux inconvénients importants : – Premièrement, elle ne peut être mise en œuvre que si la taille maximum du fichier est connue au moment de sa création. ● Sans cette information, le système d’exploitation ne peut pas déterminer l’espace à réserver sur le disque. ● Dans les systèmes où les fichiers doivent être écrits en une seule opération, elle peut néanmoins être avantageusement utilisée. – Le deuxième inconvénient est la fragmentation du disque qui découle de cette politique d’allocation. ● Elle gaspille de l’espace sur le disque. ● Le compactage du disque peut y remédier mais il est en général coûteux. Il peut cependant être réalisé la nuit lorsque le système n’est pas chargé.
  • 65. 18/04/18 OS I 66 Stockage des fichiers Allocation contiguë (a) Allocation contiguë de l'espace disque pour 7 fichier (b) L'état du disque après suppression des fichiers D et F
  • 66. 18/04/18 OS I 67 Stockage des fichiers Allocation par liste chaînée ● La deuxième méthode consiste à sauvegarder les blocs des fichiers dans une liste chaînée. Le premier mot de chaque bloc, par exemple, est un pointeur sur le bloc suivant. Le reste du bloc contient les données. ● Cette méthode possède les avantages suivants : – Contrairement à l’allocation contiguë, tous les blocs peuvent être utilisés → Il n’y a pas d’espace perdu en raison d’une fragmentation du disque. – L’entrée du répertoire stocke simplement l’adresse du premier bloc. Les autres blocs sont trouvés à partir de celui-là. ● Elle possède également des inconvénients : – Si la lecture séquentielle d’un fichier est simple, l’accès direct est extrêmement lent. – Le pointeur sur le bloc suivant occupant quelques octets → l’espace réservé aux données dans chaque bloc n’est plus une puissance de deux. ● Ceci est moins efficace car de nombreux programmes lisent et écrivent des blocs dont la taille est une puissance de deux.
  • 67. 18/04/18 OS I 68 Stockage des fichiers Allocation par liste chaînée
  • 68. 18/04/18 OS I 69 Stockage des fichiers Allocation par liste chaînée indexée ● Les inconvénients de l’allocation au moyen d’une liste chaînée peuvent être éliminés en retirant le pointeur de chaque bloc pour le placer dans une table ou en index en mémoire. MS- DOS utilise cette méthode avec la FAT (File Allocation Table). ● Cette méthode possède les avantages suivants : – Elle libère intégralement l’espace du bloc pour les données → Elle facilite les accès directs. ● La liste doit toujours être parcourue pour trouver un déplacement donné dans le fichier, mais elle réside entièrement en mémoire et peut être parcourue sans accéder au disque. – Comme pour la méthode précédente, l’entrée du répertoire contient un seul entier (le numéro du premier bloc) qui permet de retrouver tous les autres blocs quelle que soit la taille du fichier.
  • 69. 18/04/18 OS I 70 Stockage des fichiers Allocation par liste chaînée indexée Le fichier A utilise les blocs 4,7 2 10 et 12 Le fichier B utilise les blocs 6,3 11 et 14
  • 70. 18/04/18 OS I 71 Stockage des fichiers Allocation par liste chaînée indexée ● Le principal inconvénient de cette méthode vient du fait que la table doit résider entièrement en mémoire en permanence. ● Un grand disque de 500 000 blocs requiert 500 000 entrées dans la table qui occupent chacune 4 octets dans le cas de FAT32. La table occupera 2 Mo en mémoire
  • 71. 18/04/18 OS I 72 Stockage des fichiers Nœuds d’information i-node ● Pour mémoriser quel bloc appartient à quel fichier, une dernière méthode consiste à associer à chaque fichier un structure de donnée appelée nœud d'index ou i-node. ● Un i-node inclut 1)les attributs 2)et les adresses disque des blocs du fichier ● En fonction de l'i-node il est possible de trouver tous les blocs d'un fichier
  • 72. 18/04/18 OS I 73 Stockage des fichiers: Avantage des i-node ● Le grand avantage de cette conception est que le i- node a besoin d'être en mémoire seulement quand le fichier correspondant est ouvert. – Si chaque i-node occupe n octets – Et un maximum de k fichiers peuvent être ouvert en même temps – La mémoire totale occupée par le tableau contenant les i- nodes des fichiers ouverts est k*n octets → seul cet espace pourra être réservé à l'avance.
  • 73. 18/04/18 OS I 74 Stockage des fichiers: Avantage des i-node ● Le tableau des i-node des fichiers ouverts est plus petit que l'espace occupé par la table du cas de l'allocation par liste chaînée indexée. – La taille de la table de maintient de la liste chaînée croît proportionnellement avec la taille du disque : si le disque contient n blocs la table contient n entrée → elle croît linéairement à mesure que la taille du disque augmente – Le concept de i-node requiert un tableau en mémoire dont la taille est proportionnelle au nombre maximum de fichier qui peuvent être ouvert simultanément → quelque soit la taille du disque
  • 74. 18/04/18 OS I 75 Stockage des fichiers : Problème des i-node ● Les i-nodes posent cependant un problème : – Si chacun d'eux a la place pour un nombre donné d'adresse disque, que se passe-t-il lorsqu'un fichier croît au-delà de cette limite ? – La solution est de réserver la dernière adresse disque, non pour un bloc de données du fichier mais pour l'adresse d'un bloc comprenant plusieurs adresse supplémentaire
  • 75. 18/04/18 OS I 76 Les répertoires dans tout ça ? ● Pour lire un fichier, il faut qu'il soit ouvert ● Quand un fichier est ouvert, le système d'exploitation se sert du chemin d'accès précisé par l'utilisateur afin de rechercher l'entrée du répertoire. ● L'entrée du répertoire fournit les informations nécessaires pour trouver les blocs de disque. Ces informations peuvent être – L'adresse disque du fichier entier (allocation contiguë) – Le numéro du premier bloc (liste chaînée) – Le numéro de l'i-node ● La fonction principale du répertoire est de faire correspondre le nom ASCII du fichier à une information nécessaire pour trouver les données.
  • 76. 18/04/18 OS I 77 Les répertoires dans tout ça ? ● Pour UNIX, les répertoires sont des fichiers et leurs i-nodes mappent les noms de fichiers aux i-node correspondant
  • 77. 18/04/18 OS I 78 Mise en œuvre des répertoires : ou stocker les attributs des fichiers ? ● Chaque système de fichier gère des attributs, tels que le propriétaire de chaque fichier ou sa date de création, et cela doit être stocké quelque part ● Une solution évidente consiste à les stocker directement dans l'entrée du répertoire – Dans cette conception simple, un répertoire consiste en une liste d'entrées dont la taille est fixe, qui correspond chacune à un fichier – Chaque entrée contient le nom du fichier, une structure d’attribut et une ou plusieurs adresses disque précisant les blocs du disque – Approche de Windows
  • 78. 18/04/18 OS I 79 Mise en œuvre des répertoires : ou stocker les attributs des fichiers ? ● Pour les systèmes qui fonctionnent avec les i- nodes, une autre possibilité de stocker les attributs est de le faire dans les i-node plutôt que dans les entrées de répertoires ● Dans ce cas l'entrée du répertoire peut être plus petite et être juste constituée d'un nom de fichier et d'un numéro d'i-node – Approche d 'UNIX
  • 79. 18/04/18 OS I 80 Les fichiers partagés : un besoin ● Lorsque plusieurs utilisateurs travaillent ensemble sur un même projet, ils ont fréquemment besoin de partager des fichiers – Ainsi il est souvent souhaitable qu'un fichier partagé apparaisse simultanément dans différents répertoires qui appartiennent à différents utilisateurs
  • 80. 18/04/18 OS I 81 Exemple de fichier partagé ● Exemple : un des fichiers de l'utilisateur C est présent dans un répertoire de l'utilisateur B. ● La connexion entre le répertoire de B et le fichier partagé est appelé lien (link) ● Le système de fichiers est maintenant l'équivalent d'un graph orienté acyclique ou DAG (Directed Acyclic Graph), plutôt qu'un arbre
  • 81. 18/04/18 OS I 82 Les fichiers partagés : Problèmes ● Même si le partage de fichiers est pratique, ce principe amène néanmoins quelques problèmes – Si les répertoires comprennent réellement les adresses des fichiers sur le disque, une copie des adresses devra être faite dans le répertoire B au moment de la création du lien. – Si l'utilisateur B ou l'utilisateur C modifie le fichier, les nouveaux blocs n’apparaîtront que dans le répertoire de l'utilisateur qui effectué la modification. – Les modifications ne seront pas visibles pour l'autre utilisateur qui est un échec pour un but de partage.
  • 82. 18/04/18 OS I 83 Résolution des problèmes des fichiers partagés ● Ce problème peut être résolu de deux manières. ● Premièrement, les blocs ne sont pas listés dans le répertoires mais dans une petite structure de données associée au fichier lui-même. – Les répertoires pointent simplement sur la petite structure de données. – C'est l’approche utilisée sous UNIX (dans lequel la petite structure de données est l'i-node)
  • 83. 18/04/18 OS I 84 Résolution des problèmes des fichiers partagés ● Deuxièmement, B est lié à l'un des fichiers de C par la création d'un nouveau fichier de type lien, et par le placement de ce fichier dans le répertoire de B. – Le nouveau fichier possède simplement l'accès du fichier avec lequel il est lié – Quand B lit le fichier partagé, le système d'exploitation s'aperçoit qu'il est de type lien, recherche le nom du fichier et le lit. Ce lien s'appelle lien symbolique (symbolic link)
  • 84. 18/04/18 OS I 85 Les fichiers partagés : Inconvénients de la solution ● Chacune de ces méthodes présente des inconvénients ● Dans la première, au moment où B fait le lien avec le fichier partagé, l'i-node indique que c'est l'utilisateur C qui en est le propriétaire, la création d'un lien ne modifie pas le propriétaire, mais elle augment le compteur de liens de l'i-node, de sorte que le système sait combien d'entrées de répertoires pointent à ce moment sur le fichier
  • 85. 18/04/18 OS I 86 Les fichiers partagés : Inconvénients de la solution ● Si l'utilisateur C décide de détruire le fichier, le système est confronté à un problème : – S'il supprime le fichier et efface l'i-node, l'utilisateur B aura une entrée de répertoire qui pointe sur un i-node invalide. – Si cet i-node est réattribué plus tard à un autre fichier, le lien de l'utilisateur B pointera sur un mauvais fichier. ● Le système peut voir que le fichier est encore utilisé d'après le compteur de l'i-node, mais il n'a aucun moyen de déterminer toutes les entrées de répertoire qui contienne ce lien avant de les détruire. – Les pointeurs sur les répertoires ne peuvent pas être stockés dans les i-nodes parce que le nombre des liens peut être illimité
  • 86. 18/04/18 OS I 87 Les fichiers partagés : Inconvénients de la solution ● Il ne reste alors plus qu'à effacer l'entrée du répertoire de C, mais en conservant l'i-node intact, avec un compteur à 1. – l'utilisateur B est le seul utilisateur à avoir une entrée de répertoire sur un fichier dont le propriétaire est C.
  • 87. 18/04/18 OS I 88 Les fichiers partagés : Inconvénients de la solution ● Ce problème ne se produit pas avec les liens symboliques, parce que seul le propriétaire du ficher a un pointeur sur l'i-node de ce fichier – Les utilisateurs qui ont un lien sur un fichier ont uniquement des chemins d'accès ; ils n'ont pas de pointeurs sur l'i-node – Quand le propriétaire efface le fichier, ce dernier est détruit – La destruction d'un lien symbolique n'affecte en rien le fichier
  • 88. 18/04/18 OS I 89 Exemple de systèmes de fichiers
  • 89. 18/04/18 OS I 90 Les systèmes de fichiers de MSDOS : FAT (16/32) ● C'est un système de fichier qui a été utilisé sur les premiers ordinateurs personnels d'IBM – Il est utilisé (FAT32) dans toutes les versions de Windows et dans des appareils embarqués – Il est utilisé par Apple dans ces appareils embarqués (IPod) – Plus utilisé que le système de fichier moderne NTFS (journalisé)
  • 90. 18/04/18 OS I 91 Entrée répertoire MSDOS ● Pour lire un fichier, un programme MS-DOS doit d'abord faire un appel système open afin d'obtenir un descripteur pour ce fichier – un descripteur de fichier est une clé abstraite (un entier) pour accéder à un fichier (stdin=0, stdout=1,stderr=2). ● open a besoin du chemin d'accès, qui peut être absolu ou relatif au répertoire de travail – Ce chemin est parcouru élément par élément jusqu'au répertoire finale. – Le répertoire finale est lu en mémoire. – On y cherche alors le fichier qui peut ensuite être ouvert.
  • 91. 18/04/18 OS I 92 Entrée répertoire MSDOS ● Bien que les répertoires MS-DOS aient des tailles variables, leurs entrées ont une taille fixe de 32 octets ● La figure ci-dessous présente le format d'une entrée de répertoire MS-DOS – Il contient le nom du fichier, ses attributs, la date et l'heure de sa création, son bloc de début et sa taille exacte – 10 bits inutilisé (reseved)
  • 92. 18/04/18 OS I 93 Taille maximale d'un fichier MSDOS ● MS-DOS enregistre la taille exacte du fichier en utilisant un nombre sur 32 bits – Les fichiers peuvent ainsi avoir en théorie une taille maximal de 4Go (2^32 = 4294967296 = 4Go). – Cependant, la taille maximale d'un fichier est limité à 2Go.
  • 93. 18/04/18 OS I 94 MSDOS et FAT ● MS-DOS conserve une trace des blocs de fichiers dans une table d'allocation en mémoire principale – L'entrée du répertoire comprend le numéro du premier bloc – Celui-ce sert de l'index dans les entrées de la FAT (File Allocation Table) de 64 Ko qui présente en mémoire principal – En suivant le chaînage, on peut trouver tous les blocs
  • 94. 18/04/18 OS I 95 FAT 12 – 16 -32 ● Il existe trois versions du système de fichier de type FAT : FAT-12, FAT-16 et FAT-32, selon le nombre de bits d'une adresse disque ● FAT-32 porte mal son nom, puisque seuls les 28 bits de poids faible des adresses disque sont employées. – On aurait dû l'appeler FAT-28 !
  • 95. 18/04/18 OS I 96 Taille maximale de partition dans FAT-12 ● Pour toutes les FAT, le bloc de disque peut être un multiple de 512 octets – FAT-12 : taille maximale de partition = (2¹²– 10 adresses)x 512 octet. Les 10 adresses sont réservés pour des marqueurs spéciaux : fin de fichier, bloc en erreur… – FAT-12 : taille maximale de partition = 4086 x 512 = 2Mo – FAT-12 : taille de la FAT en mémoire = 4096 entrée de 2 octets chacune = 8192 octets
  • 96. 18/04/18 OS I 97 Taille maximale de partition dans FAT-16 ● FAT avec des pointeurs de disques de 16 bits – Taille de bloc de 8,16,32 Ko – Taille maximale de la partition 2¹ adresses x 32 Ko ⁶ chacune = 2 Go – Un disque supporte 4 partitions → taille maximal d'un disque de 8 Go
  • 97. 18/04/18 OS I 98 Taille maximale de partition dans FAT-32 ● FAT avec des pointeurs de disques de 28 bits – Taille maximale de la partition = 2² adresse x 4 Ko ⁸ = 2² x (2²) x (2¹ ) = 2 = 1 To ⁸ ⁰ ⁴⁰ Théoriquement 4 To Théoriquement 8 To
  • 98. 18/04/18 OS I 99 Avantages de FAT-32 ● Nombre de partition : – Un disque de 8Go peut être constitué d'une seule partition au lieu de 4 (dans FAT-16). ● Taille de bloc : – FAT-16 doit absolument utiliser un bloc 32 Ko pour une partition de 2 Go – FAT-32 on peut utiliser des blocs de 4 Ko pour une partition de 2 Go – L'avantage de disposer de blocs de plus petite taille est que l'on gaspille moins d'espace ● un fichier de 10 octets occupe 32 Ko d'espace disque ● Avec un fichier de 8 Ko et des blocs de 32 Ko : 3/4 du bloc gaspillé ● Avec un fichier de 8 Ko et un bloc de 4 Ko → pas de gaspillage disque
  • 99. 18/04/18 OS I 100 Exercice I (Rattrapage 2017) Considérons un disque dur ayant une capacité de 256 Go et un système de gestion de fichier utilisant FAT-32 1) Donner la taille minimale de bloc physique en Kilo octets pour indexer tout l'espace disque. 2)Quelle est alors la taille minimale d'un fichier dans un tel système ? 3) Calculer le nombre de blocs nécessaires pour stocker la table FAT sur le disque. 4) Pour la mémorisation de blocs libres de cette unité disque, la méthode table de bits (bitmap) est utilisée. Quelle est la taille de la table de bits en blocs ? 5) Vous décidez de formater ce disque dur en FAT-16 en choisissant des blocs physiques de 32 Koctets. Expliquer pourquoi il est déconseillé fortement de faire cette opération ?
  • 100. 18/04/18 OS I 101 Correction Exercice I 1) Donner la taille minimale de bloc physique en Kilo octets pour indexer tout l'espace disque. • Taille du disque = 256 Go = 28 * 230 = 238 octets. • Une entrée de la FAT-32 a 28 bits. Nombre d'unité d'allocations (nombre d'entrée possibles) = 228 • Taille minimale de bloc physique = 1 bloc physique = 238/228 = 210 octets = 1 Koctets
  • 101. 18/04/18 OS I 102 Correction Exercice I 2) Quelle est alors la taille minimale d'un fichier dans un tel système ? ● Taille minimale d'un fichier = 1 bloc physique = 1 Koctets 3)Calculer le nombre de blocs nécessaires pour stocker la table FAT sur le disque. ● Taille de la table FAT = 228 * 28 bits. ● Nombre de blocs nécessaires = 228 * 28 /8*210= 228 * 28 /213 =28 *215blocs
  • 102. 18/04/18 OS I 103 Correction Exercice I 4) Pour la mémorisation de blocs libres de cette unité disque, la méthode table de bits (bitmap) est utilisée. Quelle est la taille de la table de bits en blocs ? ● Taille de la table de bit = nombre de blocs du disque = 228 bits. ● Taille de la table en bloc =228 / 213= 215 blocs
  • 103. 18/04/18 OS I 104 Correction Exercice I 5) Vous décidez de formater ce disque dur en FAT-16 en choisissant des blocs physiques de 32 Koctets. Expliquer pourquoi il est déconseillé fortement de faire cette opération ? ● taille max = 216 * 215 = 231 = 2 GB <<< 256 Go
  • 104. 18/04/18 OS I 105 Système de fichier d'UNIX ● Un répertoire UNIX comprend une entrée pour chaque fichier de ce répertoire. ● Chaque entrée est extrêmement simple – Le nom du fichier (14 octets) – Et le numéro de son i-node (2 octets) – Ces paramètres limitent à 64 Ko (2^16 , 2 octets = 16 bits, numéro de l’i-node) le nombre de fichier par système de fichier
  • 105. 18/04/18 OS I 106 Les i-nodes sous UNIX ● Un i-node unix stocke à la fois les attributs (metadata) ainsi que les pointeurs sur les blocs ● Les i-nodes UNIX contiennent certains attributs – La taille du fichier – Trois information temporelles ● Date et heure de créations ● Date et heure du dernier accès ● Date et heure de la dernière modification – Le nom du propriétaire – Le nom du groupe – Les information de protection – Un compteur indiquant le nombre d'entré de répertoires pointant sur lui (pour les liens) ● Un compteur indiquant 0 → l'i-node est récupéré et les blocs de disque sont placés dans la lste des blocs libres
  • 106. 18/04/18 OS I 107 Les i-nodes sous UNIX ● Les 10 (12) premières adresses des blocs sont enregistrées dans l'i-node lui-même – Pour les petits fichiers, toutes les informations nécessaire se trouvent dans l'i-node, lequel est chargé dans la mémoire quand le fichier est ouvert – Pour de plus grands fichiers, une des adresses de l'i-node correspond à l'adresse d'un bloc de disque appelé bloc de simple indirection (single indirect block) ● Ce bloc contient non pas de données mais des adresses supplémentaires
  • 107. 18/04/18 OS I 108 Les i-nodes sous UNIX ● Si cela n'est pas suffisant, une autre adresse de l'i- node, appelée bloc de double indirection (double indirect block), contient l'adresse d'un bloc qui contient une lise de bloc de simple indirection – Chacun de ces blocs de simple indirection pointe sur quelques centaines de blocs de données ● Si cela ne suffit toujours pas, on peut avoir recours à un bloc de triple indirection (triple indirect block)
  • 108. 18/04/18 OS I 109 Les i-nodes d'UNIX
  • 109. 18/04/18 OS I 110 Exercice 2 (EXAMEN 2017) ● On rappelle que sous Unix, un fichier est représenté de façon interne par la structure de données i-node. Cette structure comprend: – un ensemble de 10 pointeurs directs qui pointent vers des blocs contenant les premières données du fichier – un pointeur indirect simple, – un pointeur indirect double, – et enfin un pointeur indirect triple (un degré de plus d'indirection). ● En supposant que la taille d'un bloc est de 512 octets et que la taille d'un index est de 4 octets, indiquer (en nombre de blocs et en octets) : – 1) la taille minimale d'un fichier ? – 2) la taille maximale d'un fichier ?
  • 110. 18/04/18 OS I 111 Correction Exercice 2 1) La taille minimale d'un fichier ? – Un fichier une fois créé va occuper au minimum 01 bloc ; sa taille est au moins égale à 512 octets 2) La taille maximale d'un fichier ? – Avec 128 entrées pour chaque table de pointeurs et 512 octets par bloc, cela donne des fichiers d'au maximum 10 + 128 + 128*128 + 128*128*128= 2.113.674 blocs soit une taille très confortable de 512*2.097.152 = 1.082.201.087 octets.
  • 111. 18/04/18 OS I 112 Les i-nodes d'UNIX ● Exemple : chemin d'accès /usr/ast/mbox
  • 112. 18/04/18 OS I 113 Les systèmes de fichier journalisés
  • 113. 18/04/18 OS I 114 Les systèmes de fichier journalisés ● L'idée de base est de conserver dans un journal la trace de ce que va faire le système avant qu'il ne le fasse – En cas de plantage, avant la réalisation des travaux planifiés et après le démarrage, le système pourra retrouver dans le journal ce qu'il devait faire au moment du plantage et terminer le travail ● Un tel système est appelé système de fichier journalisé (journaling file system) – NTFS/ext3/ResierFS
  • 114. 18/04/18 OS I 115 Les systèmes de fichier journalisés ● Pour illustrer le problème, regardons une opération simple : supprimer un fichier sous UNIX. Elle demande trois étapes – Supprimer l'entrée du fichier dans le répertoire – Libérer l'i-node et le placer dans le groupe des i-nodes libres – Libérer tous les blocs et les placer dans le groupes des blocs libres ● Supposons que le système plante après la première étape – L'i-node et les blocs ne sont plus accessibles mais ils ne peuvent pas non plus être réassignés. – Si le plantage a lieu après la deuxième étape, seuls les blocs sont perdus.
  • 115. 18/04/18 OS I 116 Les systèmes de fichier journalisés ● Ce que fait un système de fichier journalisé est d'écrire en premier dans le journal un événement qui contient la liste des actions à réaliser – Cet événement est ensuite écrit sur le disque – Une fois l’événement est écrit dans le journal, alors les actions sont réalisées – Une fois les actions ont été réalisées, l’événement est effacé du journal ● Si le plantage se réalise, pour récupérer, le système de fichiers peut lire le journal et regarde si des actions sont en cours – Si oui, ces actions seront exécutées jusqu'à ce que le fichier soit correctement supprimé
  • 116. 18/04/18 OS I 117 Les systèmes de fichier journalisés ● Pour que la journalisation fonctionne, il faut que les actions journalisées soient idempotentes, ce qui veut dire qu'elles peuvent être répétées, sans dommage, autant de fois que nécessaire – Idempotence : une opération qui produit le même résultat qu'elle soit exécutée une seule ou plusieurs fois – Exemple : : Le tri d'une liste d'éléments est une procédure idempotente. Une fois la liste triée, le fait de la trier à nouveau ne changera pas l'ordre des éléments ; la liste ne sera donc pas modifiée.
  • 117. 18/04/18 OS I 118 Les systèmes de fichier journalisés ● Une action telle que « mettre à jour la table de bits pour indiquer que l'i- node k ou le bloc n est libre » doit pouvoir être répétée indéfiniment sans danger ● De la même manière, rechercher dans un répertoire et supprimer toute entrée XXX est idempotent ● Par contre, ajouter le bloc nouvellement libéré de l'i-node k à la fin de la liste des blocs libres n'est pas idempotent puisqu'il peut déjà être dans la liste ● L'action plus longue « Chercher dans la liste des blocs libres et ajouter le bloc n s'il n'y est pas » est idempotente.
  • 118. 18/04/18 OS I 119 Les systèmes de fichier journalisés ● Les systèmes de fichiers journalisés doivent accommoder leurs structures de données et leurs actions journalisables pour qu'elles soient toutes idempotentes → Sous de telles conditions la récupération d'un plantage peut être faite rapidement et de manière sûre.
  • 119. 18/04/18 OS I 120 Les systèmes de fichier journalisés ● Afin d'augmenter la fiabilité des systèmes de fichiers on peut utiliser la notion de transaction atomique (atomic transaction) – Lorsque ce concept est utilisé, un groupe d'actions doit être encadré par begin transaction et end transaction – Le système sait alors qu'il doit accomplir toutes les actions encadrées ou aucune, mais en aucun cas un sous ensemble
  • 120. 18/04/18 OS I 121 Les systèmes de fichiers virtuels
  • 121. 18/04/18 OS I 122 Les systèmes de fichiers virtuels ● Plusieurs systèmes de fichiers sont utilisés, souvent sur le même ordinateur, parfois avec un même système d'exploitation – Un système Windows peut gérer NTFS comme système de fichiers principal mais aussi un système FAT-32 ou FAT-16 par héritage – Un système Linux peut avoir un systèe ext2 comme racine du système de fichiers, une partition ext3 montée sur /usr et un second disque dur avec RiserFS. → Du point de vue de l'utilisateur, c'est un système de fichiers unique et hiérarchique. Ce qui se passe pour intégrer ces divers et incompatibles systèmes de fichiers est invisible aux utilisateurs et aux processus.
  • 122. 18/04/18 OS I 123 Les systèmes de fichiers virtuels ● Les systèmes UNIX utilisent le concept de système de fichiers virtuels ou VFS (Virtual File System) pour tenter d'intégrer différents systèmes de fichier dans une structure ordonnée. ● L'idée principale est d'extraire la partie du système de fichiers qui est commune à tous les systèmes de fichiers et de mettre le code dans une couche séparée qui appelle les systèmes de fichiers réels sous-jacent pour gérer les données.
  • 123. 18/04/18 OS I 124 Les systèmes de fichiers virtuels ● Les appels qui proviennent des processus utilisateurs sont des appels normalisés POSIX tels que : open, read, write ● Le VFS a ainsi une interface haute avec les processus utilisateur qui est l'interface POSIX
  • 124. 18/04/18 OS I 125 Les systèmes de fichiers virtuels ● Le VFS a aussi une interface basse avec les systèmes de fichier spécifique qui est appelé interface VFS.
  • 125. 18/04/18 OS I 126 Commandes du SGF d'UNIX
  • 126. 18/04/18 OS I 127 L’ARBORESCENCE ● Le système Linux ne connaît que trois types de fichiers : – Les fichiers ordinaires (regular files). Ils servent à mémoriser les programmes et les données des utilisateurs et du système. – Les fichiers répertoires ou répertoires (directories). Chaque répertoire contient la liste et la référence des fichiers placés sous son contrôle et la référence du répertoire dont il dépend (répertoire père). – Les fichiers spéciaux. Ils désignent les périphériques, les tubes ou autres supports de communication inter-processus. Les fichiers spéciaux associés aux périphériques peuvent être caractères (terminaux) ou blocs (disque) ; les entrées/sorties (E/S) se font soit caractère par caractère, soit bloc par bloc, un bloc étant composé de n caractères (512, 1024 ou 2048).
  • 127. 18/04/18 OS I 128 L’ARBORESCENCE ● L’extension du système de fichiers aux périphériques constitue une des grandes particularités de Linux. – Cela permet à un utilisateur de diriger les données produites par son application vers un fichier ou un périphérique. – Autre conséquence, les noms des fichiers et des périphériques obéissent à la même syntaxe et l’accès aux périphériques est contrôlé par le mécanisme de protection des fichiers. ● Le système de fichiers est organisé en une seule arborescence logique. – Cet arbre est composé de répertoires qui contiennent eux–mêmes d’autres répertoires, ou des fichiers.
  • 128. 18/04/18 OS I 129 L’ARBORESCENCE Filesystems Hierarchy Standard, FHS ● / : – 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…)
  • 129. 18/04/18 OS I 130 L’ARBORESCENCE Filesystems Hierarchy Standard, FHS ● /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
  • 130. 18/04/18 OS I 131 L’ARBORESCENCE Filesystems Hierarchy Standard, FHS ● /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
  • 131. 18/04/18 OS I 132 L’ARBORESCENCE Filesystems Hierarchy Standard, FHS ● /mnt montage (mount) – Point de montage pour monter temporairement un système de fichiers ● /opt optionnel (optional) – Emplacement pour des applications installées hors gestionnaire de paquets (logiciels optionnels) ● /proc processus (processes) – Répertoire virtuel pour les informations système (états du noyau et des processus système) ● /root racine (root) – Répertoire personnel du super-utilisateur
  • 132. 18/04/18 OS I 133 L’ARBORESCENCE Filesystems Hierarchy Standard, FHS ● /run exécution système (runtime system) – Informations relatives au système depuis son dernier démarrage (ex : utilisateurs actifs, services en cours d'exécution, etc.) ● /sbin binaires système (super binaries, super binnary utilities (super binutils)) – Exécutables système essentiels ● /srv services (services) – Données pour les services du système ● /tmp temporaire (temporary) – Fichiers temporaires des applications
  • 133. 18/04/18 OS I 134 L’ARBORESCENCE Filesystems Hierarchy Standard, FHS ● /usr ressources système Unix (Unix system resources) – Hiérarchie secondaire, pour des données en lecture seule par les utilisateurs. Ce répertoire contient la vaste majorité des applications usuelles des utilisateurs et leurs fichiers ● /usr/bin – Exécutables des programmes additionnels disponibles pour tous les utilisateurs (ex : le gestionnaire de fichiers, le lecteur de musique, le navigateur Web…) ● /usr/lib – Bibliothèques partagées par les applications additionnelles de /usr/bin et /usr/sbin
  • 134. 18/04/18 OS I 135 L’ARBORESCENCE Filesystems Hierarchy Standard, FHS ● /usr/local Hiérarchie tertiaire. – Emplacement où les utilisateurs doivent installer les applications qu'ils compilent. ● /usr/share – Fichiers non reliés à l'architecture partagés par les applications de /usr/bin et /usr/sbin (ex : les icônes, les thèmes, la documentation…) ● /var variable (variable) – Données variables et diverses
  • 135. 18/04/18 OS I 136 LA CLASSIFICATION DES FICHIERS LINUX ● La syntaxe d’un nom de fichier n’est pas très stricte. Il est recommandé de limiter le nom d’un fichier à 14 caractères au plus et de n’utiliser que les lettres majuscules ou minuscules (attention, Linux différencie les majuscules des minuscules), – les chiffres et quelques autres caractères (le point ., le tiret –, le souligné ). – Linux autorise jusqu’à 255 caractères pour le nom du fichier. La longueur minimum est de un caractère. – Les caractères spéciaux suivants sont à proscrire absolument : > < | $ ? & [ ] * ! " ‘ ( ) ` @ ~ <espace>
  • 136. 18/04/18 OS I 137 LA CLASSIFICATION DES FICHIERS LINUX ● Le point (.) joue un rôle particulier dans le nom d’un fichier. – Les fichiers dont les noms commencent par un point (.), comme .profile, sont des fichiers cachés (c’est–à–dire qu’ils n’apparaissent pas dans la liste des fichiers en tapant la commande ls sans argument). ● Le point sert également à suffixer les noms des fichiers. Cette pratique est très recommandée, car elle facilite la gestion des fichiers. – Il est vrai qu’il n’existe pas de syntaxe précise ; il existe toutefois un certain nombre de conventions
  • 137. 18/04/18 OS I 138 LA CLASSIFICATION DES FICHIERS LINUX ● Les caractères spéciaux et leur signification – * → désigne toute chaîne de 0 à n caractères, – ? → désigne un caractère quelconque, – [. . .] → désigne un caractère quelconque appartenant à l’ensemble des caractères entre crochets.
  • 138. 18/04/18 OS I 139 LA CLASSIFICATION DES FICHIERS LINUX ● Fich* → désigne tous les fichiers de nom fich et ayant un suffixe. ● Essai? → permet d’obtenir tous les fichiers ayant un nom de 6 caractères dont les 5 premiers caractères sont essai, le dernier caractère est quelconque. ● [a-z]* désigne tous les noms commençant par une lettre minuscule.
  • 139. 18/04/18 OS I 140 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 – Le chemin d’accès relatif
  • 140. 18/04/18 OS I 141 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. – La longueur du chemin d’accès absolu d’un fichier est limitée à 1024 caractères ● Exemple – /home/amine/Dropbox/Cours/Cours-ESEN/L1-OS- I/Cours/Chapitre4/code-source-chapt4/fichier-appel- system.c
  • 141. 18/04/18 OS I 142 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). – 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.
  • 142. 18/04/18 OS I 143 LA DÉSIGNATION DES FICHIERS ● chemin absolu : /home/amine/develop/prog1 ● répertoire courant : /home/amine ● chemin relatif : develop/prog1
  • 143. 18/04/18 OS I 144 LA DÉSIGNATION DES FICHIERS ● Tout répertoire contient au moins deux entrées : – . → représente le répertoire lui–même. – .. → représente le répertoire père. ● Ces entrées de répertoire ne sont en général pas imprimées par les utilitaires du système. Elles permettent de référencer le répertoire courant sans l’obligation de citer son nom de chemin d’accès absolu ou de référencer avec un chemin d’accès relatif un fichier dans un sous–arbre.
  • 144. 18/04/18 OS I 145 LA DÉSIGNATION DES FICHIERS ● répertoire courant : /home/amine/ ● chemin d’accès relatif: ../amine/develop/prog1 ● chemin d’accès absolu équivalent : /home/amine/develop/prog1
  • 145. 18/04/18 OS I 146 LA MANIPULATION DES FICHIERS ● $pwd → Print Working Directory : Affiche le chemin d’accès du répertoire courant. ● $cd → Change Directory ● $mkdir → MaKe DIRectory, Crée un nouveau répertoire ● $rmdir → ReMove DIRectory, Supprime un répertoire, s’il est vide. ● $du → Disk Usage
  • 146. 18/04/18 OS I 147 LA MANIPULATION DES FICHIERS ● $ls → LiSt files. Permet d’obtenir la liste et les caractéristiques des fichiers contenus dans un répertoire. ● $cat → conCATenate. La commande cat est une commande multi–usage qui permet d’afficher, de créer, de copier et de concaténer des fichiers. ● $cp → CoPy. Cette commande permet la copie de fichiers
  • 147. 18/04/18 OS I 148 Protection des fichiers ● Comme tout système multi-utilisateur, Linux possède des mécanismes permettant au propriétaire d’un fichier d’en protéger le contenu. Le propriétaire est l’utilisateur ayant créé le fichier. ● Pour permettre le partage de fichiers et faciliter le travail en équipe, Linux définit la notion de groupe d’utilisateurs, et tout utilisateur appartient à un groupe au moins. ● Les droits d’accès (en anglais permissions) à un fichier sont définis par son propriétaire.
  • 148. 18/04/18 OS I 149 DROIT D’ACCÈS AUX FICHIERS ● À chaque fichier est associé un ensemble d’indicateurs précisant les droits d’accès au fichier. ● Pour chaque fichier il existe trois types d’utilisateurs : – le propriétaire du fichier, – les membres du groupe propriétaire du fichier, – les autres utilisateurs du système.
  • 149. 18/04/18 OS I 150 DROIT D’ACCÈS AUX FICHIERS ● Pour chaque fichier et par type d’utilisateur il existe trois modes principaux : – autorisation d’écriture (w) – autorisation de lecture (r) – autorisation d’exécution (x) ● En plus de ces neuf bits (rwx rwx rwx), Unix/Linux définit d'autres bits de permission (SUID, SGID).
  • 150. 18/04/18 OS I 151 DROIT D’ACCÈS AUX FICHIERS ● Sous Linux il existe différents types de fichiers : – fichier ordinaire → () – fichier répertoire → (d) – fichier spécial : périphérique accédé en mode caractère → (c) – fichier spécial : périphérique accédé en mode bloc → (b) – tube nommé (named pipe) → (p) – lien symbolique → (l) – Socket → (s)
  • 151. 18/04/18 OS I 152 DROIT D’ACCÈS AUX FICHIERS ● Ainsi, à chaque fichier Linux sont associés 10 attributs (1 pour désigner le type, et 9 attributs de protection, 3 pour le propriétaire, 3 pour le groupe et 3 pour les autres utilisateurs). L’ensemble des renseignements sur un fichier est obtenu en utilisant la commande $ls -l
  • 152. 18/04/18 OS I 153 DROIT D’ACCÈS AUX FICHIERS
  • 153. 18/04/18 OS I 154 DROIT D’ACCÈS AUX FICHIERS ● On écrit côte à côte les droits r, w puis x respectivement pour le propriétaire (u), le groupe (g) et les autres utilisateurs (o). ● Les codes u, g et o (u comme user, g comme group et o comme others) sont utilisés par les commandes qui permettent d'attribuer les droits et l'appartenance des fichiers. ● Lorsqu'un flag est attribué à une entité, on écrit ce flag (r, w ou x), et lorsqu'il n'est pas attribué, on écrit un '-'
  • 154. 18/04/18 OS I 155 DROIT D’ACCÈS AUX FICHIERS ● Une autre manière de représenter ces droits est sous forme binaire grâce à une clef numérique fondée sur la correspondance entre un nombre décimal et son expression binaire, une lettre équivaut à 1, un tiret à 0. – 0 = 000 – 1 = 001 – 2 = 010 – 3 = 011 – 4 = 100 – 5 = 101 – 6 = 110 – 7 = 111 ● Les droits rwx rwx rwx est équivalent à 777 ● Les droits rwx rw- r- x est équivalent à 765
  • 155. 18/04/18 OS I 156 MODIFICATION DES DROITS D’ACCÈS AUX FICHIERS ● La protection d’un fichier ne peut être modifiée que par le propriétaire à l’aide de la commande chmod (CHange MODe). Il existe deux modes d’utilisation de cette commande. ● La première (la plus ancienne) utilise la description des protections par un nombre octal. – $chmod 765 exemple
  • 156. 18/04/18 OS I 157 MODIFICATION DES DROITS D’ACCÈS AUX FICHIERS ● Le deuxième mode d’utilisation de chmod, le mode symbolique, permet une description absolue ou relative des droits d’accès, comme suit ● chmod [who]op[permission] fichier ● Who – est une combinaison de lettre u (user=propriétaire), g (groupe), o (other=autre) ou a (all=tous) pour ugo, ● op – + permet d’ajouter un droit d’accès, - de supprimer un droit d’accès et = d’affecter un droit de manière absolue (tous les autres bits sont remis à zéro), ● permission – r (read=lecture), w (write=écriture), x (exécution).
  • 157. 18/04/18 OS I 158 MODIFICATION DES DROITS D’ACCÈS AUX FICHIERS ● $chmod u-w file → supprime le droit d’écriture au propriétaire. ● $chmod g+r file → ajoute le droit de lecture pour le groupe. ● $chmod ug=x file → accès uniquement en exécution pour le propriétaire et le groupe, pas de modification pour les autres.
  • 158. 18/04/18 OS I 159 Droit d’accès à la création du fichier ● La protection d’un fichier, ainsi que le nom du propriétaire (le vôtre) et le nom du groupe auquel il appartient, sont établis à sa création et ne peuvent être modifiés que par son propriétaire. ● La commande umask permet de définir un masque de protection des fichiers (et répertoires) lors de leur création. – Cette commande se trouvait en général dans le fichier .bashrc, mais elle peut être exécutée à tout moment. – Pour les distribution récente de ubuntu, la valeur par défaut de umask se trouve dans /etc/login.defs – Le masque est exprimé en base de 8
  • 159. 18/04/18 OS I 160 Droit d’accès à la création du fichier
  • 160. 18/04/18 OS I 161 Droit d’accès à la création du fichier
  • 161. 18/04/18 OS I 162 Droit d’accès à la création du fichier ● La valeur 022 est soustraite de la permission permanente (111 111 111) : 111 111 111 → permission permanente - 000 010 010 → on enlève les bits dont on ne veut pas 111 101 101 → 755 ● umask 022 permet de créer des fichiers ou des répertoires dont la protection est rwx r-x r-x. C’est souvent l’option par défaut.
  • 162. 18/04/18 OS I 163 Droit d’accès à la création du fichier ● La valeur 002 est soustraite de la permission permanente (111 111 111) : 111 111 111 → permission permanente - 000 000 010 → on enlève les bits dont on ne veut pas 111 111 101 → 775 ● umask 002 permet de créer des fichiers ou répertoires dont la protection est rwx rwx r-x.
  • 163. 18/04/18 OS I 164 Droit d’accès à la création du fichier ● Pour les fichiers ordinaires, – $umask 022 donnera une protection de type rw- r-- r-- , – $umask 002 donnera une protection de type rw- rw- r-- , ● car la possibilité d’exécution n’est pas autorisée sur les fichiers ordinaire
  • 164. 18/04/18 OS I 165 Accès au contenu des répertoires
  • 165. 18/04/18 OS I 166 Droits des répertoires ● Dans le cas des répertoires, l’interprétation des droits est légèrement différente de celle concernant les fichiers. ● Les informations concernant un répertoire sont obtenues par la commande $ls -dl nom_repertoire
  • 166. 18/04/18 OS I 167 Droits des répertoires ● L’interprétation des protections pour les répertoires est la suivante : – r → autorise la lecture du contenu du répertoire comme dans le cas des fichiers; permet donc de voir la liste des fichiers qui sont dans le répertoire. – x → autorise l’accès au répertoire (à l’aide de la commande cd). – w → autorise la création, la suppression et le changement du nom d’un élément du répertoire. Cette permission est indépendante de l’accès aux fichiers dans le répertoire.
  • 167. 18/04/18 OS I 168 Droits des répertoires ● La possibilité de suppression d’un fichier n’est pas fixée dans les permissions de ce fichier, mais dans les permissions du répertoire qui le contient. – Ce n’est donc pas une permission fixée fichier par fichier. ● Cela pose problème, en particulier dans le répertoire /tmp : tout utilisateur doit pouvoir créer des fichiers dans /tmp, qui a donc les permissions rwx pour other. – Chacun peut donc lire et écrire dans /tmp, et donc y créer des fichiers. ● Mais chacun pourrait aussi supprimer tout fichier dans /tmp, y compris des fichiers créés par d’autres utilisateurs. → D’où l’utilité du bit t sur un répertoire : si ce bit est positionné, un utilisateur qui peut écrire dans le répertoire peut y créer des fichiers, mais ne peut supprimer un fichier que s’il en est propriétaire
  • 168. 18/04/18 OS I 169 MODIFICATION DU PROPRIÉTAIRE ET DU GROUPE ● La commande $chown nom_propriétaire nom_fichier permet de changer le propriétaire d’un fichier. – Pour des raisons de sécurité, seul l’administrateur peut modifier le propriétaire d’un fichier ou d’un répertoire. ● La commande $chgrp nom_groupe nom_fichier permet le changement de groupe pour les fichiers ou répertoires cités, – à condition que l’utilisateur fasse partie du nouveau groupe et soit propriétaire de ces fichiers ou répertoires.
  • 169. 18/04/18 OS I 170 MODIFICATION DU PROPRIÉTAIRE ET DU GROUPE ● Le fichier /etc/group défini les groupes auxquels les utilisateurs appartiennent ● Le format d'une entrée /etc/group – adm:x:4:amine,syslog ● adm : Nom du groupe ● x : password ● 4 : Group ID (GID) ● amine,syslog : Group List : membres des groupes
  • 170. 18/04/18 OS I 171 MODIFICATION DU PROPRIÉTAIRE ET DU GROUPE ● Le fichier /etc/passwd contient les information sur les comptes utilisateurs
  • 171. 18/04/18 OS I 172 Lien matériel (hard link) ● Un fichier, en tant qu’espace disque, est repéré par son index et non par son nom. L’index est le numéro de l’inode décrivant entièrement le fichier sur disque. Un répertoire est un fichier de type particulier contenant des couples (index, nom_de_fichier). ● Il est donc possible d’associer deux noms différents au même index. Cette opération est effectuée par la commande ln (LiNk) ● $ln fichier_existant nouveau_nom ● Le même fichier, au sens espace disque, peut alors être accédé par les deux noms : fichier_existant et nouveau_nom.
  • 172. 18/04/18 OS I 173 Lien symbolique (soft link) ● La numérotation des inodes est interne à chaque système de fichier. ● Or, deux fichiers différents appartenant à deux système de fichier différents peuvent porter le même index (le même numéro d’inode). La logique décrite précédemment est alors inapplicable. ● Pour résoudre ce problème, il faut utiliser dans ce cas un lien symbolique : $ln -s fichier_existant nouveau_nom ● Le fichier nouveau nom est créé (nouvel inode), mais n’occupe que peu de place sur disque : il ne contient que la référence à fichier_existant.
  • 173. 18/04/18 OS I 174 The END