B- Le SGF de Windows NT : NTFS
Le NTFS (New Technology File System) est le système de gestion de fichiers créé par Microsoft pour Windows NT 4, les systèmes existants alors ne satisfaisant pas les critères de fiabilité et de taille des nouveaux espaces disques disponibles. La version utilisée sous Windows NT 4 est NTFS 4.
NTFS intègre certaines fonctionnalités utilisées dans les SGF existants mais aussi de nouvelles :
utilisation d'une arborescence de répertoire organisée sous
forme d'un arbre B+, pour garder la trace des clusters des fichiers
l'information sur les clusters de fichiers et autres données sont stockées
avec chaque cluster et non dans une simple table (c'est le cas avec la FAT)
gestion de très gros fichiers (jusqu'à 2^64 octets soit 16 Go)
contrôle par liste d'accès qui permet à un administrateur de contrôler qui
peut accéder à un fichier en particulier
compression de fichier intégrée
gestion des noms Unicode
gestion des noms longs (jusqu'à 255 caractères) ainsi que des noms 8.3
propres à Microsoft
sécurité des données aussi bien sur les supports amovibles que fixes
Une partition formatée en NTFS doit avoir une capacité d'au moins 400 Mo. En effet, NTFS utilise une grande quantité d'espace disque pour stocker les structures du système. Mais une fois la structure créée, la puissance de ce SGF permet de mieux exploiter l'espace. C'est ce qui sera détaillé plus loin. Notons au passage que NTFS gère des partitions jusqu'à 16 Eo (1 Eo = 10^18 o).
Structure du système
Les principaux fichiers constituant la structure du systèmes sont les suivants :
La MFT (Master File Table) : c'est le fichier des descripteurs
de fichiers. Sa position doit être connue pour y accéder. Cette information
est contenue dans le premier secteur de la partition (MBR : Master Boot Record).
Ce fichier est dupliqué sur la partition pour des raisons de sécurité.
le fichier du volume, contenant en particulier le nom du volume
le fichier Bitmap qui décrit 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
Quand un fichier est créé sur un volume NTFS, une entrée est
ajoutée à la MFT qui grandit alors. Quand un fichier est supprimé, son
entrée dans la MFT est marquée comme libre et peut être réutilisée mais la
MFT ne réduit pas.
Pour garantir des performances optimales, NTFS
tente de trouver des espaces contigus de stockage qui pourraient contenir
l'intégralité du fichier.
Les autres éléments de la structure de fichiers (pour les téméraires ...)
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é le descripteur. La taille de ces
descripteurs est fixée à la création du volume et est comprise entre 1
koctets et 4 koctets. 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ésidents et donc à
l'extérieur de la MFT dans un espace qui lui est alloué en propre.
Si un objet externe est suffisamment petit, tous ses attributs dont le contenu
se trouveront dans le descripteur. Dans le cas contraire, certains attributs (et
en particulier les données) seront non résidents.
La sélection de la taille des clusters utilisée est un compromis entre
l'utilisation de l'espace disque et le nombre d'accès au disque nécessaires
pour ce fichier. La taille d'un cluster est donc variable et va de 512 octets à
64 koctets.
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. 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 la gestion de 16
milliards de clusters par 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.
Les Répertoires