gestion des fichiers quatrième partie...
TRANSCRIPT
Situation SGF SGR Annexes
Quatrième partie
Fichiers
1 / 58
Situation SGF SGR Annexes
Contenu de cette partie
Gestion des données conservées en mémoire secondaireFichiers
point de vue utilisateur : interface, modèle
mise en œuvre : implantation, accès
organisation et désignation des fichiers
point de vue utilisateur : répertoires, liens
mise en œuvre
Annexes : points techniques
2 / 58
Situation SGF SGR Annexes
Plan
1 Gestion des données rémanentes
2 Gestion des fichiers
Interface et modèle
Mise en œuvre du système de gestion de fichiers
3 Organisation des fichiers
Interface
Mise en œuvre du service de gestion de répertoires
4 Annexes
Le sous-système d’E/S d’UNIX BSD
Système de fichiers standard Linux (FSSTND)
Disques physiques
Disques RAID
Sûreté de fonctionnement
Méthodes d’accès
3 / 58
Situation SGF SGR Annexes
Gestion des données rémanentes
Intérêt de la mémoire secondaire (disques, bandes. . . )
Rémanence (les données peuvent être conservées)
Capacité de stockage
Aide à l’utilisation des données stockées en mémoire secondaire :
Abstraction
notion de fichier : modèle simple d’accès aux données stockées
Partage et protection des fichiers
droits d’accès, contrôle de concurrence
Organisation logique des fichiers
service de gestion de répertoires (SGR)
Autres services
Contrôles et services liés au « type », au contenu des fichiers
(binaires, textes. . . )
Accélération des accès (index. . . )
Sauvegarde
4 / 58
Situation SGF SGR Annexes
Structure des services de gestion des données rémanentes
Fichiers -3-
DIMA, Systèmes Centralisés (Ph. Mauran)
Structure des services système d’accès et de gestion des données rémanentes
Applications
• liaison (interprétation des noms symboliques) • gestion d'une structure entre fichiers • amélioration de
l'efficacité des accès
• automatisation • sauvegardes •…
• opérations au niveau des fichiers vus comme des tableaux d'octets/d'enregistrements
Pilotes de périphériques
Gestion des fichiers
Gestion des accès logiques
Gestion des répertoires
fonctions d'accès « logiques »/
adresses physiques (blocs)
adresses logiques/ noms internes
Services fichiers
adresses logiques/ noms internes
noms symboliques
Périphériques5 / 58
Situation SGF SGR Annexes
Plan
1 Gestion des données rémanentes
2 Gestion des fichiers
Interface et modèle
Mise en œuvre du système de gestion de fichiers
3 Organisation des fichiers
Interface
Mise en œuvre du service de gestion de répertoires
4 Annexes
Le sous-système d’E/S d’UNIX BSD
Système de fichiers standard Linux (FSSTND)
Disques physiques
Disques RAID
Sûreté de fonctionnement
Méthodes d’accès
6 / 58
Situation SGF SGR Annexes
Gestion des échanges avec les périphériques
Abstraction des E/Spériphériques blocs : disques...
données structurées (regroupées) dans des blocs (souvent de
taille fixe)
chaque bloc est identifié par une adresse
l’accès aux données est déterminé par le numéro du bloc
périphériques caractères : clavier. . .
données non structurées, vues comme des suites (flots) d’octets
l’accès aux données doit suivre l’ordre du flot
CachesBut : optimiser les échanges en conservant dans un tampon
(cache) en mémoire rapide une copie des données échangées
Difficulté : gestion de la cohérence
entre copie en cache et copie sur le périphérique
7 / 58
Situation SGF SGR Annexes
Notion de fichier
Abstraction pour un ensemble de données
conservées indépendamment de l’exécution des applications
(rémanence)
ayant un lien logique (pour l’utilisateur)
différenciées par un identifiant (clé) ou un indice (position)
! fichier , suite
⇢d’octets
d’enregistrements
OpérationsAbstraction : support, implantation, opérations de bas niveau
Métaphore : bande magnétique
créer/détruire (Unix : creat.../unlink...)ouvrir/fermer (Unix : open/close)accès (lire, écrire, naviguer) (Unix : read ,write, lseek)
8 / 58
Situation SGF SGR Annexes
Utilisation des fichiersFichiers ordinaires
Sous Unix, le contenu d’un fichier est une suite d’octets, sans autre
structure. L’interprétation de ce contenu dépend de l’utilisation :
Programmes exécutablesCommandes du système ou programmes créés par un usager
Exemplegcc -o prog prog.c produit le programme exécutable (fichier prog)
./prog exécute le programme prog
Fichiers de donnéesDocuments, images, programmes sources, etc.
Convention : il est pratique d’ajouter au nom un suffixe indiquant
la nature du contenu (usage en Unix, nécessaire sous Windows)
Exemples : .c (programme C), .o (binaire translatable), .gif
(format d’images), .ps (PostScript), .pdf. . .
Remarque : la commande Unix file fournit dans tous les cas
une indication sur la nature du fichier.
9 / 58
Situation SGF SGR Annexes
Utilisation des fichiersAutres fichiers
La plupart des ressources se présentent sous Unix comme des fichiers
afin d’offrir une interface (un modèle) unique à l’utilisateur :
tubes (pipes) : accès à un tampon mémoire
vu comme une paire de fichiers (dépôt/retrait)
répertoires
liens (alias)
fichiers spéciaux : les périphériques appraissent sous Unix
comme des fichiers (souvent situés dans le répertoire /dev)Les périphériques sont désignés par des noms de fichiers
Interface d’usage (commandes, primitives) : celle des fichiers
open/close : connexion/déconnexion au périphérique
read : lecture (si cela a un sens par rapport au périphérique)
write : écriture (si cela a un sens par rapport au périphérique
ioctl : action spécifique.
Les mécanismes de protection sont les mêmes.
À un fichier spécial correspond un pilote de périphérique
(Davantage de détails sont fournis en annexe)
10 / 58
Situation SGF SGR Annexes
Protection et partage des fichiers
La protection (ou sécurité) recouvre plusieurs aspects
confidentialité :
informations accessibles aux seuls usagers autorisés
intégrité : pas de modifications non désirées
contrôle d’accès :
seuls certains usagers sont autorisés à faire certaines opérations
authentification :
garantir qu’un usager est bien celui qu’il prétend être
Note : quelques compléments sur la mise en œuvre de l’intégrité et
du contrôle d’accès sont fournis en annexe.
11 / 58
Situation SGF SGR Annexes
Sécurité des fichiers (sous Unix) : droits d’accèsOn définit
des typesd’opérations sur lesfichiers : lire (r), écrire (w), exécuter (x)des classesd’usagers :
usager propriétaire dufichier (u), groupepropriétaire (g), autres (o)
Fichiers ordinaires
Fichiers -13-DIMA, Systèmes Centralisés (Ph. Mauran)
Sécurité des fichiers (dans Unix)On définit
• des types d’opérations sur les fichiers : lire (r), écrire (w), exécuter (x) (qui correspondentrespectivement à des contraintes de confidentialité, intégrité, contrôle d’accès)
• des classes d’usagers : usager propriétaire du fichier (u), groupe propriétaire (g), tous les autres (o)
Fichiers ordinaires
Répertoires
Même chose, mais le droit x signifie « recherche dans le répertoire »
Un mécanisme de délégation
• Le problème : partager un programme dont l’exécution nécessite des droits d’accès que n’ont pas les usagers potentiels du programme
• Solution (setuid ou setgid) : (uniquement) pour la durée de l’exécution de ce programme, unusager quelconque reçoit temporairement les droits de l’usager ou du groupe propriétaire
r w x r w x r w x (u) (g) (o)
Exemple (fichier fich) : rwx r-- r-- : tout accès pour le propriétaire, lecture seule
pour tous les autreschmod go+w fich : droit w donné au groupe et aux autreschmod o-w fich : retire le droit w aux autressetuid
setgid
RépertoiresMême chose, mais le droit x signifie « recherche dans le répertoire »
Mécanisme de délégationProblème : partager un programme dont l’exécution nécessite des
droits d’accès que n’ont pas les utilisateurs du programme
Moyen (setuid ou setgid) : accorder les droits du propriétaire à
l’utilisateur (uniquement) pour la durée de l’exécution du programme
12 / 58
Situation SGF SGR Annexes
Plan
1 Gestion des données rémanentes
2 Gestion des fichiers
Interface et modèle
Mise en œuvre du système de gestion de fichiers
3 Organisation des fichiers
4 Annexes
13 / 58
Situation SGF SGR Annexes
Système (logique) de fichiers
Implante
un ensemble (non structuré) de fichiers
vus comme des tableaux d’octets (sans structure interne)
dans un espace physique vu comme un disque (logique)
(tableau de blocs de taille fixe)
Structure type d’un disque logique
Fichiers -17-DIMA, Systèmes Centralisés (Ph. Mauran)
3.3) Mise en œuvre du système de fichiers
a) Système (logique) de fichiersPoint de vueImplanter
• un ensemble (non structuré) de fichiers• vus comme des tableaux d’octets (sans structure interne)• dans un espace physique vu comme un disque (logique) (tableau de blocs de taille fixe)
Structure type d’un disque logique• blocs d’amorce
UNIX : bootblocks (BB)• informations sur la structure du disque :
adresse, type des ≠ zones qui le constituent, localisation des blocs libres
UNIX : superbloc (SB)• catalogue du disque : liste des descripteurs
des fichiers présents sur le disque logiqueUNIX : table des I-nœuds
• fichiers
BBSB
I-nœuds
fichiers
Bloc0
11
12
1000
1M14 / 58
Situation SGF SGR Annexes
Structure type d’une entrée de catalogue (i-nœud Unix)
propriétaires(s)
droits d’accès
date(s) de dernier accès, de création. . .
taille
type
référence(s) vers l’implantation du fichier sur disque
données pour gérer la fiabilité : checksum, référence vers une copie...
15 / 58
Situation SGF SGR Annexes
Interface avec l’organisation physique : partitions (disques virtuels)
But : indépendance par rapport à la configuration physique
un disque virtuel peut utiliser une portion d’un disque physique,
ou un groupe de disques physiques
chaque disque virtuel a la structure décrite précédemment
Terminologieminidisks (VM), volumes (MS-DOS), partitions (MacOS), disques logiques
Exemple : Unix propose 2 types de disques logiques
swap : utilisé pour la régulation et la gestion mémoire
systèmes de fichiers : utilisé pour... le stockage des fichiers
Implantation des partitions : structure type d’un périphériquebloc d’amorce : code d’amorce + table des partitions
table des partitions : taille et adresse des différentes partitions
réserve de blocs (remplacement des blocs devenant véreux)
16 / 58
Situation SGF SGR Annexes
Interconnexion des disques logiques
t greffe d’arborescences contenues dans des disques logiques
au niveau de la racine : Windows
insertion d’une sous-arborescence quelconque en un point
quelconque d’une autre arborescence (montage)
Exemple : Unix (et NFS)
un système de fichiers (SF) est privilégié : le SF « système »
les autres SF peuvent s’y greffer
(instruction mount (montage logique))
mécanisme utilisé par NFS pour la connexion de
fichiers/répertoires distants
17 / 58
Situation SGF SGR Annexes
Représentation de l’espace libre (1/2)
But
garder une trace des blocs qui peuvent être (ré)alloués
! « liste » des blocs libres
Vecteur de bitscarte de l’occupation du disque logique : pour chaque bloc du disque,
un bit indique si le bloc est libre
Avantages :
simple et efficace
Inconvénient :
. . . à condition que le vecteur tienne en mémoire centrale
! utilisation
par les systèmes/micro-ordinateurs (MacOS)
lorsque la partition comprend relativement peu de blocs
(groupes de cylindres BSD 4.x)
18 / 58
Situation SGF SGR Annexes
Représentation de l’espace libre (2/2)
Liste chaînéecarte de localisation de l’epace libre :
L’espace libre est vu comme une suite de blocs.
Chaque bloc libre contient l’adresse du suivant
Problèmeinefficace (allouer n blocs ! n E/S)
Amélioration 1le premier bloc libre contient les adresses des n suivants
(dont n-1 sont directement utilisables)
Amélioration 2si n blocs libres contigus, stocker n et l’adresse du premier
19 / 58
Situation SGF SGR Annexes
Implantation des fichiers sur le disqueAllocation contiguë
Chaque fichier est rangé dans des blocs d’adresses successives
L’entrée du catalogue pour le fichier contient l’adresse du
premier bloc et la taille du fichier
Stratégies de placement : First fit, Best fit, Worst fit
Avantagespermet l’accès direct et l’accès séquentiel
temps d’accès minimal, pour un fichier
Inconvénientsfragmentation externe (blocs libres nombreux mais dispersés)
! recompactage coûteux
gestion lourde, lorsque la taille des fichiers augmente
20 / 58
Situation SGF SGR Annexes
Implantation des fichiers sur le disqueAllocation fragmentée
Pas de relation entre les adresses (la localisation) des blocs du fichier
Table d’allocation (FAT) (⇠ carte de l’occupation du disque)La table d’allocation est indexée par les numéros de blocs disque.
Idée : regrouper toutes les adresses! moins d’E/S
Le catalogue contient le numéro du 1er bloc alloué à chaque fichier.
Chaque entrée de la table d’allocation contient
lenumérodublocsuivant,silebloccorrespondantestallouéàunfichier
0si lebloccorrespondantest libre
EOFsi lebloccorrespondantest ledernierdufichier
Le chaînage des entrées exprime celui des blocs alloués
Fichiers -23-DIMA, Systèmes Centralisés (Ph. Mauran)
Allocation fragmentéePas de relation particulière entre les adresses des blocs d’un fichierTable d'allocation (FAT) (~ carte de l’occupation du disque)Idée : regrouper toutes les adresses➝ moins d'E/SA chaque bloc correspond une entrée dans la table (indice de l'entrée = # du bloc)
• Le catalogue contient le numéro du premier bloc alloué à chaque fichier.• Chaque entrée contient
◊ l’indice de l'entrée (du bloc) suivant(e), lorsque le bloc correspondant est alloué à un fichier◊ 0 si le bloc correspondant est libre◊ EOF si le bloc correspondant est le dernier du fichier
Le chaînage des entrées exprime celui des blocs alloués
fichier
logique réel
21 / 58
Situation SGF SGR Annexes
Implantation des fichiers sur le disqueAllocation chaînée
Les blocs alloués à un fichier sont chaînés
Le catalogue contient l’adresse du premier bloc et celle du
dernier bloc de chaque fichier
Chaque bloc contient l’adresse de son successeur
Avantagespas de fragmentation externe
pas de problème lié à l’évolution de la taille d’un fichier
Inconvénientsaccès direct très inefficace
fiabilité : perdre un bloc t perdre tout ce qui suit dans le fichier
! chaînage double ! surcroît de gestion
22 / 58
Situation SGF SGR Annexes
Implantation des fichiers sur le disqueAllocation indexée
Le premier bloc de chaque fichier est (le premier bloc de)
la table des adresses des blocs alloués au fichier
AvantagesCf allocation chaînée
Accès direct possible
Inconvénient : perte de place pour les petits fichiers
! Idée : gérer un ensemble de blocs d’index (de taille réduite)
plus compact
mais temps d’accès accru
Méthodes
Liste chaînée
Arborescence (le bloc d’index référence des blocs d’index qui. . . )
Méthode hybride (Unix) : l’entrée du catalogue pour un fichier
(i-nœud) contient 15 adresses de blocs :
12 adresses directes (48K adressables)
3 adresses indirectes
indirections simple (1 Mo adressable), double (1 Go), triple (1 To) 23 / 58
Situation SGF SGR Annexes
I-nœud UNIX
Fichiers -26-DIMA, Systèmes Centralisés (Ph. Mauran)
I-nœud UNIX
RemarqueCes méthodes ont leurs cas favorables et défavorables ➝ utiliser des méthodes mixtes :
- allocation contiguë pour l'accès direct/chaînée pour l'accès séquentiel- allocation contiguë pour les petits fichiers/indexée pour les plus gros
mode (bloc/caractère)propriétaires
(u,g)dates
(création, accès, modification)
taillenb de blocs
adresses directes (12)
indirection simpleindirection doubleindirection triple
…
…
……
…
…
données
index
24 / 58
Situation SGF SGR Annexes
Plan
1 Gestion des données rémanentes
2 Gestion des fichiers
Interface et modèle
Mise en œuvre du système de gestion de fichiers
3 Organisation des fichiers
Interface
Mise en œuvre du service de gestion de répertoires
4 Annexes
Le sous-système d’E/S d’UNIX BSD
Système de fichiers standard Linux (FSSTND)
Disques physiques
Disques RAID
Sûreté de fonctionnement
Méthodes d’accès
25 / 58
Situation SGF SGR Annexes
Interface utilisateur pour la manipulation des fichiers
Service fournipermettre une désignation « familière » (noms externes)
structurer l’espace de noms/d’objets défini par l’utilisateur
! notion de répertoire :
ensemble de fichiers nommés et regroupés au choix de l’utilisateur
Structuration minimale : répertoire « plat »Simple liste de noms de fichiers
Difficultésaccumulation des fichiers ! allongement de la liste
conflits entre noms
26 / 58
Situation SGF SGR Annexes
Structuration classique : arborescence
Principe : inclure des répertoires dans les répertoires
Organisation purement logique, choisie par l’utilisateur
Exemple
Fichiers -7-
DIMA, Systèmes Centralisés (Ph. Mauran)
Structuration classique : arborescence
Idée : inclure des répertoires dans les répertoiresRemarque
Organisation purement
logique
Exemple
Intérêt
• organisation définie par l’utilisateur : fichiers regroupés par sujet/usage/utilisateur• règle les conflits de noms (un fichier est désignable par le chemin (unique) le reliant à la racine)• contrôle d’accès
racine
binaires utilisateurs documents
find count more sortlulu amédée
pg1 essai
manuel livre
courrierIntérêtorganisation définie par l’utilisateur :
fichiers regroupés par sujet/usage/utilisateur
règle les conflits de noms (un fichier est désignable par le
chemin (unique) le reliant à la racine)
contrôle des droit d’accès 27 / 58
Situation SGF SGR Annexes
Modèle d’utilisation : navigation dans l’arborescence
Nom unique : chemin absolu (chemin reliant la racine au fichier)
Exemple (Unix) : /utilisateurs/lulu/pg1
Raccourcis
chemins relatifs :
utilisation d’un préfixe implicite (répertoire de travail/courant)
Exemple : si le répertoire courant est /utilisateurs/lulu,
le fichier précédent peut être désigné par pg1
Généralisation :
liste de préfixes (chemins) permettant l’emploi de noms locaux
Exemple : variable PATH en Unix
Opérations sur le répertoire courant
- initialisation : répertoire privé (ou répertoire de connexion)
- affectation : cd
- affichage : pwd
abréviations spécifiques à une application
Exemple (shell Unix) : ., .., ⇠xxxsynonymes : liens
28 / 58
Situation SGF SGR Annexes
Structure de graphe : liens logiquesBut
désigner (sans dupliquer) un même fichier depuis plusieurs répertoires
le fichier/le répertoire apparait comme une entrée « ordinaire »
dans chacun des répertoires
structure de graphe
Exemple
Fichiers -9-DIMA, Systèmes Centralisés (Ph. Mauran)
Structure de graphe : liens logiquesIdée : partager (sans dupliquer )un fichier/un répertoire entre plusieurs répertoires
• le fichier/le répertoire apparait comme une entrée « ordinaire » dans chacun des répertoires
• structure de graphe
Exemple
• Partager un fichier ⇒ définir des droits d’accès pour chacun des nœuds
• Non unicité des désignations/des chemins➝ navigation moins « naturelle » (cycles…), plus complexe
Exemple : accès aux prédécesseurs, sous Unix
racine
binaires utilisateurs documents
find count more sortlulu amédée
pg1 essai
manuel livre
courrier
Non unicité des désignations/des chemins
! navigation moins naturelle (cycles, prédécesseurs multiples. . . ) 29 / 58
Situation SGF SGR Annexes
Plan
1 Gestion des données rémanentes
2 Gestion des fichiers
3 Organisation des fichiers
Interface
Mise en œuvre du service de gestion de répertoires
4 Annexes
30 / 58
Situation SGF SGR Annexes
Mise en œuvre des répertoires
répertoire = table de correspondance :
nom externe (utilisateur) $ nom interne (SX)
pour Unix, un répertoire est juste un fichier contenant cette table
Mise en œuvre des liens (Unix)liens physiques (nom interne) (commande ln f ./f_bis) :
ajout d’une entrée f_bis au répertoire courant,
associée au même i-nœud que fliens symboliques (chemin d’accès) (ln -s f ./f_bis) :
le chemin du fichier f est stocké dans le fichier f_bis du
répertoire courant
! problème de mise en cohérence du contenu des fichiers de
référence, en cas d’évolution
31 / 58
Situation SGF SGR Annexes
Exemple (sous UNIX, dans l’arborescence précédente)
création d’un lien symbolique vers binaires, sous le nom
programmes, depuis le répertoire lulu.
>pwd/utilisateurs/lulu>lsessai pg1>ln -s /binaires programmes>lsessai pg1 programmes# un fichier "/utilisateurs/lulu/programmes" a été créé,dont le contenu est "/binaires">cd programmes>lscount find more sort
32 / 58
Situation SGF SGR Annexes
Contrôle d’existence
Problème
maintenir la cohérence des liens vers un objet,
si celui-ci est supprimé/déplacé
Politique minimale : évaluation paresseuse
lien vers un objet disparu = référence erronée
Exemple : liens symboliques Unix
Politique classique : conserver l’objet tant qu’il est référencé
Conserver le nombre de références (liens) vers chaque objet
Exemple : liens physiques Unix
! un fichier se peut être supprimé que si son compteur est nul
Problème : test invalide en cas de cycles dans les références
Ramasse-miettes (périodique)
marquer les objets accessibles depuis la racine
supprimer les objets non marqués
Datation : supprimer les objets non accédés depuis longtemps
33 / 58
Situation SGF SGR Annexes
Interprétation des chemins d’accès par le service de répertoires
Fichiers -16-DIMA, Systèmes Centralisés (Ph. Mauran)
<html><head><title>fiche-vide</title>
<b>Syntaxe :</b><p>clear<p> <b>Rôle :</b><p> <b>EFFACER L'ECRAN </b><p> <p>
<b>Quelques options :</b><p> <b></b>La commande <b>clear</b> efface l'écran.
multi-fenêtré, elle n'efface que la fenêtredans laquelle elle est exécutée.<p> <b>echo</b><p> <b>Syntaxe :</b><p> echo "chaîne de caractères"<p> <b>Rôle :</b><p> <b>AFFICHE A L'ECRAN </b>une chaîne de caractères<b></b><p>
.
usr
local
etc...
..22
tmp 107
3
"/"
2
3
4
5
6
7
8
9
root sysadmdrwxr-xr-x
Aug 15 2009
00
root ensdrwxr-xr-x
Feb 17 2010-------------
fred ens-rwxr-xr-x
Feb 17 2010
root sysadmdrwxr-xr-x
root sysadm-rwxr-xr-x
Feb 17 2010
000/0/0
Aug 15 2009
fred ensdrwxr-xr-x
Feb 17 2010
.
index.html..
635
"/usr"
.
fred..
326
etc...
"/usr/fred/index.html""/usr/fred"
etc...
C00D3454E445245434F0434F00004E56FC7C48E703083D7C0064FDB43D7C0064FDB241EEFEB643FA023220D920D920D93091102DF31D671241EEF7C0064FDB43D7C0064FDB241EEFEB643FA023220D920D920D93091920D930912F2EFDB
.
bin
..72
42
"/local"etc...
"/local/bin/more"
.
more
..42
7
8
"/local/bin" (i-nœud : 42)
etc...
findgrep
5623
3.2)Mise en œuvre du service de répertoires
</head><body><b>clear</b><p>
00 000/0/0
Nom interne(numéro de
Catalogue du disque(sur disque)
i-nœud)
Espace alloué aux fichiers (sur disque)
(UNIX)
34 / 58
Situation SGF SGR Annexes
Plan
1 Gestion des données rémanentes
2 Gestion des fichiers
Interface et modèle
Mise en œuvre du système de gestion de fichiers
3 Organisation des fichiers
Interface
Mise en œuvre du service de gestion de répertoires
4 Annexes
Le sous-système d’E/S d’UNIX BSD
Système de fichiers standard Linux (FSSTND)
Disques physiques
Disques RAID
Sûreté de fonctionnement
Méthodes d’accès
35 / 58
Situation SGF SGR Annexes
Le sous-système d’E/S d’UNIX BSD
But : proposer une interface homogène,
pour masquer les particularités des divers périphériques
! Unix présente les périphériques
à un niveau abstrait comme des fichiers séquentiels avec
lesquels s’échangent des flots.
leur interface recouvre celle des fichiers
prise en compte des particularités
! opération supplémentaire : ioctl()
à un niveau fin, via une table de points d’entrée qui normalise
les opérations réalisées par chaque pilote de périphérique
36 / 58
Situation SGF SGR Annexes
Identification d’un périphériqueclasse (bloc/caractère)
numéro majeur : identifiant du pilote (type du périphérique)
numéro mineur : identifie un périphérique parmi ceux de son type
Interface pilote/noyauroutines d’initialisation
routines de traitement des interruptions
points d’entrée (opérations d’E/S)
2 tables, en fonction de la classe :
bdevsw : périphériques mode bloc
cdevsw : périphériques mode caractère
Chaque entrée de la table correspond à un pilote (numéro
majeur) et contient une série de pointeurs (points d’entrée) vers
les routines de service du périphérique (accès, contrôle. . . )
Communication avec le systèmetampons (blocs/caractères)
37 / 58
Situation SGF SGR Annexes
Structure et interface
Fichiers -33-DIMA, Systèmes Centralisés (Ph. Mauran)
B - Le sous-système d'E/S d'UNIX BSD
But
Masquer les particularités des divers périphériques
➝
Principe
UNIX présente les périphériques
• à un niveau abstrait comme des fichiers séquentiels avec lesquels s’échangent des flots.
◊ leur interface recouvre celle des fichiers
◊ prise en compte des particularités : ➜ opération supplémentaire : ioctl()…
• à un niveau fin, à travers une table de points d’entrée normalisant et abstrayant les opérations réalisées par chaque pilote de périphérique.
{ aux programmes utilisateurs
au reste du noyau (modularité)
{ proposer une interface homogène
gérer ces périphériques
Fichiers -34-DIMA, Systèmes Centralisés (Ph. Mauran)
Structure et interface
Périphériques bloc• disques, bandes… (taille courante d'un bloc : 512 à 4K octets)• utilisent une antémémoire (un cache) : « tampons de blocs »
Périphériques caractère
• tous les périphériques (sauf les interfaces réseau) qui n'utilisent pas le tampon de blocs : ◊ /dev/mem, /dev/null◊ mémoire virtuelle◊ périphériques blocs disposant d’une interface « brute » (p. ex :/dev/dsk et /dev/rdsk)
• échanges par (flots d’) octets• gestion des tampons par le pilote lui-même• les « vrais »périphériques caractère disposent d’un service de cache : les C-listes
Interface logicielle
Interface matérielle
interfaceréseau
pilotes de périphériques mode bloc
pilotes de périphériques mode caractère
protocoles
sockets fichier simple
SGF
interface données corrigéesinterface
brutegestion du terminal
interface données brutes
interface corrigée
mémoire virtuelle
gestion de l'espace de
swap
Fichiers -35-DIMA, Systèmes Centralisés (Ph. Mauran)
Identification d'un périphérique
• classe (bloc/caractère)
• numéro majeur : identifiant du pilote (type du périphérique)
• numéro mineur : identifiant du périphérique parmi ceux de son type
Interface pilote/noyau
• routines d'initialisation
• routines de traitement des interruptions
• points d'entrée (service des requêtes d'E/S), déterminés par la classe2 tables :
- bdevsw : périphériques mode bloc
- cdevsw : périphériques mode caractèreChaque entrée de la table correspond à un pilote de périphérique (numéro majeur) et contient une série de pointeurs (points d’entrée) vers les routines de service du périphérique (ouverture, fermeture, accès, contrôle…)
Communication avec le système
tampons (blocs/caractères)
Fichiers -36-DIMA, Systèmes Centralisés (Ph. Mauran)
C - Sûreté de fonctionnementBut : garantir l'intégrité des données conservées2 aspects
• fiabilité (résistance aux pannes)
• sécurité (contrôles d'accès, d'intégrité, authentification, confidentialité)
FiabilitéMoyen : redondance
Sauvegarde périodique• différentielle/par incréments :
on ne sauvegarde que les fichiers modifiés depuis la dernière sauvegarde
• complète/de reprise
Principe : combiner plusieurs fréquences de sauvegardeExemple
fréquencequotidiennehebdomadairemensuelle
nature incrémentalecomplètecomplète
conservationsemainemoisan
Périphériques blocdisques, bandes. . . (taille courante d’un bloc : 1Ko-8Ko)
utilisent une antémémoire (un cache) : « tampons de blocs »
Périphériques caractèretous les périphériques (sauf réseau) n’utilisant pas le tampon de blocs
/dev/mem, /dev/nullmémoire virtuelle
interface « brute » pour périphériques blocs (ex : /dev/rdsk)
échanges par (flots d’) octets
gestion des tampons par le pilote lui-même (C-listes) 38 / 58
Situation SGF SGR Annexes
Système de fichiers standard Linux (FSSTND) (man hier)
Cette arborescence définit une organisation type pour les fichiers sous Linux
qui se retrouve, avec quelques variantes, sur la plupart des systèmes Unix.
Principaux répertoires de cette arborescence :
/bin ! programmes et commandes utilisateur de base : cat, cp, mv, rm. . .
/boot ! copie des données utiles au démarrage (blocs d’amorce. . . )
/etc ! fichiers de configuration locaux, comme passwd, group, ou utilisés
parTCP/IP, comme services, inetd.conf, exports
/etc/skel ! répertoire type d’un nouvel utilisateur/etc/rc.d ! scripts appelés par init au démarrage du système/etc/X11 ! fichiers de config. X11 (Xconfig, Xmodmap, xinitrc. . . )
/conf ! fichiers de configuration. Si ce répertoire est présent, les fichiers
de /etc sont des liens vers les fichiers de /conf
/dev ! pilotes de périphériques : console (console système), mouse, hda((1er) disque IDE), . . . ,lp0 ((1ère) imprimante), . . . , null (poubelle (sansretour)), sda (1er) disque SCSI)), sda1 (1ère partition de sda), sda2 (2epartition), . . . , sdb ((2e) disque SCSI), . . . , tty (terminal virtuel). . ./home ! répertoires des utilisateurs. Souvent sur une partition distincte.
/install ! informations sur les programmes installés
/lib ! code des bibliothèques partagées
/mnt ! montage de disquettes, de systèmes de fichiers via NFS. . . 39 / 58
Situation SGF SGR Annexes
/sbin ! commandes de base de démarrage et d’administration système :
fdisk, fsck, getty, init, update, ifconfig, ping, lilo. . .
/tmp ! espace de manœuvre par tous les utilisateurs
/var ! fichiers variant souvent : traces, journaux, spoule (/var/spool/),
verrous (/var/lock/)
/usr ! principaux programmes non nécessaires durant le démarrage.
L’idée est de permettre de partager ce répertoire entre machines.
/usr/bin ! commandes utilisateur et programmes système. La séparation
entre /usr/bin,/bin, et /sbin n’est pas toujours claire : il est préférable que
ces répertoires contiennent des liens réciproques
/usr/bin/X11 ! programmes du système de fenêtrage X
/usr/doc ! documentations qui ne sont pas au format man
/usr/include ! fichiers d’include des bibliothèques C
/usr/lib ! librairies statiques de divers langages, talons de liaison avec les
bibliothèques partagées, et divers fichiers de configuration
/usr/lib/X11 ! données X11 (polices, tables de couleur. . . )
/usr/man ! pages du manuel en ligne
/usr/src ! codes sources des programmes système
/usr/local ! installation de programmes supplémentaires. Comprend
souvent des répertoires bin, etc, include, sda, et man
/usr/TeX ! installation du logiciel d’édition TeX
40 / 58
Situation SGF SGR Annexes
Plan
1 Gestion des données rémanentes
2 Gestion des fichiers
3 Organisation des fichiers
4 Annexes
Le sous-système d’E/S d’UNIX BSD
Système de fichiers standard Linux (FSSTND)
Disques physiques
Disques RAID
Sûreté de fonctionnement
Méthodes d’accès
41 / 58
Situation SGF SGR Annexes
Disques durs mécaniques
<rédaction réservée>
42 / 58
Situation SGF SGR Annexes
Disques mémoire flash (SSD)
<rédaction réservée>
43 / 58
Situation SGF SGR Annexes
Disques RAID
<rédaction réservée>
44 / 58
Situation SGF SGR Annexes
Plan
1 Gestion des données rémanentes
2 Gestion des fichiers
3 Organisation des fichiers
4 Annexes
Le sous-système d’E/S d’UNIX BSD
Système de fichiers standard Linux (FSSTND)
Disques physiques
Disques RAID
Sûreté de fonctionnement
Méthodes d’accès
45 / 58
Situation SGF SGR Annexes
Sûreté de fonctionnement
But : garantir l’intégrité des données conservées
fiabilité (résistance aux pannes)
sécurité(contrôles d’accès, intégrité, authentification, confidentialité)
Fiabilité
Moyen : redondance
Sauvegarde périodiquecomplète/de reprise
différentielle/par incréments :
limitée aux fichiers modifiés depuis la dernière sauvegarde
Principe : combiner plusieurs fréquences de sauvegarde
Exemple
Fichiers -36-DIMA, Systèmes Centralisés (Ph. Mauran)
C - Sûreté de fonctionnementBut : garantir l'intégrité des données conservées2 aspects
• fiabilité (résistance aux pannes)
• sécurité (contrôles d'accès, d'intégrité, authentification, confidentialité)
FiabilitéMoyen : redondance
Sauvegarde périodique• différentielle/par incréments :
on ne sauvegarde que les fichiers modifiés depuis la dernière sauvegarde
• complète/de reprise
Principe : combiner plusieurs fréquences de sauvegardeExemple
fréquencequotidiennehebdomadairemensuelle
nature incrémentalecomplètecomplète
conservationsemainemoisan 46 / 58
Situation SGF SGR Annexes
Fiabilité : redondance interne
Principe : fournir plusieurs moyens d’établir une information
Exemplesdupliquer les descripteurs
stocker l’identifiant du fichier dans chacun des blocs du fichier
chaînage double des blocs d’un fichier
RemarquesIl est souvent préférable que les copies soient « éloignées »
Un principe général est de combiner
une information centralisée (efficace) (ex : table d’allocation)
et une information « dispersée » (robuste)
(ex : informations au niveau des blocs)
La redondance peut être exploitée
statiquement (en cas de défaillance)
dynamiquement (calculs d’accès en double)
47 / 58
Situation SGF SGR Annexes
Sécurité
Moyenscryptage + clés (session, fichiers, répertoires, opérations)
listes d’accès
matrice : opérations permises, par utilisateur, et par fichier
raccourcis : droits par défaut, groupes d’utilisateurs
opérations élémentaires (lire/écrire/exécuter. . . )
capacités
clé autorisant l’accès, attribuée en fonction des identificateurs
de l’objet/de l’utilisateur
structure d’une capacité
Fichiers -38-DIMA, Systèmes Centralisés (Ph. Mauran)
SécuritéMoyens
• cryptage + clés (session, fichiers, répertoires, opérations)
• listes d'accès (Matrice : opérations permises, par utilisateur, et par fichier)◊ raccourcis : droits par défaut, groupes d'utilisateurs◊ opérations élémentaires (lire/écrire/exécuter…)
• capacités◊ Clé autorisant l’accès, attribuée en fonction des identificateurs de l’objet/de l’utilisateur◊ Structure d’une capacité :
◊ Pour être efficace, le contrôle des accès devrait avoir lieu à chaque accès (et non à l'ouverture/au premier accès seulement)
droits d'accès identificateurs bits de
contrôle
pour être robuste, le contrôle doit être fait à chaque accès
(et non à l’ouverture/au premier accès seulement)
48 / 58
Situation SGF SGR Annexes
Mise en œuvre des listes d’accès sous UNIX : ACLs (Access Control Lists)Documentation complémentaire : https://www.usenix.org/legacy/publications/library/proceedings/usenix03/tech/freenix03/full_papers/gruenbacher/gruenbacher_html/main.html
Généralisation du mécanisme de droits d’accès Unix (ugo/rwx)
ObjectifMise en place de politiques de sécurité plus fines :
Possibilité d’allouer des droits distincts au sein d’un même groupe
Allocation de droits sur une base individuelle, pour chaque fichier
InterfaceACL = suite d’Access Control Entries (ACE)
Forme d’une ACE : entrée : [uid/gid] : permissions
Deux commandes :
Lecture : getfacl fichier . . .Mise-à-jour : setfacl -x|-m|-s [ ACL ] fichier . . .
Politique de sécurité : seuls le propriétaire et l’usager rootpeuvent modifier l’ACL d’un fichier
49 / 58
Situation SGF SGR Annexes
ACLs : ACEPermissions classiquesPropriétaire : user : :rwx
Groupe du propriétaire group : :rwx
Autres other : :rwx
Permissions étenduesUsager nommé user : nom :rwx
Groupe nommé group : nom : rwx
Masque mask : :rwx
Rôle du masque : limiter les permissions des usagers/groupes nommés
Héritage d’ACLentre répertoiresdefault : <déclaration d’ACE>
SémantiqueUn répertoire hérite de la liste default à la fois en tant que liste
d’ACL effective et liste default pour lui-même ;
La liste default inhibe le filtre umask.50 / 58
Situation SGF SGR Annexes
ACLs : exemple
$ umask 027
$ mkdir dir
$ ls -dl dir
drwxr-x–- ... agruen suse ... dir
$ getfacl dir
# file: dir
# owner: agruen
# group: suse
user::rwx
group::r-x
other::–-
$ setfacl -m user:joe:rwx dir
$ getfacl –omit-header dir
user::rwx
user:joe:rwx
group::r-x
mask::rwx
other::–-
$ ls -dl dir
drwxrwx–-+ ... agruen suse ... dir
51 / 58
Situation SGF SGR Annexes
Plan
1 Gestion des données rémanentes
2 Gestion des fichiers
3 Organisation des fichiers
4 Annexes
Le sous-système d’E/S d’UNIX BSD
Système de fichiers standard Linux (FSSTND)
Disques physiques
Disques RAID
Sûreté de fonctionnement
Méthodes d’accès
52 / 58
Situation SGF SGR Annexes
Méthodes d’accès
Objectif
organiser un ensemble de données pour améliorer l’efficacité des accès,
en fonction des patrons (motifs) d’accès aux éléments de cet ensemble
Parcours de l’ensemble complet ! accès séquentiel
Accès « ponctuel »
à des enregistrements identifiés ! accès indexé
par le contenu ! accès associatif (listes inverses)
53 / 58
Situation SGF SGR Annexes
Accès séquentiel
Métaphore : bande magnétique
Structure de données t fileLes enregistrements sont vus comme une suite
Un curseur (ou index) désigne l’enregistrement accessible
Fichiers -28-DIMA, Systèmes Centralisés (Ph. Mauran)
a) Accès séquentiel
Métaphore : bande magnétique
Structure de données ≈ file
• Les enregistrements sont vus comme une suite, sans possibilité d'accès (direct) par l'indice• Un curseur (ou index, ou position courante) désigne l'enregistrement accessible
• Opérations de base :◊ ouverture/revenir_au_début : l'index désigne le premier enregistrement◊ lecture/passer_au_suivant
- renvoie la valeur de l'enregistrement désigné par le curseur (pour la lecture)- l'index progresse d'un élément
◊ ajout/suppression (écriture)- normalement en fin de fichier- certaines organisations offrent la possibilité de positionner librement le curseur et
d’écrire à partir de la position du curseur (flots Unix)
CurseurOpérations de base :
ouverture/revenir_au_début : curseur sur position 1
lecture/passer_au_suivant
renvoie la valeur de l’enregistrement désigné par le curseur
l’index progresse d’une position
ajout/suppression (écriture)
normalement en fin de fichier
certaines organisations offrent la possibilité de fixer la position
du curseur et d’écrire à partir de celle-ci (flots Unix)
54 / 58
Situation SGF SGR Annexes
Accès direct
But : retrouver un enregistrement à partir (d’une partie) de son contenu
Clés ordonnées : accès indexéClé , partie de l’enregistrement qui permet de l’identifier de manière
unique
! accès à l’enregistrement via une table : < clé, adresse >
Fichiers -29-DIMA, Systèmes Centralisés (Ph. Mauran)
b) Accès directBut : retrouver un enregistrement à partir (d'une partie) de son contenu
clés ordonnées : accès indexéClé = partie de l’enregistrement qui permet de l'identifier
➝ pour accéder (lire, écrire…) à un enregistrement, il suffit de fournir sa clé
table : < clé, adresse >
Accélérer la recherche d'une clé ➝ structuration arborescentearbres équilibrés (B-arbres) : hauteur de l'arbre identique pour toutes les branches, même en cas d'ajouts ou de suppressions « déséquilibrés »
clé
Arthur
Bernard
…
…
Zoé
adresse
4
2
6
fichier
Accélérer la recherche d’une clé ! structuration arborescentearbres équilibrés (B-arbres) : toutes les branches restent de hauteur
voisine, quelle que soit l’évolution de l’arbre55 / 58
Situation SGF SGR Annexes
Faciliter les accès séquentiels : séquentiel indexé
Fichiers -30-DIMA, Systèmes Centralisés (Ph. Mauran)
Favoriser les accès séquentiels : séquentiel indexé• structuration arborescente
• niveau logique « réduit » (adresses physiques)
• un bloc contient des enregistrements dont les clés se suivent (par rapport aux valeurs existant dans le fichier)
• nombre de niveaux réduit/fixe ➝ zones (blocs) de débordement
zones de débordement(les zones de débordement
d'un même index secondaire peuventéventuellement être chaînées)
index primaire(conservé
en mémoire centrale)
index secondaires clé données
100320……
152…320ZD
225335052……80
93……100
102……152
1267……
…………
clé adresse
5080100ZD
…
56 / 58
Situation SGF SGR Annexes
Adressage dispersé (hachage, «hash-code»)
But : éviter la gestion/le stockage d’une table ordonnée <clé,adresse>
! déterminer l’adresse à partir de la clé :
adresse = f(clé) (f : fonction de dispersion (de hachage))
IdéalPour un fichier de N enregistrements,
bijection entre les valeurs de clés présentes et 1,2. . . ,N
Réalité : collisions (f non injective)! f renvoie vers une (tête de) liste
Fichiers -31-DIMA, Systèmes Centralisés (Ph. Mauran)
adressage dispersé (hachage, «hash-code»)Idée : obtenir directement l'adresse, à partir de la valeur de la clé
adresse = f(clé) (f : fonction de dispersion (de hachage))
Idéal
Pour un fichier de N enregistrements, bijection entre les valeurs de clés présentes et {1,2…,N}
Pratique Collisions (f non injective) ➝ f renvoie vers une (tête de) liste
Remarques• mod N est une fonction facile à mettre en œuvre• un accès séquentiel est au mieux une suite d'accès directs
f(clé)12………N
enregistrements10182
<info><info>
11 <info>
clé suivant
enregistrements
<info>
Remarque : modulo N est une fonction facile à mettre en œuvre 57 / 58
Situation SGF SGR Annexes
Accès associatif : listes inverses
Généralisation de l’accès indexé : permettre de retrouver les
enregistrements ayant une valeur donnée, pour un champ donné
MultilistePour chacun des champs pour lequel un accès par la valeur est souhaité
ajouter un champ «pointeur » à chaque enregistrement
! une liste regroupe les enregistrements demême valeur
ajouter une table (index«secondaire»)
< valeur, pointeur vers la tête de liste associée à la valeur >
Fichier inverséPour chacun des champs pour lequel un accès par la valeur est souhaité
un index regroupe, pour chaque valeur,
la liste des clés (ou des adresses) des enregistrements dont le
champ possède cette valeur
l’enregistrement ne contient pas de valeur,
mais un pointeur vers l’entrée de l’index contenant la valeur58 / 58