LES FICHIERS
Un exemple : Unix
Le système de fichiers
tmp
ut1 ut2
pro
usrbin dev etc lib
/ (root)
fich
/
/users
/users/ut3
/users/ut3/profich1
fich2
../dir1
..
../..
../../..
/users/ut3/pro/fich
fichdir2
ut3
users
dir1
- Structure hiérarchique.- Cohérence des formats.- Création, destruction des fichiers.- Croissance dynamique.- Protection des fichiers.- Traitement des périphériques en tant que
fichiers.
Représentation interne d'un fichier Un fichier
– I-node I-node
– description du fichier Nom d’un fichier
– lien vers un i-node– plusieurs noms pour un seul i-node
Acces au fichier
Noyau – i-node
Utilisateur– nom du fichier
Le noyau recherche l’i-node correspondant au nom du fichier
Les 3 tables internes
Table des i-nodes– structure globale– contient les i-nodes utilisés par le système
Table des fichiers– structure globale– les fichiers de manière unique,
indépendamment de leur nombre d'occurrences ouvertes
Les 3 tables internes
Tables des descripteurs– une par processus– alloue un numéro logique à un fichier
• 0 : stdin• 1 : stdout• 2 : stderr• …
– chaque occurrence d’un même fichier ouvert posséde son descripteur
Les 3 tables internes
Table desdescrip teurs
Table des fich iers Table des i-nodes
Les systèmes de Fichiers : file system Les fichiers sont rangés dans des
systèmes de fichiers Plusieurs systèmes de fichiers pour une
machine Composé d’une suite de blocs
– multiple de 512 octets
Structure du file system
Le Bloc Boot– boot strap
Le Super Bloc– décrit l'état du système de fichiers,
son importance, les endroits où se situe la place libre, …
Les i-nodes Les blocs de données
Le super bloc
Il contient une liste d ’i-node libre et de blocs de données libre
Permet une attribution rapide d ’i-nodes ou de blocs de données
Il joue le role de cache pour l ’attribution
L ’I-node
2 types d ’i-nodes– i-node physique (sur le disque)– i-node logique (en mémoire)
• informations sur les demandes d ’accés sur les fichiers
Structure d ’un I-node
L ’identificateur du propiétaire et du groupe
Le type du fichier : ordinaire, répertoire, spécial caractère, spécial bloc ou tube.
Les permissions d'accès – 9 bits de permissions : rwx rwx rwx– les bit set-uid et set-gid : donne au processus
les doits du propriétaire/groupe du programme– le sticky-bit : assure le maintien d'un
programme en zone de swap
Structure d ’un I-node
Les dates d'accès au fichier : – du dernier accès au fichier, – de la dernière modification du fichier – de la dernière modification de l'i-node.
Le nombre de liens (ou de nom) du fichier
La table des adresses disques du fichier La taille du fichier
Structure d ’un I-node Mémoire Un mot d'état indiquant :
– si l'i-node est verrouillé,
– si un processus attend que l'i-node soit déverrouillé,
– si la représentation mémoire diffère de l'i-node disque à la suite d'un changement de données dans l'i-node,
– si la représentation mémoire diffère de l'i-node disque
– si le fichier est un point de montage.
Structure d ’un I-node Mémoire
Le numéro du périphérique logique du système de fichier qui contient le fichier
Le numéro de l'i-node dans la table du noyau
Des pointeurs sur d'autres i-nodes mémoire.
Un compteur indiquant combien d'instances du fichier sont actives
Structure d’un Fichier Ordinaire
Gestion de fichiers dynamique– les fichiers peuvent évoluer et
occuper à un instant donné plus ou moins d'espace sur le disque.
– Le nombre de fichiers, leurs places sur le disque ne sont pas figés et les évolutions sont prises en charge par le système.
Structure d’un Fichier Ordinaire Exemple de file system Mono-bloc
Solution : un fichier est constitué d’une liste de blocs
40 50 60 70
40 50 60 8170
Fichier A
Fichier A
Fichier B Fichier C
Libre Fichier C Fichier B
Avant l'écriture
Après l'écriture
Adresses de bloc
Adresses de bloc
Table d ’adressage Un fichier : suite de blocs de données Blocs de taille fixe : ex : 1Ko La table d ’adressage contient 13
adresses de blocs de 4 types différents– 10 pointeurs directs vers un bloc– 1 pointeur simple-indirection– 1 pointeur double-indirection– 1 pointeur triple-indirection
Table d ’adressage
I -n o d e
B lo c s
D ir e c t 0
D i r e c t 1
D i r e c t 2
D i r e c t 3
D i r e c t 9
S im p le
D o u b le
T r ip le
D i r e c t 4
D i r e c t 5
D i r e c t 6
D i r e c t 7
D i r e c t 8
Calcul de l'adresse d'un octet Un octet quelconque d'un fichier
est retrouvé à l'aide d'un calcul d'adresse.
Le système transforme l'adresse en :– numéro logique (à partir de 0) puis
physique de bloc – en déplacement dans le bloc.
Table d ’adressage
Avantages– Grâce à cette solution, l'i-node a une
taille constante.– Une étude a montré que
• 85% des fichiers font moins de 8 Ko • 48% moins de 1 Ko
Inconvénients– 1 octets peut bloquer un bloc
Structure d’un répertoire Liste d’informations :
– <nom de fichier , numéro d'i-node>
2 fichiers particuliers : – . : le répertoire lui même– .. : le répertoire père
Le noyau ne travaille que sur les i-nodes– il transforme le chemin d'accès au fichier en un
numéro d'i-node.
– il parcourt linéairement les sous-répertoires en partant de la racine
Les Tubes
fichiers temporaires. gardés si possible en mémoire par
le buffer cache. structure de file "FIFO" (le
premier entré est le premier sorti).
servent à lier deux processus.
Les Fichiers Spéciaux
Ils servent à l'interface avec le matériel. Deux informations
– le major number qui indique un type de périphérique
– le minor number qui indique son adresse.
Deux types de fichiers : – les fichiers caractères (flux d ’octets)
– les fichiers blocs.
Le Buffer Cache
il se situe entre le sous système de gestion de fichiers et les périphériques en mode bloc.
il gère l'intégrité et la protection des données lorsque plusieurs processus ouvrent simultanément un fichier.
il minimise les entrées-sorties sur les périphériques bloc en cachant les données
Le Buffer Cache
seul le buffer cache tient compte des caractéristiques physiques de la mémoire de masse.
le sous système de gestion de fichiers est indépendant de la structure matérielle de la machine
Le buffer cache accomplit ses fonctions en réservant des tampons en mémoire principale qu’il partage entre les fichiers
Le Buffer Cache
Avantages :– Accès uniforme aux disques durs, que
l'entrée-sortie concerne un ou un millier de caractères.
– Indépendance du système de gestion de fichier.
– Contrôle la cohérence des données, ...– Optimise les temps d'accès, utilise les
moments de moyenne charge pour enregistrer les données.
Le Buffer Cache
Inconvénients :– Occupation mémoire augmentant le
swapping.– Vulnérabilité aux "crashes". – Rajout d'une opération dans le cycle
de lecture/écriture.
Structure du Buffer Cache
Structure du Buffer Cache
Libre
Structure du Buffer Cache
Libre
Structure du Buffer Cache
Libre
Structure du Buffer Cache
Libre
Structure du Buffer Cache
Libre
Les Disques
Composé de partitions– Petits disques
4 partitions primaires (au max) Dont une partition primaire « étendue »
– Contenant des partitions logiques Noms des disques
– IDE : /dev/hda, /dev/hdb, /dev/hdc, /dev/hdd– SCSI, SATA, USB : /dev/sda, /dev/sdb, …
Les Partitions
Types– Système de fichier– Espace Swap– Espace dédie à une application
Noms– /dev/hda1, /dev/hda2, /dev/hda3,
/dev/hda4 : primaires– /dev/hda5 : première partition logique
Les systèmes de fichiers (FS)
L’arborescence globale est composée d’un ou plusieurs systèmes de fichiers (file system)
Chaque FS est une arborescence gérée comme un tout
Les systèmes de fichiers (FS)
– Une partition– Un volume logique– Un cdrom– Cle USB– Mémoire (live-cd)– Un fichier Ordinaire
swap
Notion de « montage »
/
bin usr etc
/
swap
Notion de « montage »
/
bin usr etc
bin local
/
/usr
+ montage
Montage d’un FS
Un FS est accessible uniquement si il est « monté »
Association– Racine – répertoire de montage
Le FS est monté automatiquement (phase de démarrage)
Les systèmes de fichiers
Différents type de FS– ext2 : ancien standard Linux– ext3 : nouveau FS (plus grand)– iso9660 : FS pour CD et DVD– xfc : FS étendu (Debian)– nfs : FS réseau – …
Principales commandes
# fdisk –l : liste les partitions
# fdisk –l /dev/sda
# df –Th : liste des FS montés
# df fichier : a quel FS appartient fichier
La commande « mount »
mount –a– Monte « tous » les FS se trouvant dans
/etc/fstab mount /dev/sda2 /home/usr1
Le fichier /etc/fstab
Contient un certain nombre de FS. Les FS qui sont dans le fichier seront
montés au démarrage sauf ceux qui ont l’option noauto.
Option
Default : rw, suid, exec, auto, nouser Ro Noexec