Google

24 mars 2007

Le mystère de la capacité des disques durs. Ou du bon usage des standards

Depuis quelques années, les utilisateurs d'ordinateurs s'étonnent de la différence entre la capacité annoncée par les fabriquants de disques durs, et la capacité réelle annoncée par le système d'exploitation. Ainsi, un disque de 80 Go n'affiche-t-il que 74,5 Go sous Windows.

D'où vient la différence ? Certaines explications entendues ici ou là parlent de l'effet du formatage, qui ferait "perdre" de l'espace sur le disque. Pourquoi pas ? Mais une perte de près de 7% pour le formatage, cela fait beaucoup.

Et si la vérité était à la fois plus simple et plus obscure ? Simple comme les mathématiques, et obscure comme une vérité passée sous silence par les médias.

La faute à l'IEC !

Tout est expliqué sur le site de l'IEC, vénérable Commission Electrotechnique Internationale (ou International Electrotechnical Commission).

L'IEC est à l'origine d'un standard, en vigueur depuis décembre 1998, qui ajoute au Système International d'unités (SI) une nouvelle norme de "préfixes binaires".

Rappelons à cette occasion que le SI définit un ensemble de 7 unités de base : le mètre pour les longueurs, la seconde pour le temps, l'ampère pour le courant électrique, le kelvin pour la température, la mole pour les quantités de matière et la candela pour l'intensité lumineuse.

C'est aussi le SI qui définit les multiples et leurs abréviations, de yotta (10 puissance 24) à yocto (10 puissance -24) en passant bien sûr par kilo, méga, giga.

kilo, méga, giga

Justement, ces préfixes bien connus de l'informatique ont longtemps été utilisés (à tort) pour désigner des multiples de 1024 (2^10) et non de 1000 (10^3). Dans les premiers temps de l'informatique, la différence n'était pas bien grande, mais avec la croissance des capacités, elle devient plus visible. De 2,4% à l'échelle du kilo elle passe à 20% à l'échelle de l'exa.

Depuis 1998 donc, le SI définit clairement que le kilooctet comporte 1000 octets et non 1024. Pour faire plaisir aux informaticiens, l'IEC a eu le bon goût de créer de nouveaux préfixes pour les multiples binaires. On doit donc utiliser le kilobinaire pour désigner 1024, ce qui donne le kibioctet (KiO) pour 1024 octets. Les multiples binaires sont les suivants (cliquer sur le tableau pour l'agrandir) :



Voilà donc l'explication des octets perdus au "formatage" : en réalité, les fabricants de disques donnent leur capacité en kilooctets, tandis que le système d'exploitation lui, compte en kibioctets sans le dire. Lorsque Windows nous dit que le disque comporte 74,5 Go, il faut comprendre 74,5 Gio, soit 74,5 * 2^30 (soit 79,99 Go).

Il devient donc urgent que tout le monde prenne l'habitude de parler la même langue, ou au moins les mêmes mesures. Ou bien on accepte qu'un kilo vaut 1000 en octets comme dans toutes autres mesures, ou bien il faut apprendre à manier les multiples binaires.

J'avoue avoir un faible pour cette dernière option. Juste pour la poésie : quel plaisir de manier des barettes de 256 mebioctets, des disques de plusieurs tébioctets, ou des débits réseau de plusieurs gibibits ! Les Shadocks auraient adoré...

Aucun commentaire: