DOWNLOAD !!!
Présentation Powepoint (NTFSvsUFS.ppt)
Pages HTML de présentation Powerpoint
Adressage des données dans un système de gestion de fichier de type Unix (UFS).
|
Bruno BORNIL Groupe 2 IR5 / INGENIEURS 2000 |
|
Informatique & Réseaux 5 |
UMLV 2000-2001 |
Sommaire *
I. Introduction & définition *
II. Le Système de Gestion de Fichiers sous Unix *
2) Types de fichiers : *
3) Catalogues : *
4) Les inodes *
5) Organisation des disques / Structure du disque *
6) Quelques caractéristiques : *
III. Le Système de Gestion de Fichiers sous Windows NT *
2) Structure disque : *
3) " Master File Table " et Metafiles : *
a) Principe *
b) Pratique *
4) La MFT en détail: *
c) MFT et "File Record" *
d) File Record en détail: *
e) Attribut $Data d'un File Record: *
5) File Reference : *
IV. Comparaison des SGF Unix / Windows NT *
Conclusion *
Références : *
b) Sites Web : *
Le Système de Gestion de Fichiers (SGF) joue un rôle central dans un système d’exploitation car il doit gérer la plupart des informations des usagers et du système lui-même.
Le fichier est l’unité logique de base d’un SGF.
La conservation des fichiers et la réalisation des fonctions d’accès impliquent la prise en charge par le SGF de :
C’est tout cela qui regroupe le fonctionnement d’un système de gestion de fichiers dont voici l'illustration:
Transparence pour l’utilisateur de l’organisation
physique des données sur Disque.
Le SGF est aussi un outil de manipulation des fichiers et de la structure d’arborescence des fichiers sur disque.
Nous allons présenter dans la suite de ce dossier deux grands systèmes de gestion de fichiers : celui d’Unix suivi de celui de Windows NT. Nous ferons dans une autre partie la comparaison entre ces deux SGF pour en tirer des conclusions dans une dernière partie.
Un fichier Unix est une suite finie de bytes (octets). Un fichier est matérialisé par une inode et des blocs du disque.
C’est l’inode qui définit les fichiers avec un ensemble d’informations (taille, dates, localisation…).
Le système de fichier d’Unix ne propose pas de structure particulière en ce qui concerne la structure interne du fichier : elle est de la responsabilité de l’utilisateur.
S5FS : System V FS, le système de fichier original du Système V.
UFS : Unix File System, le système de fichier d’Unix (standard)
BFFS : Berkeley Fast File System, une amélioration (performances et fonctionnalités) de l’UFS. Ecrite par Kirk McCusick.
(Réf. Systèmes de fichiers)
Il existe principalement 4 types de fichiers sous Unix :
Structure hiérarchisée des répertoires.
Un fichier catalogue contient une liste des noms de fichiers qui lui sont rattachés.
Chaque fichier étant identifié par son inode.
Un catalogue est un fichier ordinaire dans lequel seul le système a le droit d’écrire. Il contient des entrées de 16 octets (pour une version système V et antérieure): 2 octets pour l’inode (ou 16 bits) et 14 pour le nom du fichier
Remarque : Cela nous donne donc un maximum de 216 soit 65536 numéros d’inodes différents ! Ce qui correspond au nombre de fichier total.
Cette arborescence (de type graphe acyclique) est née grâce au projet MULTICS.
Ce sont les inodes qui définissent les fichiers sous Unix. C’est en fait une structure contenant les informations suivantes :
ATTENTION : le système manipule un fichier uniquement en utilisant son inode et non le nom symbolique attribué par l’utilisateur. L’information du nom symbolique se trouve d’ailleurs au niveau du répertoire et non au niveau de l’inode.
Adressage des blocs dans les inodes.
Un inode (ou nœud-i) contient 13 adresses sur le disque, sous la forme de 13 numéros de blocs. Les 10 premières adresses sont celles des 10 premiers blocs du fichier. Si le fichier contient plus de 10 blocs (soit plus de 5120 octets), la 11ème pointe sur un bloc qui contient les adresses de 128 blocs suivant : on parle alors de simple indirection. Si le fichier est toujours plus grand (>138 blocs soit 70656 octets) la 12ème adresse pointe sur un bloc dont chacune des 128 adresses pointe sur un bloc de 128 adresses de 128 blocs de fichier. Pour les fichiers encore plus gros (> 8459264 octets soit 8Mo), la 13ème adresse utilise un schéma à 3 niveaux d’indirection : ce qui porte la taille maximale d’un fichier à 1Go (1082201088 octets).
Dans le cas d’adresses de 256 blocs, on atteint un nombre maximal de blocs pour un fichier de:
Blocs directs :10
+ Blocs indirect_1 : 256 = 256
+ Blocs indirect_2 : 2562 = 65536
+ Blocs_indirect_3 : 2563 = 16777216
soit un total de : 16843018 blocs.
Si notre SGF possède des blocs de 512 octets : 8 Go
Les droits d’accès sur les fichiers
Cela nous donne une combinaison de 3x3=9 droits d’accès différents.
C’est à la création du système de fichier que l’organisation structurelle du FS est créé afin de permettre une gestion de ces fichiers.
Un disque est vu par le système comme un tableau de blocs (de 512 octets ou plus suivant la taille de base des blocs). Le SGF découpe le disque en 4 régions distinctes.
Les régions d’un disque UFS.
Voici les composants de cette structure :
C’est en 1988 que Microsoft décida de crée un tout nouveau système de fichier pour remplacer le FAT du MS-DOS/Windows et le HPFS de l’OS/2 : le " New Technology File System " allait naître en même temps que Windows NT !
Cette image illustre que le système de fichier de Windows NT est une véritable structure de donnée, équivalente à une base de donnée !
Ici, la plus petite unité d’allocation disque se nomme Cluster. Un Cluster est formé de 4 secteurs. En voici une illustration :
secteurs & clusters d'un disque dur.
Pour s’adresser au disque, NTFS utilise deux terminologies :
On appelle "metadata files" les 16 premiers fichiers de cette table (indexes 0 à 15 de cette table). L'ensemble de ces metafichiers sont automatiquement créés par Windows NT lors de la création du système de fichier NTFS. Ce sont des fichiers nécessaire au bon fonctionnement du SGF.
NB: Il est possible d'obtenir des informations sur ces metafichiers en lançant dans une boite de prompt la commande suivante
> dir /ah <filename>
avec <filename> le nom du metafichier dont on souhaite obtenir des informations.
Voici une liste, exhaustive (les 5 entrées qui manquent sont des entrées non utilisées par le SGF de Windows NT), des noms de ces metafichiers.
NameMFT Record Description
$MFT 0 Master File Table-NTFS's command central
$MFTMIRR 1 Copy of the first 16 records of the MFT
$LOGFILE 2 Transactional logging file
$VOLUME 3 Contains volume serial number, creation time, and dirty flag
$ATTRDEF 4 Attribute definitions
. 5 Root directory of the disk
$BITMAP 6 Contains drive's cluster map (in-use vs. free)
$BOOT 7 Boot record of the drive
$BADCLUS 8 Lists bad clusters on the drive
$QUOTA 9 Contains user quota information-unused before NT 5.0 NTFS
$UPCASE 10 Maps lowercase characters to their uppercase version
Voici un mini-benchmark; il a consisté à lancer la commande décrite précédemment ( dir /ah $metadatafile ) ce qui donne des informations de date, de taille et de nom pour les différents fichiers…
Ces tests ont été réalisés sur un système compatible IBM, Intel Celeron 450, sous l'OS Microsoft Windows NT 4.00.1381 (SP6).
Voici quelques informations récupérées depuis ce système Windows NT; ces informations sont relatives au disque NTFS sur lequel repose NT.
Informations sur G:\, le Volume NTFS.
13 256 Fichiers et 872 Dossiers !
Voici les résultats:
$Nom Taille du fichier Nom Réel
$MFT 1 036 288 octets $MFT
$MFTMIRR 4096 octets $MFTMirr
$LOGFILE 4 194 304 octets $LogFile
$VOLUME 0 octet $Volume
$ATTRDEF 36 000 octets $AttrDef
. 0 octet N.A
$BITMAP 204 824 octets $Bitmap
$BOOT 8 192 octets $Boot
$BADCLUS 0 octet $BadClus
$QUOTA N.A N.A
$UPCASE 131 072 octets $UpCase
Ce File Record est vu comme un enregistrement dans la table MFT.
Vue d'un File Record par rapport à la MFT.
Attributs d'un File Record.
Voilà comment sont stockées les données: à l'intérieur de l'attribut Data du FileRecord.
Il s'agit ici de références VCN et LCN (définies précédemment).
On identifie un fichier sous windows NT par son " File Reference ", c’est un numéro codé sur 64 bit qui regroupe 2 informations essentielles :
Remarque: Le "File number" correspond à l'index dans la table MFT.
Ce qui nous donne jusqu'à 264 références différentes: un maximum de 18 milliards de milliards de références (exactement 18 446 744 073 709 551 616 références) mais pour combien de fichiers ?
Sachant que ce sont les 48 premiers bits qui servent à indexer la MFT, ils correspondent exactement au nombre maximal de fichiers que l'on peut avoir au total sur un système Windows NT: 248 = 281 474 976 710 656 fichiers possibles.
300 millions de fichiers possibles, cela semble correcte, non ?
Comparaison entre XFS, Unix File System (UFS), Veritas File System (VxFS) et Microsoft NT File System (NTFS).
Le système de fichier de Windows NT semble plus complexe que celui d'Unix.
Il semble tellement complexe que des informations fondamentales (telles le stockage des données directement dans la MFT ou non) qui ont été définies lors de sa conception (il y a déjà plus de 10 ans !) semblent être connues de personne !
A titre d'exemple j'ai trouvé sur l'ensemble des sites web visités relatifs à la MFT que 50% d'entre eux indiquaient que le stockage des données se faisait directement dans la MFT, les 50% restants indiquaient le contraire, c'est à dire qu'il s'agirait du même principe que sur Unix (adresses de blocs). Mais qui a raison ?
J'ai envoyé un mail à ce sujet au support micro$oft (support@microsoft.fr et support@microsoft.com) en espérant obtenir des nouvelles intéressantes.
Ces deux systèmes de fichiers, différents de par leur conception, se veulent tout de même atteindre les même buts: celui de lier performance, fiabilité et sécurité au sein du système d'exploitation tout en faisant face à une éternelle contrainte: celle de satisfaire les utilisateurs toujours de plus en plus gourmands, mais pourquoi ? Parce que les systèmes d'exploitations sont beaucoup plus gourmands en espace disque (à cause des applications, et notamment des applications graphiques, et des utilisateurs qui ont toujours besoin de plus d'espace de stockage)…
|
|
" Cours Système " de D.Revuz, 13 février 1998. | " Windows NT File System Internals " – A Developper’s Guide by Rajeev Nagar, Sept 1997. |
(Merci google !).
;-).