Systèmes de gestion de fichiers

Windows NT vs Unix

 

DOWNLOAD !!!

Document Word (NTFSvsUFS.doc)

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

 Sommaire *

I. Introduction & définition *

II. Le Système de Gestion de Fichiers sous Unix *

  • 1) Types de FS 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 *

  • 1) Structure Interne : *

    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 : *

  • a) Livres : *

    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.

     

     

    1. Types de FS sous Unix:

    2. Il existe différents types de FS sous Unix, en voici une petite liste…

      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)

    3. Types de fichiers :

    Il existe principalement 4 types de fichiers sous Unix :

    1. Catalogues :

    2. Les fichiers catalogues sont les nœuds de l’arbre (en fait du graphe acyclique…) qui forme la structure hiérarchique de l’ensemble des fichiers d’un disque. La figure suivante illustre cette structure hiérarchisée :

      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.

    3. Les inodes

     

    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.

     

     

    1. Organisation des disques / Structure du disque

    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 :

     

     

     

     

     

     

     

     

     

    1. Quelques caractéristiques :

     

     

     

     

    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 !

     

     

     

     

    1. Structure Interne :

    2. 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 !

    3. Structure disque :

    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 :

    1. " Master File Table " et Metafiles :

    1. Principe

    2. C’est une table de fichiers qui se comporte un peut comme une table de base de donnée. Chaque entrée de cette table (ou record) rassemble un ensemble d’attributs:

      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

    3. Pratique

    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

     

     

     

    1. La MFT en détail:

     

    1. MFT et "File Record"

    2. La MFT regroupe un ensemble de fichiers (les metadata files mais aussi les fichiers utilisateurs, répertoires…). On appelle File Record ce que l'inode représente sous Unix.

      Ce File Record est vu comme un enregistrement dans la table MFT.

      Vue d'un File Record par rapport à la MFT.

    3. File Record en détail:
    4. Un File Record contient un certain nombre d'information (dates, taille, nom, droits, données…). Ces informations appelées attributs existent sous deux formes principales: les Attributs résidents et les non-résidents. C'est l'équivalant sous Unix, des blocs d'adressages avec les accès directs ou les indirections.

      Attributs d'un File Record.

    5. Attribut $Data 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).

     

    1. File Reference :

    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).

     

    Conclusion

     

    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)…

     

    Références :

     

    1. Livres :
    2. " Cours Système " de D.Revuz, 13 février 1998. " Windows NT File System Internals " – A Developper’s Guide by Rajeev Nagar, Sept 1997.

       

    3. Sites Web :

    (Merci google !).

    ;-).