Général

Les PCRE

Les POSIX

Pratique

Linux

Spécial php

Les billets de fred

J'ai décidé de grossir

Depuis toujours, nous, modestes informaticiens bien pensant, savons que le kilo-octet contient 1024 octets, alors que les personnes qui ne sont pas de notre rang ... technologique pensent que le kilo est un préfixe désignant un multiple de 1000 comme pour le kilogramme, le kilomètre ou le kilojoule. Donc quand ma balance indique 81, cela veut dire, pour moi qui suis informaticien, que je pèse 82944 grammes.

Tout le paradoxe est là, en informatique, on ne fait rien comme les autres, quitte à bouleverser une notion vieille de plusieurs siècles.

Ça n'a rien à voir, en informatique, on fonctionne en binaire donc en base 2 !

Quelle est le rapport avec la choucroute ? Ce n'est pas parce que l'on compte en base 2 qu'il faudrait changer un préfixe qui a toujours annoncé un multiple de 1000 !

D'ailleurs, revenons à la genèse de ce concept farfelu : Il y a de cela quelques années, les mémoires des ordinateurs ont commencé à grossir pour dépasser le millier d'octets (pfiou, tant de place, que va-t-on en faire ?) et on s'est dit : "Bon, j'ai 42.352 octets, ça fait en gros 42 kilo-octets", mais comme les processeurs de l'époque ne connaissaient pas la division, on pratiquait une approximation en opérant un décalage de 10 bits, ce qui revenait à une division par 1024. Mais je le répète, c'était une approximation !

Et cette approximation est restée pour devenir une sorte de norme. Puis on est passé au méga, giga et autre téra tout en gardant des multiples de 1024, ce qui conduit à ceci :
Un téra-octets, c'est 1024 giga-octets qui lui-même donne 1024 méga-octets qui lui aussi vaut 1024 kilo-octets qui enfin est égal à 1024 octets, soit 1024x1024x1024x1024 = 1.099.511.627.776 octets.
Si on avait gardé un multiple de 1000 cela donne une différence de 99.511.627.776 octets, ce qui est assez énorme. En fait, pour le kilo-octet, la marge d'erreur n'est que de 2,4%, mais si on monte dans les méga ou giga, cette marge devient beaucoup plus importante (7,3% pour le giga). C'est d'ailleurs pour cette raison que certaines personnes estiment que le méga-octets est équivalent à 1.000 kilo-octets qui est lui même équivalent à 1024 octets conservant ainsi une marge d'erreur de 2,4%. Bref, on ne sait plus qui est qui.

Du coup, les fabricants de mémoires et de disques dur ont abusé de cette ambiguïté en prenant 1000 comme multiplicateur. Ainsi, lorsque vous achetez un disque dur de 120 Giga, après le formatage vous constatez toujours que la place libre est plus faible et vous mettez ça sur le compte de l'espace pris par le système de fichiers. Seulement le système de fichiers n'est pas aussi énorme que cela car en fait, votre disque de 120 Giga fait en réalité 120.000.000.000 octets, mais votre système d'exploitation utilise un multiple de 1024, ce qui vous ramène à 112 Giga moins la taille du système de fichiers.

Il en va de même pour le débit des liaisons série exprimé en kilo-bit qui dans la majorité des cas est équivalent à 1.000 bits. Ainsi, une liaison ADSL 512 K (c'est quoi cette unité, des Kelvins ?), le débit est donc de 512.000 bits par seconde soit 64.000 octets par seconde (si on ne compte pas les bits de contrôle). En considérant le kilo-octet à 1024 octets, cela donne 62,5 Kilo-octets

Ouais, et bien j'ai mes habitudes et je ne vais pas en changer !

Certes, vous faites comme vous voulez, seulement sachez que depuis janvier 1999, l'organisme international de normalisation des unités (IEC : International System of Units) a mis en place une norme définissant les préfixes utilisés en informatique et permettant de faire la différence entre le kilo informatique et le kilo non-informatique. Ainsi, on parle de kilo ou de kilo binaire, ce dernier étant abrégé en Kibi. Il en va de même pour le Mibi (méga binaire), le Gibi (giga binaire) ... etc.

Ainsi, comme vous semblez toujours bornés à utiliser les multiples de 1024, la seule chose à faire pour être aux normes est d'ajouter un petit "i" entre le "K" et le "o" sans pour autant changer votre mode de calcul, ce qui donne par exemple : 42 Kio.

Bien que cette norme soit vieille de plusieurs années, peu d'applications utilisent cette convention mais on en voit de plus en plus. Pourtant elle est simple à appliquer. Si vous disposez d'une application internationale, il suffit de changer la traduction du "KB" pour l'anglais en "KiB" et le "Ko" français en "Kio". C'est d'ailleurs une règle appliquée dans certaines distributions de Linux.

Pour récapituler, les préfixes nous donnent :
Nom symbole valeur
Kilo binaire octet Kio 1.024 octets
Méga binaire octet Mio 1.048.576 octets
Giga binaire octet Gio 1.073.741.824 octets
Téra binaire octet Tio 1.099.511.627.776 octets
Péta binaire octet Pio 1.125.899.906.842.624 octets
Exa binaire octet Eio 1.152.921.504.606.846.976 octets
Kilo octet Ko 1.000 octets
Méga octet Mo 1.000.000 octets
Giga octet Go 1.000.000.000 octets
Téra octet To 1.000.000.000.000 octets
Péta octet Po 1.000.000.000.000.000 octets
Exa octet Eo 1.000.000.000.000.000.000 octets


Par Frédéric Bouchery
ADAM Benjamin 2008 | Admin