HFS Plus - HFS Plus

  (Redirigé depuis Hfs + )
HFS +
Développeur (s) Apple Inc.
Nom complet Système de fichiers hiérarchique Plus
Introduit 19 janvier 1998 ; Il y a 22 ans avec Mac OS 8.1 ( 19/01/1998 )
Identificateur de partition Apple_HFS ( carte de partition Apple )
0xAF ( MBR ) HFS et HFS +
Apple_HFSX ( carte de partition Apple ) lorsque HFSX
48465300-0000-11AA-
AA11-00306543ECAC
( GPT )
Structures
Contenu du répertoire Arbre B
Allocation de fichiers Bitmap
Mauvais blocs Arbre B
Limites
Max. taille du volume exaoctets
Max. taille du fichier 8 EiB
Max. nombre de fichiers 4294967295 (2 32 -1)
Max. longueur du nom de fichier 255 caractères (255 unités de codage UTF-16, normalisées selon la variante Apple modifiée du format de normalisation Unicode D)
Caractères autorisés dans les noms de fichiers Unicode , tout caractère, y compris NUL . Les API du système d'exploitation peuvent limiter certains caractères pour des raisons héritées
traits
Dates enregistrées accès, attributs modifiés, sauvegardés, contenus modifiés, créés
Plage de dates 1 janvier 1904 - 6 février 2040
Résolution de la date 1 s
Fourches Oui
Les attributs Couleur (3 bits, tous les autres indicateurs 1 bit), verrouillé, icône personnalisée, ensemble, invisible, alias, système, papeterie, activé, pas de ressources INIT, partagé, bureau
Autorisations du système de fichiers Autorisations Unix, ACL NFSv4 ( Mac OS X v10.4 et versions ultérieures)
Compression transparente Partiel (decmpfs, sur Mac OS X 10.6 et supérieur)
Cryptage transparent Oui (sur Mac OS X 10.7 et plus). Le chiffrement par répertoire personnel est disponible avec AES à l' aide de volumes .dmg au format HFS + sur les versions d'OS X antérieures à 10.7 mais ultérieures à Mac OS X 10.3
Autre
Systèmes d'exploitation pris en charge Mac OS 8.1 , Mac OS 9 , macOS / iOS / tvOS / watchOS / Darwin , Linux , Microsoft Windows (via les pilotes Boot Camp IFS )

HFS Plus ou HFS + est un système de fichiers journalisé développé par Apple Inc. Il a remplacé le Hierarchical File System (HFS) comme système de fichiers principal des ordinateurs Apple avec la version 1998 de Mac OS 8.1 . HFS + est resté le principal système de fichiers Mac OS X jusqu'à ce qu'il soit lui-même remplacé par la sortie du système de fichiers Apple (APFS) avec macOS High Sierra en 2017. HFS + est également l'un des formats utilisés par le lecteur de musique numérique iPod . Il est également appelé Mac OS Extended ou HFS Extended , où son prédécesseur, HFS, est également appelé Mac OS Standard ou HFS Standard . Pendant le développement, Apple a fait référence à ce système de fichiers avec le nom de code Sequoia .

HFS Plus est une version améliorée de HFS, prenant en charge des fichiers beaucoup plus volumineux (les adresses de bloc ont une longueur de 32 bits au lieu de 16 bits) et utilisant Unicode (au lieu de Mac OS Roman ou de l'un de plusieurs autres jeux de caractères) pour nommer les éléments. Comme HFS, HFS Plus utilise des arbres B pour stocker la plupart des métadonnées de volume , mais contrairement à la plupart des autres systèmes de fichiers, HFS Plus prend en charge les liens physiques vers les répertoires. HFS Plus autorise des noms de fichiers jusqu'à 255 caractères de longueur et des fichiers à n- fork similaires à NTFS , bien que jusqu'en 2005, presque aucun logiciel système n'ait profité de fourchettes autres que la fourche de données et la fourchette de ressources . HFS Plus utilise également une table de mappage d'allocation 32 bits complète plutôt que 16 bits de HFS, améliorant considérablement l'utilisation de l'espace avec les grands disques.

Histoire

HFS + a été introduit avec la version du 19 janvier 1998 de Mac OS 8.1 .

Avec la sortie de la mise à jour Mac OS X 10.2.2 le 11 novembre 2002, Apple a ajouté des fonctionnalités de journalisation facultatives à HFS Plus pour une meilleure fiabilité des données. Ces fonctionnalités étaient accessibles via l'interface graphique, à l'aide de l' application Utilitaire de disque , dans Mac OS X Server, mais uniquement accessibles via la ligne de commande dans le client de bureau standard.

Avec Mac OS X v10.3, tous les volumes HFS Plus sur tous les Mac étaient configurés pour être journalisés par défaut. Dans le système, un volume HFS Plus avec un journal est identifié comme HFSJ .

Mac OS X 10.3 a également introduit une autre version de HFS Plus appelée HFSX . Les volumes HFSX sont presque identiques aux volumes HFS Plus, sauf qu'ils ne sont jamais entourés par l' enveloppe HFS typique des volumes HFS Plus et qu'ils prennent éventuellement en charge le respect de la casse pour les noms de fichiers et de dossiers. Les volumes HFSX peuvent être reconnus par deux entrées dans l'en-tête de volume, une valeur de HX dans le champ de signature et 5 dans le champ de version.

Mac OS X 10.3 a également marqué l'adoption par Apple de la décomposition Unicode 3.2, remplaçant la décomposition Unicode 2.1 utilisée précédemment. Ce changement a causé des problèmes aux développeurs qui écrivaient des logiciels pour Mac OS X.

Mac OS X 10.3 a introduit un certain nombre de techniques destinées à éviter de fragmenter les fichiers en HFS +.

Avec Mac OS X 10.4, Apple a ajouté la prise en charge des enregistrements de données d'attributs en ligne, quelque chose qui faisait partie de l'implémentation Mac OS X de HFS Plus depuis au moins 10.0 , mais toujours marqué comme "réservé pour une utilisation future". Jusqu'à la sortie de Mac OS X Server 10.4 , HFS Plus ne prenait en charge que les autorisations standard du système de fichiers UNIX ; cependant, 10.4 a introduit la prise en charge de la sécurité des fichiers basée sur la liste de contrôle d'accès , qui fournit un mécanisme plus riche pour définir les autorisations de fichier et est également conçu pour être entièrement compatible avec les modèles d'autorisation de fichier sur d'autres plates-formes telles que Microsoft Windows XP et Windows Server 2003 .

Dans Mac OS X Leopard 10.5, la liaison fixe de répertoires a été ajoutée en tant qu'élément fondamental de Time Machine.

Dans Mac OS X Snow Leopard 10.6, la compression HFS + a été ajoutée à l'aide de Deflate (Zlib). En open source et dans certains autres domaines, cela s'appelle AppleFSCompression ou decmpfs. Les données compressées peuvent être stockées dans un attribut étendu ou dans la fourchette de ressources. Lors de l'utilisation d'API non Apple, AppleFSCompression n'est pas toujours complètement transparente. OS X 10.9 a introduit deux nouveaux algorithmes, LZVN (libFastCompression) et LZFSE .

Dans Mac OS X Lion 10.7, le chiffrement de volume logique (appelé FileVault 2 ) a été ajouté au système d'exploitation. Cet ajout au système d'exploitation n'a en rien changé la structure logique du système de fichiers. Le gestionnaire de volume logique d'Apple est connu sous le nom de Core Storage et son cryptage au niveau du volume peut s'appliquer à des systèmes de fichiers autres que HFS Plus. Avec un matériel approprié, le cryptage et le décryptage doivent être transparents.

Conception

Les volumes HFS Plus sont divisés en secteurs (appelés blocs logiques dans HFS), d'une taille généralement de 512 octets. Ces secteurs sont ensuite regroupés en blocs d'allocation qui peuvent contenir un ou plusieurs secteurs; le nombre de blocs d'allocation dépend de la taille totale du volume. HFS Plus utilise une valeur plus grande pour adresser les blocs d'allocation que HFS, 32 bits plutôt que 16 bits; cela signifie qu'il peut accéder à 4 294 967 296 blocs d'allocation (= 2 32 ) au lieu des 65 536 blocs d'allocation (= 2 16 ) disponibles pour HFS. Lorsque les disques étaient petits, cela n'avait que peu de conséquences, mais à mesure que des disques de plus grande capacité devenaient disponibles, cela signifiait que la plus petite quantité d'espace qu'un fichier pouvait occuper (un seul bloc d'allocation) devenait excessivement grande, gaspillant une quantité d'espace considérable. Par exemple, sur un disque de 1 Go, la taille du bloc d'allocation sous HFS est de 16 Ko, donc même un fichier de 1 octet prendrait 16 Ko d'espace disque. Le système de HFS Plus améliore ainsi considérablement l'utilisation de l'espace sur des disques plus volumineux.

Les noms de fichiers et de dossiers dans HFS Plus sont également codés en caractères UTF-16 et normalisés sous une forme très proche de la forme D de normalisation Unicode (NFD) (ce qui signifie que les caractères précomposés comme «å» sont décomposés dans le nom de fichier HFS + et donc compte comme deux unités de code et UTF-16 implique que les caractères extérieurs au plan multilingue de base comptent également pour deux unités de code dans un nom de fichier HFS +). HFS Plus autorise des noms de fichiers jusqu'à 255 unités de code UTF-16 de longueur.

Auparavant, les volumes HFS Plus étaient intégrés dans un système de fichiers standard HFS. Cela a été éliminé par la transition de Tiger vers les Mac Intel, où le système de fichiers HFS Plus n'était pas intégré dans un wrapper. L'emballage avait été conçu à deux fins; il permettait aux ordinateurs Macintosh sans prise en charge de HFS Plus dans leur ROM de démarrer des volumes HFS Plus et il a également été conçu pour aider les utilisateurs à passer à HFS Plus en incluant un volume HFS minimal avec un fichier en lecture seule appelé Where_have_all_my_files_gone? , expliquant aux utilisateurs disposant de versions de Mac OS 8.0 et antérieures sans HFS Plus, que le volume nécessite un système prenant en charge HFS Plus. Le volume HFS d'origine contient une signature et un décalage par rapport au volume HFS Plus intégré dans son en-tête de volume. Tous les blocs d'allocation dans le volume HFS qui contiennent le volume incorporé sont mappés hors du fichier d'allocation HFS en tant que blocs défectueux .

Notable parmi les systèmes de fichiers utilisés pour les systèmes Unix, HFS Plus ne prend pas en charge les fichiers épars .

Il existe neuf structures qui composent un volume HFS Plus typique:

  1. Les secteurs 0 et 1 du volume sont des blocs de démarrage HFS . Ceux-ci sont identiques aux blocs de démarrage dans un volume HFS. Ils font partie du wrapper HFS.
  2. Le secteur 2 contient l'en- tête de volume , qui équivaut au bloc de répertoire principal dans un volume HFS. L'en-tête de volume stocke une grande variété de données sur le volume lui-même, par exemple la taille des blocs d'allocation, un horodatage qui indique quand le volume a été créé ou l'emplacement d'autres structures de volume telles que le fichier catalogue ou le fichier de débordement d'étendue. L'en-tête de volume est toujours situé au même endroit.
  3. Le fichier d'allocation qui garde la trace des blocs d'allocation gratuits et en cours d'utilisation. Il est similaire au Volume Bitmap dans HFS, dans lequel chaque bloc d'allocation est représenté par un bit. Un zéro signifie que le bloc est libre et un un signifie que le bloc est en cours d'utilisation. La principale différence avec le bitmap de volume HFS est que le fichier d'allocation est stocké en tant que fichier normal, il n'occupe pas un espace réservé spécial près du début du volume. Le fichier d'allocation peut également changer de taille et n'a pas besoin d'être stocké de manière contiguë dans un volume.
  4. Le fichier catalogue est une arborescence B qui contient des enregistrements pour tous les fichiers et répertoires stockés dans le volume. Le fichier de catalogue HFS Plus est très similaire au fichier de catalogue HFS , les principales différences étant que les enregistrements sont plus grands pour autoriser plus de champs et permettre à ces champs d'être plus grands (par exemple pour permettre les noms de fichiers Unicode de 255 caractères plus longs dans HFS Plus ). Un enregistrement dans le fichier de catalogue HFS a une taille de 512 octets, un enregistrement dans le fichier de catalogue HFS Plus est de 4 Ko dans le Mac OS classique et de 8 Ko dans macOS . Les champs dans HFS sont de taille fixe, dans HFS Plus la taille peut varier en fonction de la taille réelle des données qu'ils stockent.
  5. Le fichier de débordement d' extensions est un autre arbre B qui enregistre les blocs d'allocation alloués à chaque fichier en tant qu'extensions. Chaque enregistrement de fichier dans le fichier catalogue est capable d'enregistrer huit étendues pour chaque fourchette d'un fichier; une fois celles-ci utilisées, des extensions supplémentaires sont enregistrées dans le fichier de débordement d'extensions. Les blocs défectueux sont également enregistrés en tant qu'extensions dans le fichier de débordement d'étendues. La taille par défaut d'un enregistrement d'extension dans le Mac OS classique est de 1 Ko et de 4 Ko sous macOS.
  6. Le fichier d'attributs est un nouvel arbre B dans HFS Plus qui n'a pas de structure correspondante dans HFS. Le fichier d'attributs peut stocker trois types différents d'enregistrements de 4 Ko: enregistrements d' attributs de données en ligne , enregistrements d' attributs de données de fourche et enregistrements d' attributs d'extension . Les enregistrements d'attributs de données en ligne stockent de petits attributs qui peuvent tenir dans l'enregistrement lui-même. Les enregistrements d'attributs de données de fourche contiennent des références à un maximum de huit étendues pouvant contenir des attributs plus importants. Les attributs d'extension sont utilisés pour étendre un enregistrement d'attribut de données de fourche lorsque ses huit enregistrements d'étendue sont déjà utilisés.
  7. Le fichier de démarrage est conçu pour les systèmes non Mac OS qui ne prennent pas en charge HFS ou HFS Plus. Il est similaire aux blocs de démarrage d'un volume HFS.
  8. L'avant-dernier secteur contient l'en- tête de volume alternatif , qui équivaut au bloc de répertoire maître alternatif de HFS.
  9. Le dernier secteur du volume est réservé à l'usage d'Apple. Il est utilisé pendant le processus de fabrication de l'ordinateur.

des reproches

HFS Plus manque de plusieurs fonctionnalités considérées comme des agrafes des systèmes de fichiers modernes tels que ZFS et NTFS . Les sommes de contrôle des données sont la caractéristique manquante la plus fréquemment citée. De plus, le cœur du système de fichiers utilise des chaînes Unicode NFD insensibles à la casse , ce qui a conduit Linus Torvalds à dire que «HFS + est probablement le pire système de fichiers jamais créé».

Outre la somme de contrôle, les fonctionnalités des systèmes de fichiers modernes qui manquent à HFS + incluent:

  • horodatages nanosecondes
  • accès simultané (c'est-à-dire que plusieurs processus peuvent accéder au système de fichiers en même temps)
  • instantané
  • Prise en charge des dates au-delà du 6 février 2040
  • prise en charge des fichiers épars
  • une meilleure implémentation des liens physiques (dans d'autres systèmes de fichiers, il s'agit généralement de plusieurs entrées de répertoire pointant vers les mêmes blocs de données; les liens physiques dans macOS sont implémentés sous forme de petits fichiers stockés dans un répertoire caché spécial)

HFS Plus n'était pas conçu pour les systèmes de type Unix, de sorte que des fonctionnalités telles que les autorisations de système de fichiers et les liens physiques ont dû être modernisées lorsque Apple est passé à Mac OS X.

Autres systèmes d'exploitation

Linux

Le noyau Linux inclut le module hfsplus pour le montage de systèmes de fichiers HFS + en lecture-écriture. HFS + fsck et mkfs ont été portés sous Linux et font partie du paquet hfsprogs.

En 2009, il a été diagnostiqué que ces pilotes corrompaient les disques HFS + d'une capacité supérieure à 2 To. Par conséquent, les distributions Linux telles que Debian et Ubuntu ont également cessé d'autoriser le montage de disques HFS + ou de partitions supérieures à 2 To. Depuis février 2011, des travaux sont en cours pour lever cette restriction.

Sous le pilote HFS + actuel de Linux, la journalisation doit être désactivée afin d'écrire des données en toute sécurité sur une partition HFS +. Si la partition n'est pas utilisée par le logiciel Time Machine d' Apple, la journalisation peut être désactivée sous macOS: à l'aide de l'Utilitaire de disque sous OS X Yosemite, l'utilisateur peut maintenir Alt / Option et cliquer sur «Désactiver la journalisation» dans le menu Fichier, après avoir sélectionné une partition montée.

Une partition HFS + avec la journalisation activée peut être montée de force avec un accès en écriture sous Linux, mais cela n'est pas pris en charge et peu judicieux.

Un projet Google Summer of Code visant à implémenter le support en écriture pour HFS + journalisé a été accepté par la Linux Foundation en 2011 mais n'a pas été achevé à ce moment-là et est toujours en cours de travail. Les progrès et améliorations du pilote HFS +, y compris certaines mises à jour de la prise en charge de la journalisation, sont publiés de temps en temps sur la liste de diffusion linux-fsdevel.

Depuis juillet 2011, Paragon Software Group a fourni des pilotes de noyau qui permettent un accès complet en lecture-écriture aux volumes journalisés HFS +. Le produit est une implémentation propriétaire de HFS + basée sur la bibliothèque UFSD propriétaire de Paragon. Il existe des éditions gratuites et payantes du pilote, et elles incluent un utilitaire pour vérifier et réparer les volumes HFS +. Selon la documentation en ligne (version gratuite ou édition payante), tant l'édition gratuite que l'édition payante supportent actuellement les noyaux Linux de 2.6.36 à 4.12.x. Ubuntu , Debian , Fedora , OpenSUSE et CentOS sont les seules distributions Linux officiellement prises en charge.

les fenêtres

Depuis mai 2012, Apple n'a publié que des pilotes HFS + en lecture seule pour Windows XP, Windows Vista et Windows 7 dans le cadre du logiciel Boot Camp de Mac OS X 10.6 . Cela signifie que les utilisateurs de ces systèmes peuvent lire les données du lecteur HFS +, mais pas y écrire. Microsoft a créé un pilote HFS + pour la Xbox 360 principalement dans le but de lire les iPod formatés HFS +.

Un logiciel gratuit et open source - jHFSplus, basé sur HFSExplorer et jpfm - peut être utilisé pour monter des partitions hfs / hfs + en tant que dossiers virtuels en lecture seule.

Il existe un plugin freeware pour Total Commander , capable de lire, entre autres, les systèmes de fichiers HFS et HFS +.

DiskInternals Linux Reader peut être utilisé pour extraire / enregistrer des dossiers / fichiers hors des disques durs / partitions HFS et HFS +.

Un produit commercial, MacDrive, est également disponible pour le montage de lecteurs HFS et HFS +, de disques optiques et d'autres supports dans l'Explorateur Windows, et permet à la fois la lecture et l'écriture sur le volume, ainsi que la réparation et le formatage des disques Mac.

Produit commercial, le HFS + pour Windows de Paragon permet une gestion complète de la lecture et de l'écriture et du disque depuis toutes les versions de Windows, de Windows XP à Windows Server 2008.

Multiplateforme

Une alternative gratuite ( GPL ) est HFSExplorer écrit par Erik Larsson. HFSExplorer est une application Java permettant de visualiser et d'extraire des fichiers d'un volume HFS + (Mac OS Extended) ou d'un volume HFSX (Mac OS Extended, Case-sensitive). Le volume peut être situé sur un disque physique, dans divers formats d'image disque Apple et d'image disque éparse , ou dans un vidage du système de fichiers brut. Cependant, HFSExplorer est une solution en lecture seule; il ne peut pas écrire sur des volumes au format HFS.

Voir également

Les références

Liens externes

  • hfsexplorer - Explorateur Open Source pour MS-Windows® écrit en Java, avec prise en charge de HFS, HFS + et HFSX
  • Apple "legacy" Technote 1150 - Format de volume HFS Plus
  • Apple "legacy" Technote 1189 - Le pilote de disque Monster Technote
  • hfsdebug - Un débogueur pour les volumes HFS Plus par Amit Singh
  • hfsprogs - Outils de support de l' espace utilisateur pour les systèmes de fichiers HFS + sous Linux (adapté des outils natifs d'Apple).
  • iBored - Un éditeur de disque et une visionneuse prenant en charge HFS Plus
  • MacDrive - Un produit commercial pour lire, écrire et créer des volumes HFS et HFS + sous Windows
  • HFSleuth - Un outil de ligne de commande gratuit permettant l'inspection des volumes HFS + / HFSX et des images disque (DMG) pour macOS et Linux
  • Mac OS X 10.7 Lion: la revue Ars Technica - Une critique sur ce système de fichiers