Quelques exemples de SGF
Pour terminer cette partie, nous allons pr senter bri vement quelques syst mes de gestion de fichiers (SGF),
dont nous avons d j abord s certains aspects titre d'exemple particuliers. Nous d crirons surtout la structure,
sans entrer dans le d tail des algorithmes utilis s par les syst mes, et qui peuvent voluer d'une version l'autre.
11.1. Les syst mes FAT et VFAT
VFAT est une extension de FAT dont nous avons d j parl . Ces SGF sont capables de g rer des partitions dont
la taille est limit e 2 Go. Cet espace est constitu de 3 parties:
"
"
"
la FAT proprement dite, ventuellement dupliqu e,
le r pertoire racine du volume,
les donn es des objets externes du volume.
11.1.1. Repr sentation de l'espace
L'allocation d'espace se fait par bloc de taille fixe, appel s cluster, qui est constitu d'un nombre entier de
secteurs (au plus 255). Les clusters ont un num ro sur 16 bits (au plus 65 535). La FAT a un double r le:
" d terminer les clusters occup s, ceux qui sont libres et ceux qui sont invalides et pour lesquels il y a eu
des erreurs de lecture auparavant,
" d terminer pour chaque cluster allou un objet externe quel est le cluster suivant de cet objet.
L'allocation d'espace se fait bloc par bloc, par un parcours s quentiel de la FAT. Lors d'un parcours s quentiel
d'un fichier logique, le syst me suivra la liste cha n e des clusters. Lors d'un acc s al atoire, il devra galement
effectuer ce parcours depuis le d but de l'objet externe jusqu'au cluster recherch .
11.1.2. Les r pertoires
Ce syst me utilise une arborescence de r pertoires, la racine de cette arborescence tant situ e derri re la FAT.
Notons que cette racine peut contenir 512 entr es, alors que les autres r pertoires peuvent en contenir un
nombre quelconque. Une entr e d'un r pertoire contient 32 octets et est constitu e comme suit:
" Le nom du fichier sous la forme dite "8.3", c'est- -dire, 8 caract res avant le point et 3 apr s. Ces noms
doivent commencer par une lettre et sont insensibles la casse (pas de diff renciation entre les
majuscules et les minuscules).
" Un ensemble d'attributs pr cisant, entre autre, la nature de l'objet externe (fichier ou r pertoire) et sa
protection ( criture autoris e).
" L'heure et la date de derni re modification de l'objet externe.
" Le num ro du premier cluster de l'objet externe.
" La longueur utile en octet de l'objet externe sur 32 bits.
" De plus,10 octets sont inutilis s.
Un r pertoire contient toujours deux entr es particuli res: "." qui d signe le r pertoire lui-m me et ".." qui
d signe le r pertoire parent.
Notons ici une extension apport e par le syst me VFAT, pour permettre les noms longs. Lors de la cr ation
d'un nom de fichier, qui peut tre sur 255 caract res, le syst me cr e en fait 2 noms: l'un est le nom origine,
l'autre est un alias sous la forme DOS 8.3 construit partir du nom long. Le nom DOS occupe une entr e du
r pertoire, et les entr es suivantes contiennent les tranches successives de 13 caract res du nom long. Un tel
nom long peut donc occuper jusqu' 21 entr es! Comme le r pertoire racine est limit 512 entr es, ceci a pour
cons quence de limiter 24 objets externes ce r pertoire si on utilise des noms de 255 caract res ce niveau.
Notons que si le syst me FAT (et VFAT) a t cr par Microsoft pour le DOS, il est maintenant compatible
avec un grand nombre de syst mes. Par ailleurs, on peut noter qu'il permet une assez bonne occupation de
l'espace et devrait donc tre r serv de petites partitions.
11.2. Les syst mes HFS et HFS Plus de MacOS
Le syst me HFS Plus est une nouvelle version de SGF, introduite par Apple pour pallier certaines limites de
HFS, tout en reprenant les m mes concepts. Nous allons d crire HFS, et montrerons les volutions. Une
partition HFS (Hierarchical File System) est constitu e de 6 parties:
" Les informations de d marrage du syst me permettent, par exemple, de localiser le syst me dans la
partition, ou de conna tre la taille des tampons internes, etc. Cette partie contient des z ros si la partition
n'est pas une partition de d marrage.
" Le descripteur du volume. On y trouve, en particulier, le nom du volume (limit 27 caract res), ainsi
que des informations diverses sur la structure du volume.
" La table bitmap d crivant l' tat d'allocation du volume.
" Le catalogue des fichiers et r pertoires.
" Le fichier de description des extensions.
" Les espace des objets externes du volume.
Les objets externes (fichiers et r pertoires) cr s sur le volume re oivent un num ro interne unique
d'identification que nous app lerons Num-ID. Ce num ro est d fini la cr ation du fichier ou du r pertoire.
11.2.1. La repr sentation de l'espace.
HFS utilise le principe de l'allocation par zone, un objet externe pouvant avoir un nombre quelconque de zones
chacune tant de taille quelconque (cf. 8.2.3). La taille du quantum est un nombre entier de secteurs. Nous
utiliserons le terme de bloc pour d signer les unit s d'allocation. Les blocs sont num rot s sur 16 bits, limitant
65536 le nombre de ces blocs. Ceci a deux cons quences:
" La table bitmap voqu e ci-dessus est de taille fixe d'au plus 8 Ko.
" La taille d'un quantum est gal au moins la taille de la partition divis e par 65536, soit 64 Ko pour une
partition de 4 Go.
Nous verrons ci-dessous que les r pertoires n'ont pas d'espace qui leur soit allou en propre. Par contre, tout
fichier contient deux parties distinctes: la partie ressource et la partie donn es, chacune d'elles tant limit e en
taille 2 Go. Cette s paration est souvent utilis e par les applications pour isoler la partie pr sentation de la
partie contenu. Ce qui nous importe ici est que chacune poss de son propre espace allou . Notons que, en
Advertisement
g n ral, la partie ressource est assez petite, mais, si elle n'est pas vide, elle occupe au moins un bloc.
Le descripteur de fichier contient la description des trois premi res zones allou es chacune des parties du
fichier, chaque zone tant d crite par le num ro du premier bloc et le nombre de blocs. Si une partie a besoin de
plus de trois zones, les descriptions des zones manquantes sont regroup es, par groupe de 3, dans le fichier de
description des extensions vu plus haut.
Chaque entr e de ce fichier est constitu e des champs suivants, les trois premiers composant la cl
d'identification de l'entr e:
" Num-ID du fichier.
"
" Num ro logique l'int rieur du fichier correspondant la premi re zone. Ce num ro est en fait gal la
Indicateur pr cisant si on a affaire la partie ressource ou la partie donn es.
somme des longueurs des zones allou es qui pr c dent la premi re du groupe.
" Description des trois zones allou es.
Pour faciliter les acc s, les entr es sont organis es en arbre B*. Nous n'entrerons pas ici dans le d tail d'une
telle structure, mais nous sugg rons le lecteur de voir un cours de structures de donn es. Bri vement, la figure
11.1 donne un exemple simple d'arbre B*, o les cl s sont simplement des entiers. Dans notre cas, chaque nSud
occupe un secteur.
Fig. 11.1. Exemple d'arbre B* utilis dans HFS.
Notons que si un fichier est fragment , et occupe plus de 3 zones, le syst me devra rechercher dans l'arbre le ou
les groupes de 3 zones n cessaires. Cependant, les entr es correspondantes sont en fait ordonn es dans le
fichier de description des extensions, puisqu'il s'agit d'un arbre B*.
Le fichier de description des extensions est galement utilis pour conserver les blocs invalides, c'est- -dire
ceux pour lesquels on a d tect une erreur permanente. Ces blocs sont affect s, comme zone d'extension, un
objet externe de Num-ID particulier qui n'est rep r par aucun r pertoire. Ainsi, ces blocs sont consid r s
comme allou s, mais l'objet auquel ils sont allou s n'est pas accessible.
11.2.2. Les r pertoires
Ce syst me utilise une arborescence de r pertoires, mais avec une repr sentation originale de cette
arborescence, puisque l'ensemble est galement repr sent dans un arbre B* unique, que nous avons appel ci-
dessus le catalogue des fichiers et r pertoires. chaque objet externe, on associe une entr e de ce catalogue qui
est constitu e essentiellement des champs suivants, les deux premiers composant la cl d'identification de
l'entr e:
" Num-ID de son r pertoire parent.
" Nom de l'objet externe, limit 31 caract res quelconque l'exception du ':', la casse n'intervenant pas
dans les comparaisons.
" Le type de l'entr e, et donc de l'objet externe, fichier ou catalogue.
" Dates de cr ation, modification et sauvegarde.
" Num-ID de l'objet lui-m me.
" Descripteur de fichier dans le cas d'un fichier. En particulier, pour chacune des parties du fichier, la
taille physique (allou e), sa taille logique (utile) et les descripteurs des trois premi res zones allou es
cette partie.
Par ailleurs, le catalogue contient des entr es sp ciales qui permettent de remonter dans l'arborescence depuis
un r pertoire son parent, et que nous appellerons un lien. Une telle entr e est constitu e comme suit, les deux
premiers champs tant toujours la cl de l'entr e:
" Num-ID du r pertoire
"", ou cha ne vide.
"
" Le type de l'entr e en tant que lien.
" Num-ID de son parent.
" Nom du r pertoire lui-m me.
Par ailleurs, le catalogue, en tant que arbre B*, a toutes ses entr es ordonn es par cl s croissantes. Par
cons quent, le lien d'un r pertoire vers son parent est imm diatement suivi des entr es correspondant aux objets
externes qu'il contient.
11.2.3. Coh rence du SGF
Comme dans tout syst me de gestion de fichier, les informations sur la structure sont tr s importantes et doivent
tre coh rentes entre elles. Ainsi, la table bitmap ne doit pas indiquer comme libre un bloc qui serait allou un
fichier. Conform ment ce que nous avons dit en 10.2.1, lorsqu'il y a redondance d'informations, on peut
distinguer les informations primaires et les informations secondaires, celles-ci ayant pour but de donner des
acc s efficaces. Dans le cas des informations sur l' tat d'allocation des blocs, les informations primaires sont les
descriptions des zones allou es, et la table bitmap constitue les informations secondaires permettant d'acc l rer
les recherches de blocs libres.
De m me, pour pouvoir attribuer un Num-ID aux objets lors de la cr ation, il faut conna tre le dernier attribu .
Cette information secondaire est m moris e dans le descripteur du volume. L'information primaire est
repr sent e en fait par la plus grande valeur des Num-ID existant sur le volume.
Pour garantir cette coh rence, HFS maintient un indicateur dans le descripteur de volume, qui indique que le
volume n'a pas t d mont proprement. Cet indicateur est crit sur disque lors du montage en criture du
volume, et remis z ro lors du d montage du volume. Il permet donc de savoir lors d'un montage si une
v rification de coh rence est n cessaire.
11.2.4. Le syst me HFS Plus
Ce syst me a pour but de lever les contraintes rencontr es dans HFS. Nous ne mentionnerons ici que les
modifications les plus importantes pour l'usager:
" La plus importante que nous ayons vu est la limitation du nombre de quanta d'une partition, impliquant
d'avoir une taille de quantum importante pour les grosses partitions. Cette contrainte est lev e en
prenant 32 bits pour les num ros de blocs d'allocation. videmment cela a pour cons quence
Advertisement
d'augmenter notablement la table bitmap, qui devient un fichier, permettant d'homog n iser les acc s.
" La taille maximale de chacune des parties d'un fichier est elle aussi augment e, puisqu'elle est port e
263 octets.
" Comme les blocs deviennent plus petits et peuvent conduire une fragmentation plus importante, et
donc un nombre plus grand de zones, les groupes ont t port s 8, tant dans le descripteur de fichier
que dans les entr es du fichier de description des extensions.
" Les noms des objets ne sont plus limit s 31 caract res MacRoman (codage sur 8 bits), puisqu'un nom
peut avoir maintenant 255 caract res Unicode (16 bits). Ceci a conduit augmenter la taille des nSuds
de l'arbre B* du catalogue (4 Ko par d faut), car plus ces nSuds contiennent de valeurs, plus la hauteur
de l'arbre est faible.
" Un troisi me fichier de volume organis en arbre B* a t introduit pour permettre terme de g rer
plusieurs attributs d'un fichier, mais il s'agit plus d'ouverture vers l'avenir et d' viter ainsi d'avoir
red finir un nouveau SGF, car les sp cifications compl tes ne sont pas encore compl tement d finies en
mars 1999. Ce fichier devrait permettre, par exemple, d'avoir plus de deux parties pour un m me fichier,
et de pouvoir nommer ces parties.
11.3. Le syst me NTFS
Ce syst me a t cr par Microsoft pour tre le syst me de gestion de fichier de Windows NT. Plusieurs
syst mes existaient initialement, comme VFAT ou HPFS de OS/2, mais aucun ne satisfaisait aux crit res de
fiabilit et de taille d'un syst me moderne.
En dehors du premier secteur de la partition, qui contient un ensemble minimal d'informations comme la
localisation du fichier MFT dont il est question ci-dessous, ce SGF consid re que "tout est fichier". Le
formatage d'une partition en volume NTFS consiste donc cr er un certain nombre de fichiers qui donnent la
structure du volume. Nous ne d crirons que certains de ces fichiers.
" Le fichier des descripteurs de fichiers, appel la Master File Table (MFT), qui commence par son
propre descripteur. Il peut commencer n'importe o dans la partition, il est n cessaire de conna tre cet
endroit a priori, pour pouvoir acc der son descripteur, ce qui est indiqu dans le premier secteur de la
partition. Notons que ce fichier est doubl pour des raisons de s curit , la copie tant aussi rep r e par le
secteur 0 de la partition.
" Le fichier du volume, contenant en particulier le nom du volume.
" Le fichier bitmap d crivant l' tat d'allocation du volume.
" Le r pertoire racine du volume.
" Le fichier journal qui a pour but de garantir la fiabilit de la structure.
11.3.1. Les descripteurs de fichiers
Chaque objet externe re oit, sa cr ation, un num ro qui est l'indice dans la MFT o est situ son descripteur.
La taille de ces descripteurs est fix e la cr ation du volume et est comprise entre 1 Ko et 4 Ko, ce qui est donc
relativement important. Un objet externe, fichier ou r pertoire, est constitu d'un certain nombre d'attributs qui
peuvent tre r sidents, c'est- -dire, rang s dans le descripteur de l'objet externe lui-m me, ou non r sident et
donc l'ext rieur de la MFT dans un espace qui lui est allou en propre. Voici quelques exemples d'attributs :
" Le nom de l'objet externe sous forme d'une suite de au plus 255 caract res Unicode.
" Les informations de base habituelles, comme les dates de cr ation, modification ou d'acc s.
" Les informations de protections de l'objet.
" Le ou les contenus des fichiers ou r pertoires.
Un m me objet externe peut avoir plusieurs attributs "nom", correspondant au principe des liens physiques
nonc s au 9.4.3.
Si un fichier est suffisamment petit, tous ses attributs, et donc son contenu se trouvera dans le descripteur. Dans
les autres cas, certains attributs (en particulier les donn es) seront non r sidents.
NTFS utilise le principe de l'allocation par zone pour les attributs non r sidents d'un objet externe , et la valeur
de l'attribut est remplac e dans le descripteur par la suite des descriptions des zones allou es. Le nombre de
zones est quelconque, chacune tant de taille quelconque (cf. 8.2.3). La taille du quantum est un nombre entier
de secteurs, ce nombre tant une puissance de 2. Le terme de cluster d signe les unit s d'allocation. Les clusters
sont num rot s sur 64 bits, ce qui implique qu'il n'y a pratiquement pas de limite aux nombres de clusters d'un
volume. Comme un descripteur de zone doit localiser le premier cluster de la zone et son nombre de clusters,
soit 16 octets, une technique de compression est utilis e, d'une part en prenant son d placement par rapport au
premier cluster de la zone pr c dente, et en supprimant les octets nuls en t te de ces deux valeurs.
La longueur d'un attribut non r sident est m moris e sur 64 bits, ce qui permet donc des fichiers dont la taille
n'est pratiquement limit e que par l'espace disponible sur le volume.
Notons que le contenu d'un fichier est un attribut sans nom, mais l'utilisateur peut cr er des attributs nomm s
qui peuvent avoir des contenus s par s dans des espaces distincts. L'implantation de serveur de fichier
MacIntosh sur Windows NT utilise ce principe pour s parer la partie ressource et la partie donn e (voir HFS).
11.3.2. Les R pertoires
NTFS utilise une arborescence de r pertoire. Le contenu d'un r pertoire est organis en arbre B+, qui se
rapprochent des arbres B* vus plus haut, si ce n'est que les donn es associ es aux cl s sont r parties dans tous
les nSuds au lieu de n' tre que dans les feuilles comme sur la figure 11.1. Les entr es d'un r pertoire
contiennent les informations suivantes, la premi re tant la cl :
" Le nom de l'objet,
" Le num ro de l'objet dans la MFT, permettant de localiser son descripteur.
" Les dates de cr ation, modification ou d'acc s de l'objet,
" La taille de l'objet
" Le num ro du r pertoire parent qui le contient dans la MFT.
En fait seuls les deux premiers sont effectivement n cessaires, puisque les trois derniers se trouvent dans le
descripteur de l'objet. Cette duplication a un avantage et un inconv nient. L'avantage est que l'on a acc s aux
informations essentielles de l'objet sans devoir acc der au descripteur. L'inconv nient est inh rent la
duplication: toute modification de ces informations doit tre port e plusieurs endroits sur le disque, sous peine
Advertisement
d'avoir des donn es incoh rentes. Notons qu'il peut para tre surprenant de trouver dans cette entr e le num ro
du r pertoire qui contient l'entr e! En fait, Toutes ces informations, avec la cl , font partie l'attribut "nom de
fichier", pr sent dans le descripteur du fichier, et en sont une copie. Or, le num ro du r pertoire parent d'un
fichier permet de remonter l'arborescence des fichiers et r pertoires, en retrouvant ainsi le parent de chaque
r pertoire.
Le principe des arbres B implique que des nSuds soient cr s ou supprim s au fur et mesure des adjonctions
ou suppressions. La suppression d'un nSud peut ne pas tre le dernier nSud physique du r pertoire, et il faut
pr voir sa r utilisation ult rieure. Ceci se fait en d finissant un attribut "bitmap" pour chaque r pertoire qui
indique quels sont les nSuds libres. S'il n'y en a plus, une allocation d'une nouvelle zone est effectu e, et la
table bitmap est mise jour pour tenir compte des nSuds libres ajout s.
11.3.3. Compression de donn es
NTFS propose une technique de compression/d compression des fichiers au fur et mesure des acc s. L'id e
est de d couper le contenu du fichier par tranche dont la taille correspond 16 clusters, et de tenter de
compresser chaque tranche ind pendamment les unes des autres. La compression n'est effective que si elle fait
gagner au moins 1 cluster. Dans ce cas, les clusters gagn s ainsi sont m moris dans la suite des descripteurs de
zones par une zone marqu e non allou e dont la taille correspond au nombre de clusters gagn s. A la lecture,
l'op ration inverse est effectu e. Notons que la mise en Suvre de la compression/d compression sur un fichier
est m moris dans le descripteur du fichier, l'utilisateur n'ayant pas s'en pr occuper ensuite. videmment cette
technique est co teuse en temps processeur, et doit tre utilis e bon escient.
11.3.4. S curit par fichier journal
Les op rations mises en Suvre sur les structures de fichiers, en g n ral, concernent plusieurs secteurs distincts
r partis sur le volume. Les modifications ne peuvent toutes tre port es sur le disque en une seule fois, mais
doivent tre effectu es en s quence. videmment, les syst mes tiennent compte de l' ventualit d'une panne qui
emp che le d roulement complet de la s quence et entra ne une incoh rence. Ceci est obtenu en d finissant
pour chaque op ration l'ordre qui donnera le minimum de d g t en cas de panne. En particulier, il est pr f rable
de perdre de l'espace disque plut t que de risquer d'allouer deux fois le m me bloc deux objets diff rents. En
fait, il est presque toujours possible de r tablir la coh rence et retrouver les blocs non allou s, mais cela peut
tre co teux en temps.
Dans le cas des SGF modernes, le risque est aggrav par le fait que bien souvent les op rations sont effectu es
dans des tampons en m moire, et que l' criture de ces tampons sur disque est effectu e plus tard, pour gagner
en performance et en efficacit (principe de l' criture paresseuse). Par exemple, une cr ation de fichier donnera
souvent lieu dans un avenir proche une ou plusieurs allocations d'espace disque. Le report des critures de la
table bitmap peut avoir pour cons quence qu'elle ne sera crite qu'une seule fois lorsque tout sera termin .
La structuration d'un volume en NTFS contient un fichier particulier, dit fichier journal, qui va avoir un r le
analogue au fichier journal des syst mes de gestion de bases de donn es classiques, dans lequel sera m moris e
la s quence des actions effectu es sur le disque dans le but de pouvoir soit les refaire soit les d faire apr s une
panne. Cette utilisation fait appel la notion de transaction, qui signifie, entre autre, que l'on garantit que toutes
les op rations l mentaires de la transaction sont effectu es, m me en cas de panne, ou que aucune n'est faite.
Expliquons bri vement le d roulement des op rations lors de la cr ation d'un fichier avec allocation d'espace.
Les op rations sont les suivantes:
1. Initialisation d'une transaction.
2. Cr ation d'un descripteur du fichier dans la MFT.
3. Cr ation de l'entr e dans le r pertoire parent,
4. Mise l' tat non libre des bits correspondants aux clusters allou s, dans la bitmap,
5. Cl ture de la transaction.
Les op rations 2, 3 et 4 sont faites dans des tampons en m moire, et lors de la cl ture de la transaction, il est
probable que ces tampons n'ont pas encore t crits sur disque. Chacune de ces op rations donne lieu un
enregistrement dans le fichier journal qui d crit comment "refaire" et comment "d faire" l'op ration
correspondante. En fait ces enregistrements sont mis dans des tampons en m moire, en vue d'une criture
ult rieure, comme pour tout fichier. Cependant le gestionnaire de ces tampons fera en sorte que les tampons du
fichier journal soient crits sur disque avant l' criture des autres tampons. De plus, p riodiquement, l' tat des
transactions ainsi que la liste des tampons en m moire non encore crits sur disque sont enregistr s dans le
fichier journal. En cas de panne une analyse du fichier journal permet de savoir les transactions cl tur es dont
les actions n'ont pas t port es physiquement sur disque et qui doivent donc tre refaites, ou les transactions
non cl tur es dont les actions port es physiquement sur disque doivent tre d faites.
11.4. Le syst me ext2fs de Linux
Linux est un syst me d'exploitation qui s'apparente fort Unix, tout en tant un logiciel libre. Le syst me de
fichier initial tait d riv de celui du syst me Minix, lui aussi d riv d'Unix pour l'enseignement. Le SGF de
Minix tant cependant trop contraint, un nouveau syst me de gestion de fichier a t crit, ext2fs.
11.4.1. La repr sentation de l'espace
Comme d'habitude, l'ensemble du disque est d coup en blocs dont la taille est un multiple (puissance de 2) de
la taille d'un secteur. Ext2fs pratique l'allocation par bloc de taille fixe, plusieurs niveaux (cf. 8.3.2). Les
descripteurs d'objets externes sont repr sent s dans ce qui est appel un inSud, qui sont regroup s dans une
table, l'indice dans la table, appel le num ro du inSud (i est l pour integer), identifiant de fa on unique cet
objet. Une table bitmap d crit l' tat d'allocation des inSuds, et une autre d crit l' tat d'allocation des blocs. Pour
des raisons de performances, en particulier sur les gros disques, ces tables sont morcel es et r parties dans la
partition.
Une partition est d coup e en groupes de m me taille, chaque groupe comportant 6 parties:
" Le super bloc, qui contient les informations de structure du volume.
" La liste des descripteurs de groupe, qui localise sur le disque les informations essentielles de chaque
groupe (localisation des tables).
" La table bitmap d' tat d'allocation des blocs du groupe.
" La table bitmap d' tat d'allocation des inSuds du groupe.
Advertisement
" La table des inSuds du groupe.
" Les blocs de donn es.
Le super bloc et la liste des descripteurs de groupe sont donc r p t s au d but de chaque groupe, pour des
raisons de fiabilit . Lors du montage, on ne lit en fait que ceux du premier groupe. Cette s paration en groupes
doit plus tre vue comme une r partition des donn es sur le disque, dans le but d'am liorer les performances. La
taille d'un groupe est d'ailleurs limit e, puisque chaque table bitmap d'un groupe doit tenir dans un seul bloc. Si
la taille de la partition est importante, il y aura beaucoup de groupes.
Les groupes ont pour but de rapprocher dans un espace physique proche les informations qui sont reli es entre
elles. Ainsi, lors d'une allocation d'un inSud, on cherchera de pr f rence dans le groupe du r pertoire o il est
r f renc ; de m me, lors de l'allocation d'un bloc, on cherchera d'abord le bloc qui suit le dernier allou
l'objet, puis dans son voisinage imm diat ( 32), puis dans le m me groupe et enfin dans les autres groupes.
Un descripteur d'objet externe contient videmment le type de l'objet, des informations pour sa protection, sa
longueur, les dates habituelles de cr ation, modification, acc s et destruction, ainsi que les informations de
localisation du contenu, qui sont semblables celles de la figure 8.4 (la seule diff rence est qu'il y a en g n ral
12 blocs directs au lieu de 10). La taille d'un objet externe est limit 2 Go, mais la taille d'une partition peut
atteindre 4 To.
11.4.2. Les r pertoires
Ext2fs g re une arborescence de fichiers. Le contenu d'un r pertoire tant une liste d'entr es constitu es de
couples <inSud, nom>, le nom tant limit 255 caract res. Les deux premi res entr es d'un r pertoire sont les
entr es "." et ".." habituelles. Il est possible d'avoir plusieurs noms ou chemins d'acc s pour le m me inSud.
Ceci a pour cons quence que la suppression d'une entr e dans un r pertoire n'entra ne pas obligatoirement la
suppression du inSud correspondant. Celle-ci ne sera effective que s'il n'existe plus d'entr e associ e ce
inSud dans aucun r pertoire. En dehors de la suppression d'une entr e dans un r pertoire, qui n'affecte donc que
cette entr e, toutes les autres op rations effectu es par l'un des chemins aura les m mes r percussions par
l'autre.
Ce syst me permet aussi la cr ation de liens symboliques (cf. 9.4.3). Dans ce cas, il s'agit de cr er un objet
externe (avec inSud et contenu), du type lien symbolique, et dont le contenu sera le chemin d'acc s l'objet
reli . Rappelons que dans ce cas la recherche de l'objet externe reli implique la r valuation du chemin
d'acc s.
11.4.3. S curit
Comme beaucoup de syst mes, ext2fs est bas sur l'utilisation de caches m moire des blocs disques, l' criture
des blocs modifi s tant report e ( criture paresseuse). Cela peut avoir pour cons quence des incoh rences dans
la structure du volume. L' criture d'un bloc est effective lorsque le tampon qu'il occupait est r cup r pour un
autre bloc. De plus, cette criture est forc e automatiquement une p riode r guli re. Comme tous les
syst mes, il est cependant recommand de toujours l'arr ter par la commande associ e. Dans ext2fs, chaque
objet externe, est attach un indicateur qui, lorsqu'il est positionn , demande que le inSud et les blocs indirects
sur disque soient synchrones avec leur contenu en m moire, c'est- -dire, que toute modification en m moire
soit port e imm diatement sur le disque, avant de retourner au programme d'application. Pour l'utilisateur, la fin
d'ex cution de l'op ration signifie pour lui un tat coh rent de la structure disque, en regard de son fichier.
Notons deux attributs d finis par ext2fs et attach s chaque fichier :
" L'attribut de "secret" implique que, lors de la destruction du fichier, le contenu doive tre effac en le
remplissant de donn es al atoires. Cela vite que des donn es sensibles puissent tre vues lors de la
r allocation des blocs qui les contenaient.
" L'attribut de "r cup ration" permet la r cup ration d'un fichier d truit, jusqu' un certain point.
11.5. Structuration en couche du syst me
Certains syst mes permettent de manipuler, au m me moment, des volumes structur s diff remment. C'est
assez naturel lorsque l'un des SGF est une extension de l'autre par le m me concepteur, comme par exemple
HFS et HFS Plus. La caract ristique de standard de fait de FAT fait que pratiquement tous les syst mes
implantent ce SGF en plus de leur propre SGF propri taire. Windows NT reconna t et g re FAT, VFAT, HPFS
(de OS/2) et NTFS. Il ne reconna t pas HFS, mais est capable de simuler un serveur de fichier de ce type sur un
r seau, en s'appuyant sur NTFS. Linux permet la manipulation de tous les SGF voqu s dans ce chapitre, au
moins en lecture, si ce n'est en criture.
La reconnaissance simultan e de plusieurs SGF est en g n ral bas sur un d coupage du logiciel en couches, en
d finissant les sp cifications entre les couches:
" Le syst me de fichier virtuel (SFV) est la vue homog ne de tous les SGF r els. Il est d fini en interne en
terme de structures de repr sentations et d'op rations de manipulations de ces structures.
" Le syst me de tampons m moire qui contiennent les blocs disque (le cache).
" Le disque abstrait est une vue homog ne des tous les disques support s par l'installation. Il d finit un
ensemble d'op rations d'acc s disques l mentaires ind pendantes des p riph riques physiques eux-
m mes .
Les couches du logiciel sont les suivantes:
" La couche haute, proche de l'application, implante les op rations d'acc s n cessaires aux programmes
d'applications en voyant le syst me de fichier avec la structure de SFV.
" La couche interm diaire, li e un SGF, assure l'interface entre le SFV et les tampons m moire. Elle
assure la transformation entre les structures du SFV et du SGF particulier et implante les op rations du
SFV, selon les caract ristiques du SGF, en se servant de ces tampons.
" Le gestionnaire de cache g re les tampons m moire et lance les op rations n cessaires vers le disque
abstrait.
" Les pilotes des disques, li s aux p riph riques eux-m mes, implantent les op rations du disque abstrait
en terme d'op rations concr tes du disque.