Article traduit par Serge Pajak

 

TITRE
Macintosh: Spécifications du système de fichier
Article nº
Créé le :
Modifié le : 
08647
13/09/91
15/06/99


SUJET

Quelles sont les limites du système de fichier "Hierarchical File System" (HFS) sur Macintosh ? Les performances sont elles affectées ? Et MacOS Format Étendu (HFS+) dans tout cela ?

Cet article explique la terminologie utilisée pour faire référence aux volumes et au système de fichier. Il explique également pourquoi les différentes structures d'HFS sur différents disques durs font qu'un fichier prend plus de place sur un gros disque que sur un petit.


COMMENTAIRES

Spécifications du système de fichier Hierarchical File System.

 

Avant de s'intéresser aux méthodes d'allocation sur les disques durs et les difficultés inhérentes à la détermination de la taille des blocs d'allocation, voici quelques détails sur le système de fichier Hierarchical File System, ou HFS.

Les informations suivantes sur la terminologie utilisée pour décrire les structures HFS s'appliquent aux Système 6, 7, et actuels.

Volume

Un volume est soit un disque entier, soit une partie d'un disque partitionné en plusieurs morceaux. Si vous partitionnez un disque, chacun partition est considérée comme un volume.

Remarque : AppleShare, y compris le partage de fichiers peronnel, a ses propres limites concernant la taille des volumes. Pour plus d'informations, cf. l'article TIL FR

Article 15460: "Partage de fichier AppleShare: liste des limitations"

Bloc logique

Un bloc logique est une partie de l'espace disque tout le temps composée de 512 octets, même si les données enregistrées à l'intérieur n'utilisent pas tout cet espace. Un bloc logique est numéroté de 0 à n, n étant le dernier bloc du volume - pas forcément du disque. Prenez la taille du volume, divisez-la par 512 octets, et vous obtenez le nombre de blocs logiques.

Bloc d'allocation

Un bloc d'allocation est une partie destinée à l'enregistrement de données sur un volume, composée d'un ou plusieurs blocs logiques. Plus le volume est grand, plus un bloc d'allocation comprend de blocs logiques. Le nombre maximal de blocs d'allocation par volume est de 65 536, la plupart des volumes en ont moins.

Dans les environnements Macintosh et DOS, le nombre maximal de blocs sur un disque est de 65 536 parce que ces deux systèmes d'exploitation adressent les blocs d'allocation sur 16 bits. Les disques de plus de 512 Mo ne peuvent utiliser des blocs de 8 ko parce qu'il n'y a pas assez d'adresses. Ainsi, si un disque de 2 Go est une partition Macintosh, le plus petit fichier fera 32 ko (si vous enregistrez un fichier TeachText d'un caractère, il prendra 32 ko sur le disque). Cela veut dire que la taille du disque dur détermine la taille minimale de chaque fichier.

Une plage contenant des données d'un fichier occupe toujours au moins un bloc d'allocation, quel que soit le nombre d'octets qu'elle contienne. Si les plages données et ressources d'un fichier contiennent des données, le fichier utilisera deux blocs d'allocation. Si tous les fichiers prennent seulement un bloc d'allocation, alors il peut y avoir autant de fichiers sur le volume qu'il y a de blocs d'allocation pour le volume. Cependant, quand un fichier prend plus d'un bloc, le nombre total de fichier possibles diminue.

Par exemple, sur un volume avec 65 536 blocs d'allocation, vous pouvez avoir :

Tous les nombres ci-dessus font référence aux structures d'enregistrement du système. D'autres éléments limitent le nombre de fichier utilisables. Les dialogues Standard File (NdT: les dialogues standards, comme ceux d'ouverture ou d'enregistrement de fichier par exemple) utilisent le List Manager. Le List manager est limité à 32 ko de données, ce qui donne entre 800 et 900 fichiers. Même si plus de fichiers peuvent se trouver dans un dossier, le List manager n'affichera que ceux figurant dans les 32 derniers ko.

Autres éléments à prendre en compte : les performances du Finder lorsque l'on approche 800 ou 900 fichiers par dossier. Les opérations même les plus simples, comme bouger l'icône d'un fichier, tendent à être considérablement ralenties quand un dossier comporte autant de fichiers. Cette limite varie en fonction de la vitesse de l'ordinateur en question.

Déterminer la taille des blocs d'allocation

Voici comment calculer la taille des blocs d'allocation :

  1. Prenez la taille du disque en mégaoctets et multipliez-la par 2000 (il y a 2000 blocs de disque dans 1 Mo d'espace disque).
  2. Divisez ce nombre par 65 536, car les Macintosh ne peuvent pas avoir plus de 65 536 blocs d'allocation.
  3. Arrondissez au nombre supérieur et multipliez-le par 512.

    Le résultat donne le nombre d'octet dans un bloc d'allocation. Voici un exemple avec un disque de 230 Mo :

    230 x 2000 / 65536 = 7.017
    7.017 arrondi par excès = 8
    8 x 512 = 4096 octets

    Qu'est ce que cela signifie pour vous ? Plus le disque est gros, plus la taille des blocs d'allocation l'est également, et plus vous perdez d'espace disque sur le petites fichiers. Si vous avez un gros disque avec beaucoup de petits fichiers, l'espace disque est utilisé moins efficacement que si la plupart de vos fichiers faisaient 32 ko.

    Remarque : Les disques pouvant venir de plusieurs fabricants différents, il est possible d'obtenir plusieurs résultats. En fait, un disque de 500 Mo ne fait pas exactement 500 Mo mais un peu plus. Il peut en résulter une taille des blocs logiques différente de celle listée ce-dessous. La différence est plus visible sur les gros disques. Par exemple, un disque de 500 Mo donnerait 8192 octets, mais le disque de 500 Mo de certains Macintosh fait en réalité 540 Mo, ce qui donne des blocs logiques de 8704 octets.

    Voici une liste complète des tailles des blocs d'allocation en fonction des tailles des volumes, basée sur la formule décrite plus haut :

Taille du volume | Taille du bloc d'allocation | Taille minimale d'un fichier



























       0-32Mo       1 bloc logique           0.5K       33-64Mo       2 blocs logiques          1.0K       65-96Mo       3 blocs logiques          1.5K      97-128Mo       4 blocs logiques          2.0K     129-160Mo       5 blocs logiques          2.5K     161-192Mo       6 blocs logiques          3.0K     193-224Mo       7 blocs logiques          3.5K     225-256Mo       8 blocs logiques          4.0K     257-288Mo       9 blocs logiques          4.5K     289-320Mo      10 blocs logiques          5.0K     321-352Mo      11 blocs logiques          5.5K     353-384Mo      12 blocs logiques          6.0K     385-416Mo      13 blocs logiques          6.5K     417-448Mo      14 blocs logiques          7.0K    449-480Mo      15 blocs logiques          7.5K     481-512Mo      16 blocs logiques          8.0K     513-544Mo      17 blocs logiques          8.5K     545-576Mo      18 blocs logiques          9.0K     577-608Mo      19 blocs logiques          9.5K     609-640Mo      20 blocs logiques         10.0K     641-672Mo      21 blocs logiques         10.5K     673-704Mo      22 blocs logiques         11.0K     705-736Mo      23 blocs logiques         11.5K     737-768Mo      24 blocs logiques         12.0K     769-800Mo      25 blocs logiques         12.5K     801-832Mo      26 blocs logiques         13.0K     833-864Mo      27 blocs logiques         13.5K     865-896Mo      28 blocs logiques         14.0K     897-928Mo      29 blocs logiques         14.5K     929-960Mo      30 blocs logiques         15.0K     961-992Mo      31 blocs logiques         15.5K    993-1024Mo      32 blocs logiques         16.0K   1025-1056Mo      33 blocs logiques         16.5K   1057-1088Mo      34 blocs logiques         17.0K  1089-1120Mo      35 blocs logiques         17.5K   1121-1152Mo      36 blocs logiques         18.0K   1153-1184Mo      37 blocs logiques         18.5K   1185-1216Mo      38 blocs logiques         19.0K   1217-1248Mo      39 blocs logiques         19.5K   1249-1280Mo      40 blocs logiques         20.0K   1281-1312Mo      41 blocs logiques         20.5K   1313-1344Mo      42 blocs logiques         21.0K   1345-1376Mo      43 blocs logiques         21.5K   1377-1408Mo      44 blocs logiques         22.0K   1409-1440Mo      45 blocs logiques         22.5K   1441-1472Mo      46 blocs logiques         23.0K   1473-1504Mo      47 blocs logiques         23.5K   1505-1536Mo      48 blocs logiques         24.0K   1537-1568Mo      49 blocs logiques         24.5K   1569-1600Mo      50 blocs logiques         25.0K   1601-1632Mo      51 blocs logiques         25.5K   1633-1664Mo      52 blocs logiques         26.0K   1665-1696Mo      53 blocs logiques         26.5K   1697-1728Mo      54 blocs logiques         27.0K  1729-1760Mo      55 blocs logiques         27.5K   1761-1792Mo      56 blocs logiques         28.0K   1793-1824Mo      57 blocs logiques         28.5K   1825-1856Mo      58 blocs logiques         29.0K   1857-1888Mo      59 blocs logiques         29.5K   1889-1920Mo      60 blocs logiques         30.0K   1921-1952Mo      61 blocs logiques         30.5K   1953-1984Mo      62 blocs logiques         31.0K   1985-2016Mo      63 blocs logiques         31.5K   2017-2048Mo      64 blocs logiques         32.0K   2049-2080Mo      65 blocs logiques         32.5K   2081-2112Mo      66 blocs logiques         33.0K   2113-2144Mo      67 blocs logiques         33.5K   2145-2176Mo      68 blocs logiques         34.0K   2177-2208Mo      69 blocs logiques         34.5K   2209-2240Mo      70 blocs logiques         35.0K   2241-2272Mo      71 blocs logiques         35.5K   2273-2304Mo      72 blocs logiques         36.0K   2305-2336Mo      73 blocs logiques         36.5K   2337-2368Mo      74 blocs logiques         37.0K  2369-2400Mo      75 blocs logiques         37.5K   2401-2432Mo      76 blocs logiques         38.0K   2433-2464Mo      77 blocs logiques         38.5K   2465-2496Mo      78 blocs logiques         39.0K   2497-2528Mo      79 blocs logiques         39.5K   2529-2560Mo      80 blocs logiques         40.0K   2561-2592Mo      81 blocs logiques         40.5K   2593-2624Mo      82 blocs logiques         41.0K   2625-2656Mo      83 blocs logiques         41.5K   2657-2688Mo      84 blocs logiques         42.0K   2689-2720Mo      85 blocs logiques         42.5K   2721-2752Mo      86 blocs logiques         43.0K   2753-2784Mo      87 blocs logiques         43.5K   2785-2816Mo      88 blocs logiques         44.0K   2817-2848Mo      89 blocs logiques         44.5K   2849-2880Mo      90 blocs logiques         45.0K   2881-2912Mo      91 blocs logiques         45.5K   2913-2944Mo      92 blocs logiques         46.0K   2945-2976Mo      93 blocs logiques         46.5K   2977-3008Mo      94 blocs logiques         47.0K  3009-3040Mo      95 blocs logiques         47.5K   3041-3072Mo      96 blocs logiques         48.0K   3073-3104Mo      97 blocs logiques         48.5K   3105-3136Mo      98 blocs logiques         49.0K   3137-3168Mo      99 blocs logiques         49.5K   3169-3200Mo     100 blocs logiques         50.0K   3201-3232Mo     101 blocs logiques         50.5K   3233-3264Mo     102 blocs logiques         51.0K   3265-3296Mo     103 blocs logiques         51.5K   3297-3328Mo     104 blocs logiques         52.0K   3329-3360Mo     105 blocs logiques         52.5K   3361-3392Mo     106 blocs logiques         53.0K   3393-3424Mo     107 blocs logiques         53.5K   3425-3456Mo     108 blocs logiques         54.0K   3457-3488Mo     109 blocs logiques         54.5K   3489-3520Mo     110 blocs logiques         55.0K   3521-3552Mo     111 blocs logiques         55.5K   3553-3584Mo     112 blocs logiques         56.0K   3585-3616Mo     113 blocs logiques         56.5K   3617-3648Mo     114 blocs logiques         57.0K  3649-3680Mo     115 blocs logiques         57.5K   3681-3712Mo     116 blocs logiques         58.0K   3713-3744Mo     117 blocs logiques         58.5K   3745-3776Mo     118 blocs logiques         59.0K   3777-3808Mo     119 blocs logiques         59.5K   3809-3840Mo     120 blocs logiques         60.0K   3841-3872Mo     121 blocs logiques         60.5K   3873-3904Mo     122 blocs logiques         61.0K   3905-3936Mo     123 blocs logiques         61.5K   3937-3968Mo     124 blocs logiques         62.0K   3969-4000Mo     125 blocs logiques         62.5K   4001-4032Mo     126 blocs logiques         63.0K   4033-4064Mo     127 blocs logiques         63.5K   4065-4096Mo     128 blocs logiques         64.0K

Organisation des volumes HFS

Les deux premiers blocs logiques (0 et 1) d'un volume sont les blocs de démarrage. C'est là que les informations utiles pour monter le volume sont enregistrées.

Le troisième bloc logique (le 2) est le Master Directory Block, ou MDB. Ce bloc contient une partie de la structure de données. Il contient des informations sur le volume et la carte des blocs d'allocation du volume. Ce bloc garde également en mémoire les informations pour le disque dur, comme le nombre de fichiers dans le répertoire et la dernière fois que le disque a été initialisé.

Les blocs logiques 3 à x (cf. tableau suivant) contient la carte du volume. Ce bloc est une structure de données contenant une séquence d'octets, un octet pour chaque bloc d'allocation. Il enregistre une référence vers chaque partie de données des blocs d'allocation et indique si le bloc est alloué ou utilisable. Les cartes des volumes existent à la fois dans le répertoire hiérarchique des volumes et en mémoire.

Un volume peut avoir entre 32 768 et 65 536 blocs d'allocation. Ce tableau montre le bloc logique terminant la carte du volume en fonction du nombre de blocs d'allocation :






	    Blocs d'allocation            Dernier bloc logique de la carte du volume
.      > 61,440                                         18
.      > 57,344                                         17
.      > 53,248                                         16
.      > 49,152                                         15
.      > 45,056                                         14
.      > 40,960                                         13
.      > 36,864                                         12
.      > 32,768                                         11

Les blocs d'allocation commencent après la carte du volume. Le catalogue et les données sur les fichiers sont contenus dans les blocs d'allocation.

Le fichier de catalogue est une liste de tous les fichiers et dossiers du volume. Il maintient la relation entre les fichiers et les dossiers sur un volume à répertoire hiérarchique. Il correspond au répertoire de fichier sur un volume à répertoire plat. Le fichier de catalogue est organisé et modifié en utilisant les structures"B-Tree" (balanced tree, ou arbres balancés). Les fichiers sont entrés dans l'ordre alphabetique éventuellement pondéré de manière à ce que trouver "Z" ne prenne pas plus de temps que trouver "A".

Le fichier "extents tree" contient les informations sur la localisation de tous les fichiers sur un volume (un "extent" est une série de blocs d'allocation continues). Les informations sur les fichiers de données que vous avez créé (comme où trouver le fichier, en combien de morceaux le fichier est-il divisé, etc.) sont enregistrées dans le fichier "extents tree". Tout fichier créé peut être découpé en morceaux. Quand tous les morceaux sont reliés (tout se passe sous le capot) avec les informations des "extents tree", le résultat est un seul fichier apparent.

La partie suivante du volume, la plus grosse, contient les données.

L'avant dernier bloc du disque dur contient le "master directory" secondaire. C'est une sauvegarde du MDB du bloc logique 2. Il est utilisé quand le gestionnaire de fichier s'apperçoit que le MDB est corrompu et a besoin d'être réécrit avec les informations correctes.

Le tout dernier bloc est vide. Il est utilisé pour vérifer les parties endommagées du disque dur.

Ce que vous pouvez faire

Donc, pouvez-vous faire quelque chose pour diminuer la taille des fichiers sur de gros disques durs ? Une solution est de partitionner les gros disques en partitions plus petites, ou disques logiques, chacun avec au maximum 65 536 blocs.

"Outil disque dur" d'Apple peut être utilisé pour partitionner des disques durs Apple et quelques périphériques amovibles comme indiqué dans le fichier Guide outil disque dur. Les disques durs n'étant pas gérés vont apparaître dans la liste des périphériques, mais si vous en sélectionnez un vous aurez le message "Impossible de modifier un périphérique non géré".

Outil disque dur marche sur tous les Power Macintosh, y compris les premiers PowerMac et les nouveaux PowerMac PCI. Le logiciel marche également sur les ordinateurs à base de processeur 68LC040 utilisant des disques durs IDE. Il n'est pas compatible avec les carte de mise à jour en PowerMac.

Il existe des logiciels non-Apple qui permettent de créer des partitions Macintosh sur les disques non gérés par Outil disque dur. Citons :


Informations sur ce document
Produit : Logiciels système Mac
Catégorie : Logiciels système - Généralités
Sous-catégorie :  Généralités
Article original : Macintosh: File System Specifications & Terms

Copyright © 1991-97 Apple Computer, Inc. All rights reserved.

Traduction ©1999, Serge Pajak & Guillaume Gete, tous droits réservés.

Retour au sommaire des archives

Macintosh|TIL FR|Kaleidoscope|Liens|Humour|Super Mario Bros|L'auteur|Mailing List

© 1998, Guillaume Gete ; Design du logo Gete.Net : © Gregory Janiszewski
Toute reproduction interdite sans accord des auteurs.
Toutes les informations reproduites sur ce site sont données à titre strictement personnel
par l'auteur et ne peuvent être considérées comme étant la représentation
officielle d'informations émanant d'Apple Computer, Inc.