LES FICHIERS Un exemple : Unix
Le système de fichiers
Représentation interne d'un fichier 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 Utilisateur 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 Table des fichiers structure globale contient les i-nodes utilisés par le système Table des fichiers 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
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
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
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 Inconvénients 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 4 partitions primaires (au max) 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 Noms 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
Notion de « montage » / / swap bin etc usr
Notion de « montage » / bin usr etc local / swap + montage /usr
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 mount /dev/sda2 /home/usr1 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