New Technology File System

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis NTFS)
Aller à : navigation, rechercher
NTFS
Développeur Microsoft
Nom anglais New Technology File System
Introduction juillet 1993
(Windows NT 3.1)
Identificateur de partition 0x07 (MBR)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
Structure
Contenu des répertoires B+ tree
Allocation de fichiers B+ tree
Mauvais blocs B+ tree
Limitations
Taille maximale de fichier en pratique 16 TiB[1]
(en théorie 16 EiB)[2]
Nombre maximal de fichiers 4 294 967 295 (2^{32}-1)
Taille maximale du nom de fichiers 255 caractères (UTF-16)
Taille maximale de volume en pratique 256 TiB[1]
(en théorie 16 EiB)[2]
Caractères autorisés dans les noms de fichiers Unicode (UTF-16), tout caractère à l'exception de "/"
Fonctionnalités
Dates enregistrées Création, modification, accès
Plage de dates 1er janvier 1601 - 28 mai 60056
Forks Oui (Alternate Data Streams, voir (en) Fork (filesystem))
Attributs Lecture seule, caché, système, archive
Permissions ACL
Compression intégrée Par fichier, LZ77 (à partir de Windows NT 3.51)
Chiffrement intégré Par fichier,
DES-X (à partir de Windows 2000),
Triple DES (à partir de Windows XP),
AES (Windows XP Service Pack 1, Windows 2003 et suivants)

NTFS (New Technology File System) est un système de fichiers propriétaire développé par Microsoft Corporation pour sa famille de systèmes d'exploitation Windows NT, à partir de Windows NT 3.1 et Windows 2000, y compris Windows XP, Windows Server 2003, et tous leurs successeurs à ce jour.

NTFS est le successeur du système de fichiers FAT comme système de fichiers de prédilection des systèmes d'exploitation Microsoft Windows. NTFS dispose de nombreuses améliorations techniques par rapport à la FAT et au HPFS (High Performance File System), comme un support amélioré des métadonnées, et l'utilisation de structures de données avancées pour améliorer les performances, la fiabilité et l'utilisation de l'espace disque, ainsi que des extensions supplémentaires, telles que la liste de contrôle d'accès (ACL) et la journalisation du système de fichiers.

Histoire[modifier | modifier le code]

Dans le milieu des années 1980 Microsoft et IBM ont formé un projet conjoint visant à créer la prochaine génération de système d'exploitation graphique. En résultat OS/2 mais Microsoft et IBM, en désaccord sur de nombreux points, se sont finalement séparés. OS/2 est resté un projet d'IBM. Microsoft a commencé à travailler sur Windows NT. Le système de fichiers de OS/2, HPFS, comportait de nombreuses nouvelles fonctionnalités importantes. Lorsque Microsoft a créé son nouveau système d'exploitation, ils ont emprunté beaucoup de ces concepts pour NTFS[3]. Probablement en raison de cette origine commune, NTFS et HPFS partagent le même code d'identification de type de partitionnement de disque (07). Partager un identifiant est inhabituel, car il y avait des dizaines de codes disponibles, et d'autres systèmes de fichiers importants ont leur propre code. FAT en a plus de neuf (un pour chacune des FAT12, FAT16, FAT32etc.). Des algorithmes permettant d'identifier le système de fichiers dans un type de partition 07 doivent effectuer des contrôles supplémentaires. Il est également clair que NTFS doit une partie de sa conception architecturale à Files-11 utilisé par VMS. Cela est sûrement dû au fait que Dave Cutler fut le chef principal des Windows NT et VMS à la fois.

Versions[modifier | modifier le code]

Le format sur disque de NTFS a cinq versions publiées :

  • v1.0 avec Windows NT 3.1, publiée mi-1993 ;
  • v1.1 avec Windows NT 3.5, publiée en automne 1994 ;
  • v1.2 avec Windows NT 3.51 (mi-1995) et Windows NT 4.0 (mi-1996) (parfois dénommé « NTFS 4.0 » parce que la version du pilote du système de fichiers est la 4.0) ;
  • v3.0 à partir de Windows 2000 (« NTFS v5.0 » ou « NTFS5 »)[4] ;
  • v3.1 à partir de Windows XP (automne 2001 ; « NTFS v5.1 »).

NTFS sous GNU/linux[modifier | modifier le code]

NTFS est peu documenté, à dessein selon certains, car, pour cette raison, et aussi parce que l'on n'avait pas pu effectuer de rétroconception complète à son sujet, les pilotes GNU/Linux n'y donnaient accès qu'en lecture et partiellement en écriture jusqu'à l'arrivée du pilote libre NTFS-3G. Celui-ci n'est pas complet, mais permet des lecture/écriture sur du NTFS.

Historique des pilotes (pour permettre l'accès et l'écriture sur des partitions NTFS non compressées) :

  • le premier, Linux-NTFS ne permet que la lecture et l'écriture en mode remplacement seulement (considéré comme stable depuis le noyau 2.6.15), mais ni la création, ni la suppression de fichiers ;
  • un deuxième, Captive (Captive NTFS), qui est beaucoup plus lent, mais permet la lecture et l'écriture de manière plus sûre pour la partition, est une encapsulation de la DLL de Windows. Il fonctionne plutôt bien, mais peut planter, par exemple sur l'écriture de gros fichiers ;
  • le logiciel commercial Paragon ;
  • le logiciel commercial Tuxera (en) ;
  • le pilote libre NTFS-3G, en version stable 1.0 depuis le 21 février 2007, permet une écriture fiable et la création de fichiers sur les partitions NTFS.

Réparation spontanée[modifier | modifier le code]

Les corruptions de données augmentant proportionnellement au volume des données, il devenait trop long et fréquent de lancer manuellement des réparations du système de fichier (chkdsk).

C'est pourquoi Microsoft a implémenté la réparation spontanée NTFS sur tous ses systèmes d'exploitation depuis Windows Server 2008[5].

Améliorer les performances au détriment de la traçabilité[modifier | modifier le code]

À chaque accès à un fichier ou à un répertoire, la date de dernier accès est mise à jour (cela fait partie de la norme POSIX.1 c'est-à-dire IEEE 1003.1). Il existe des cas extrêmes où cela peut être prohibitif pour les performances. Dans ce cas, il est possible de l'éviter : dans la base de registre, il faut créer une valeur nommée NtfsDisableLastAccessUpdate (type DWORD, de donnée 1) dans la clé HKLM\SYSTEM\CurrentControlSet\Control\FileSystem. Depuis Windows 7 et supérieur, ce paramètre est automatiquement activé.

Ce paramètre NtfsDisableLastAccessUpdate de Windows est à peu près l'équivalent du paramètre noatime d'Unix dans la commande mount (et dans le fichier de configuration fstab), la différence principale est que la clef de registre a un impact sur la totalité des lecteurs NTFS accédés alors que noatime peut être individuellement activé ou non sur chaque système de fichiers de Unix.

Notes et références[modifier | modifier le code]

  1. a et b (en) How NTFS Works, sur le site TechNET de Microsoft.
    Limites s'appliquant à Windows 2000 (SP4), XP (SP1+) et Windows Server 2003 (lié aux implémentations de NTFS dans ses systèmes d'exploitation, sans ces Service Packs, la limite est encore moindre - puisqu'on se retrouve limité au modèle d'adressage « LBA28 bits » - soit 128 GiB). Ses limites sont liées au nombre maximum de clusters (232 - 1 pour la taille maximale de volume, et 228 - 1 pour la taille maximale de fichier), combinée avec la taille maximale d'un cluster, actuellement fixée à 64 KiB, c'est-à-dire un regroupement de maximum 128 (27 secteurs physiques de 512 bytes.
  2. a et b Soit 264 clusters - 1, permis d'après l'architecture théorique de NTFS.
  3. (en)Overview and history of NTFS, sur le site pcguide.com
  4. « Inside Win2K NTFS, Part 1 », Microsoft,‎ 26 janvier 2011.
  5. http://technet.microsoft.com/fr-fr/library/cc771388%28v=ws.10%29.aspx

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]