Toi, qui me lis, es-tu sûr de comprendre ma langue ? (Jorge Luis Borges). Connaissez-vous les unités informatiques de représentation de volumes de données ? Certainement, ce sont les “méga” et les “giga”. Savez-vous que c’est en réalité bien plus complexe qu’il n’y paraît ? Les professionnels jouent de cette complexité d’une manière qui n’est pas toujours très honnête. On pourrait même souvent parler de publicité mensongère, ou d’étiquetage erroné. Ainsi, lorsqu’il y a écrit “1 To” sur la boîte d’un disque dur, celui-ci ne pourra contenir en réalité que 931 Go une fois formaté. La différence entre la capacité affichée et la capacité effective atteint presque 10%. Plus grave encore, les fournisseurs d’accès à Internet se gardent bien de préciser que la vitesse réelle de votre ligne “10 mégas” est en réalité de 1,25 méga. Pourquoi ces différences ? Parlons-nous vraiment la même langue ?
Des bits et des bytes
L’informatique, comme chacun le sait, repose sur un système électronique binaire : le courant passe ou il ne passe pas. Cette alternative est représentée, par convention, par deux chiffres : 0 et 1. Les logiciels sont en fait, au plus bas niveau, des séries de 0 et de 1. Un 0 ou un 1, le fait que le courant passe ou ne passe pas, est appelé un bit. Autrement dit, le bit est une unité de mesure en informatique désignant la quantité élémentaire d’information représentée par un chiffre du système binaire (Wikipédia).
Les bits s’assemblent par groupes de 8. Ces groupes sont à leur tour appelés bytes en anglais, ou octets en français.
Dans la table ASCII, qui contient tous les caractères courants de l’alphabet anglais, chaque lettre est représentée par un octet. Pour être plus précis, chaque lettre est identifiée par un 0 suivi d’une série de 7 bits (8 bits en tout). Par exemple, lorsqu’on tape la lettre “a”, l’ordinateur comprend en réalité “01100001″. Le code pour un “A” majuscule est différent : “01000001″. Pour un “b” minuscule, le code est “01100010″, et pour un “B” majuscule, “01000010″. Et ainsi de suite pour toutes les lettres courantes. On comprend donc que 1 lettre = 1 octet dans le système ASCII.
L’octet est devenu par convention l’unité de représentation des volumes de données. Son abréviation est b (pour byte), la lettre o ne pouvant être utilisé par risque de confusion avec le chiffre 0. D’autres unités sont des multiples de l’unité de base : Kb (Kilo byte), Mb (Méga byte), etc. Le bit, quant à lui, n’a pas d’abréviation, il n’est pas une unité utilisée pour la représentation d’un volume de données. En résumé : l’affichage “Mb” ou “MB” est équivalent à “Mo” ou “MO” et désigne des Méga-octets ; de même pour Kb (Kilo), Gb (Giga), Tb (Tera), etc.
Des multiples de 10 ?
Le système décimal que nous connaissons (et qui provient des chiffres arabes avec l’ajout du 0) permet d’organiser les quantités en multiples de 10. On part ainsi d’une unité, par exemple le mètre, que l’on multiplie par 10 pour obtenir un décamètre. On multiplie par 100 (= 10*10 = 10^2) pour obtenir un hectomètre ou par 1000 (10^3) pour obtenir un kilomètre. A l’inverse, on divise par 10 (10^-1) pour obtenir un décimètre, par 100 (10^-2) pour un centimètre ou par 1000 (10^-3) pour un millimètre. Ce système fonctionne pour toutes les unités : mètre, gramme, litre, euro, etc ; sauf en informatique.
Combien y a-t-il de mètres dans 1 Km ? Réponse : 1000.
Combien y-a-t-il de grammes dans 1 Kg ? Réponse : 1000.
Combien y-a-t-il d’octets dans 1 Kb ? Réponse : 1024.
Il n’y a pas d’erreur à la ligne précédente. Dans 1 Kb, il y a bien 1024 octets. En réalité, il s’agit de 2 à la puissance 10 (2^10). Pour connaître le nombre d’octets dans 1 Mb, il faut multiplier deux fois par 1024 : 1 Mb = 1024 Kb = 1024*1024 b = 1.048.576 octets. On voit bien que plus l’unité de mesure est grande, plus la différence avec le système décimal s’accentue.
1 Kb = 2^10 = 1 024 octets
1 Mb = 2^20 = 1 048 576 octets
1 Gb = 2^30 = 1 073 741 824 octets
1 Tb = 2^40 = 1 099 511 627 776 octets
Un tel système étant assez difficile à comprendre pour le grand public, les fabricants utilisent le système décimal classique dans lequel 1 Kb = 1000 octets et 1 Mb = 1000 Kb. Ainsi, lorsque vous achetez un disque dur de 1 Tb, cette mesure est faite en application du système décimal. C’est une mesure abstraite, décidée par convention, qui ne correspond pas à la réalité. La capacité réelle du disque (“après formatage”), est de 931 Go. On perd ainsi 69 Go par la seule différence de mesure entre la réalité et les conventions. Faisons un petit calcul :
Taille conventionnelle : 1 Tb = 1.000.000.000.000 octets
1.000.000.000.000 octets / 1024 = 976.562.500 Kb
976.562.500 Kb / 1024 = 953.674,3 Mb
953.674,3 Mb / 1024 = 931,3 Gb
Conclusion : la taille du disque affichée sur l’étiquette est de 1 Tb, mais la taille réelle n’est que de 931 Gb.
Les fabricants auraient très bien pu faire le calcul inverse. C’est-à-dire faire en sorte que la taille réelle du disque, après formatage, soit effectivement de 1 Tb. Si tel était le cas, l’affichage “1 Tb” sur la boîte du disque serait justifié. Mais pour le moment, tant que les fabricants utiliseront des conventions qui ne correspondent pas à la réalité, leurs affichages seront erronés et mensongers.
Certains consommateurs américains qui ont acheté un iPod de Apple ont constaté cette différence entre la capacité affichée et la capacité réelle. Ils ont fait un procès au fabricant des disques durs, Seagate, et ont gagné. Seagate s’est engagée à rembourser une somme proportionnelle à la différence entre la capacité affichée et la capacité réelle des disques.
Le problème est ici que l’utilisateur croit réellement disposer d’une capacité de 1 Tb, alors qu’il ne dispose en réalité que de 931 Gb. Ce problème est longtemps resté imperceptible, car les capacités de stockage n’étaient jusqu’alors pas très importantes. Sur 1 Gb (1000 Mb), la perte est de 47 Mb seulement. Désormais, les disques ont des capacités de plus en plus importantes, et la différence entre l’affichage et la réalité s’accentue, si bien que l’acheteur d’un disque de 1 Tb qui se voit privé de presque 10% de la capacité de stockage, peut se sentir floué.
Des multiples de 8 ?
S’il est assez évident que la taille des disques est affichée en système décimal par commodité et non pas intention de nuire, il en va autrement pour les débits des connexions à Internet. Les fournisseurs d’accès entretiennent en effet la confusion en parlant de “méga” sans préciser l’unité de base.
Car en matière de réseau, l’unité de base reste le bit (et non le byte ou octet). Un petit rappel historique est nécessaire pour en comprendre les raisons. Les premières connexions à Internet passaient par des modems analogiques. Ces modems affichaient des vitesses, variable selon les modèles, de 9600, 14400, 28800 ou encore 56600 bauds ou bps. Les bauds représentent la fréquence d’échantillonnage qui, en présence d’un débit bivalent, peuvent être assimilés à des bits par seconde (bps).
L’unité Baud, utilisée pour les premiers modems, n’est presque plus employée aujourd’hui. Elle ne l’est plus, en tout cas, pour les lignes numériques, ADSL ou optiques. Cependant, le débit est toujours représenté par des bps (bits par seconde).
Lorsqu’un fournisseur d’accès fait de la publicité pour une “connexion ADSL à 10 méga”, il faut comprendre 10 Méga-BITS par seconde et non pas 10 Méga-BYTES/OCTETS par seconde. Or, comme il a été expliqué ci-avant, 1 octet = 8 bits, donc 1 bit = 1/8 octet.
Imaginez que vous ayez un fichier de 100 Mb à transférer sur le réseau. Si votre ligne a réellement une vitesse de “10 mégas” par seconde, le fichier devrait être transféré en 10 secondes. Pourtant, le transfert sera beaucoup plus long. La ligne a en effet une vitesse 8 fois moindre à la vitesse annoncée, puisque la vitesse est calculée en bits par seconde et non en octets par seconde. Ainsi, les “10 mégas” sont en fait 10/8 = 1,25 méga par seconde. Le fichier de 100 Mb sera transféré en 80 secondes.
On peut reprocher aux fournisseurs d’accès de faire une publicité mensongère et de tromper intentionnellement le client en entrenant une confusion entre les méga-octets que tout le monde connaît et les méga-bits utilisés pour représenter la vitesse d’une connexion. C’est en effet bien conscients du problème qu’ils choisissent d’employer l’expression “méga” au lieu de citer l’unité de mesure complète. Pour l’immense majorité des gens, “méga” désigne ce qu’ils connaissent depuis les disquettes de 1,44 Mb jusqu’aux disques durs d’aujourd’hui, en passant par la mémoire RAM et la mémoire vidéo des ordinateurs personnels. Il est donc légitime pour eux de penser qu’avec une connexion à “10 méga”, un fichier de leur disque dur dont la taille est de “100 méga”, sera transféré en 10 secondes !
{ 12 comments… read them below or add one }
Ben là, tu m’en bouches un coin. Moi qui croyais que tu n’étais pas un fana des chiffres!
En tout cas, tu expliques très clairement ce que je pressentais depuis toujours : on se fait avoir par le marketing, et le 13 à la douzaine du bon vieux temps se transforme en 11 à la douzaine pour ces nouveaux coquins.
Sans volonté de racisme ou n’importe quel autre mot à la mode, les chiffres arabes sont en réalité indiens, les Arabes s’étant contenté de les propager.
Néanmoins, dans un soucis d’équité, je précise également que les Arabes ont eux aussi contribué aux mathématiques en complétant certains théorèmes (vous dire lesquels dépassent mes compétences de si bon matin).
Au passage, bravo pour la nouvelle charte graphique.
Oui, c’est parfaitement exact. On parle de “chiffres arabes” car ce sont les arabes qui les ont introduits en europe, par oppositions aux chiffres romains utilisés jusqu’alors. Il est d’ailleurs très intéressant de voir le tracé actuel des chiffres dans certains pays du monde : les “chiffres arabes” que nous connaissons sont en réalité des “chiffres arabes occidentaux”, différents de ceux utilisés par exemple en Egypte ou en Inde (v. les tableaux de comparaison sur Wikipédia).
Une très bonne explication. Bravo
Bonsoir, je souhaite vous écrire et nulle part au cours de ce blog passionnant, first class (la place manque, afin de détails) etc… je ne trouve l’invitation, voire même la place dévolue à un genre de contact. Une volonté, sans doute… Alors, ce biais comme un pied dans la porte, via un commentaire “Toi, qui me lis, es-tu sûr de comprendre ma langue ? (Jorge Luis Borges)” Écrire en anglais ou en français ? Je suis “demandeur” (curieux, béotien, solvable) de différentes choses, à divers aspects, tant techniques (avec dose de philosophie afférente, enfin l’animisme chez Apple…) que pratiques. Ce site exhale le bon parfum de l’intelligence, vous ferait part de mes “déboires” par ailleurs avec des crétins sectaires qui se prévalent d’une génération. Dans votre “A propos” — Sur moi ? Pas grand chose: étudiant en droit, passioné d’informatique.— Passion avec deux s, comme saucisse et deux n quand il s’agit de soi. Voilà pour ce soir.
Avec mes meilleurs sentiments, à vous lire.
Bravo & chapo, anyway.
Didier Hubert
En effet, c’est bien une volonté… de ne pas être dérangé par les « crétins sectaires qui se prévalent d’une génération » qui ne pousse à ne pas laisser mes coordonnées. Il est toutefois possible de dialoguer via les commentaires sous les articles, comme vous venez de le faire, et je peux ainsi trier les messages, garder les bons comme le votre et jeter les mauvais, si nombreux.
Je n’ai beaucoup de passion pour la page « A Propos », rédigée il y a plusieurs années et oubliée depuis longtemps. Je crois que je vais aller y faire un tour pour rajouter des « n ». Merci !
Si je suis globalement d’accord avec ce que vous expliquez. Je voudrais en revanche émettre 2 remarques. Loin de moi l’idée de défendre les industriels de l’informatique, cela fait plus de 10 ans que je révèle régulièrement à mes stagiaires ce genre “d’escroquerie”.
Premier détail qui me dérange, s’il est vrai que “b” est souvent utilisé pour “byte”, il est beaucoup plus fréquent que les constructeurs, notamment de supports de stockage (disques durs ou autres), lui préfèrent “B”. Justement pour s’autoriser à employer “b” plutôt pour “bit” afin d’éviter les confusions (ou de semer encore plus le trouble, cela dépend des points de vue).
Ainsi la boîte que j’ai devant les yeux à l’instant me dit que j’ai un disque de 1TB/To et non de 1Tb/To.
Second élément, et là ce n’est plus de l’ordre du détail. S’il est vrai que pendant environ 50 ans on ne nous a pas fourni d’unités permettant de distinguer clairement entre des nombres exprimés en puissances de 2 et d’autres exprimés en puissances de 10, il existe depuis quelques années maintenant des symboles spécifiques aux mesures informatiques (tout au moins pour les volumes des données). Appelés préfixes binaires par opposition à préfixes SI, cela nous vaut des Kio, Mio, Gio, Tio, etc. À la place ou en complément de Ko, Mo, Go, To, etc.
Tout cela est superbement expliqué sur la page http://fr.wikipedia.org/wiki/Octet (merci Wikipédia). Et si ma compréhension de la page http://en.wikipedia.org/wiki/IEC_60027 est correcte, il semble que cette volonté de normalisation remonte à 1999. J’avoue bien volontiers ne pas l’avoir su avant 2009.
Je crois pouvoir avancer que le premier éditeur de système d’exploitation qui a essayé de mettre bon ordre dans tout cela (et il reste encore beaucoup de chemin à faire, même pour lui) est Apple avec la version Leopard de Mac OS X (les tailles des fichiers y sont plus “conformes” à vos attentes).
Pour les utlisateurs de systèmes Unix/Linux (ou basés sur Unix), certains de ces derniers possèdent des versions modernes de commandes telles que df. J’invite leurs utilisateurs (ce qui auront eu le courage de lire jusqu’ici) à essayer tour à tour les commandes :
df -h
df -H
En effet, la commande “df” permet d’afficher la taille d’un volume en base 10 (-H) ou en base 2 (-h). Elle est ici testés sur un Mac (OS X Snow Leopard).
Elle est bien pratique, en effet. Mais cela change-t-il pour autant ce qui est dit dans l’article ?
Voyons en premier comment Mac OS X affiche la taille d’un fichier lorsque l’utilisateur moyen (comprendre: celui qui ne connaît ni le Terminal ni la différence entre Byte et bit) en affiche les propriétés avec Commande+i :
Aucune mention de la base 2. On reste en base 10.
Voyons ensuite (puiqu’on parle d’Apple), les ordinateurs sur l’Apple Store. Dans le descriptif d’un MacPro il y a écrit Disque dur de 1 To, avec un petit renvoi à la note n°1 en bas de page, qui dit : 1 Go = 1 milliard d’octets ; 1 To = 1 billion d’octets. La capacité formatée réelle est inférieure. Donc c’est honnête, mais inutile pour l’éducation du consommateur, vu qu’il n’est pas précisé qu’un disque de “1 To” contiendra en réalité “931 Go” (comme le dit très bien la commande df -h).
Le problème là dedans, c’est surtout que les gens ont pris l’habitude de se dire : “C’est de la technique, je n’y comprends rien. Alors tant que ça marche, j’accepte ce que j’ai et je laisse tomber les détails”. Autrement dit, dans leur esprit, s’ils paient 1 To pour obtenir 931 Go, c’est “la faute de la technique à laquelle l’on ne comprend rien” plutôt que la faute des industriels. “Après tout, si c’est comme ça, c’est sûrement qu’ils ne peuvent pas faire autrement…”
Cela affecte l’article dans le sens où ce dernier donne l’impression que les choses sont figées pour la postérité. J’avance simplement que ce n’est pas le cas, que le problème a été mis en évidence et que d’aucuns s’emploient à faire bouger les choses. Simplement il faut effectivement être patient car il y a une grosse inertie.
Au delà de la prise de conscience (quelques décennies), de la proposition d’une solution, il faut encore compter avec l’acceptation de la nécessité d’évoluer par les principaux acteurs du marché et enfin le passage à l’acte avec l’adoption concrète de ces nouvelles mesures.
En cela le mouvement Open Source offre un petit avantage, il ne se sent pas obligé de spolier ses utilisateurs pour le profit. Par conséquent il constitue un terrain favorable à la circulation des nouvelles idées.
Ah oui au fait, concernant Apple. Vérifiez bien, votre raisonnement est erroné (« il n’est pas précisé qu’un disque de “1 To” contiendra en réalité “931 Go” »).
Non ! Comme ils utilisent au moins ici les bons symboles, 1 disque de 1 To (et NON de 1 Tio) fait bien 1000 Go (et non Gio) et par conséquent bel et bien 1 000 milliards d’octets. Détail au passage, les constructeurs de disques s’arragent toujours pour avoir très légèrement plus d’octets, peut-être justement pour éviter les procès à répétition.
De façon assez amusante (ne le criez pas sur les toits), depuis l’adoption des nouvelles unités de mesure, Apple se vole. Ben oui. Regardez ils vous vendent des machines avec des Go de mémoire vive alors qu’il vous livrent cette même quantité en Gio. Et cela sans demander un centime de plus. Si c’est pas gentil ça.
Comme quoi il ne sont pas encore homogènes dans leurs programmes, celui que l’on nomme Informations Système rapporte n Go de RAM alors qu’en vérité il y en a n Gio.
Et pas la peine de me hurler dessus, je sais parfaitement que je prête des bons sentiments à des gens qui eux aussi s’emmêlent bien involontairement les pinceaux. La faute à la période de transition que j’évoquais plus haut qui va se révéler longue, laborieuse et pleine de suprises (tantôt bonnes, tantôt mauvaises).
That’s life!
(P.S. : je dois faire amende honorable et faire mon mea culpa.
J’avais écrit qu’Apple avait procédé au changement des mesures depuis Leopard. Il n’en est rien. Il a fallu attendre OS X 10.6 Snow Leopard pour constater ce basculement.)
Intéressant, l’exemple de la RAM ! C’est bien la preuve qu’il est possible d’augmenter la capacité pour que cela corresponde à l’affichage.
Par ailleurs, je suis récemment passé à la FNAC, et j’ai un peu regardé les disques LaCie. Au dos de la boîte, en bas et en tout petits caractères, il y a écrit que la capacité réelle après formatage est “p %” inférieure à la capacité affichée. Bon, c’est déjà plus honnête : ils le disent. Pourtant, si avec des disques de 1 TO, il s’en tirent avec un faible pourcentage, dans quelques années, avec l’augmentation des capacités, ils vont devoir afficher des pourcentages plus hauts. J’en rigole déjà : “attention, la capacité réelle est 60% inférieure à la capacité indiquée sur l’étiquette”. Bon, ce n’est pas demain la veille, certes, mais il faudra qu’on ait changé soit d’unité soit de pratiques à ce moment là.
Malgré tout, je dois reconnaître que les vendeurs de disques n’ont pas la vie facile entre une réalité technique et une habitude bien ancrée depuis des années (parler de “Mo”). Je peux donc comprendre que l’affichage ne corresponde pas exactement à la réalité. Et puis, après tout, on s’en fiche un peu : on n’est pas à quelques Mo près.
Ce qui m’embête, en revanche, c’est de retrouver la même notation en “mégas” chez les FAI. Ils le font depuis l’ADSL, et ils continuent maintenant avec la Fibre. Et là, on ne peut plus parler de concilier technologie avec vieille habitude. Au contraire, ils profitent de l’habitude que nous avons de parler de “mégas” sans préciser la mesure exacte (MegaByte/MegaBit). En achetant du “10 mégas par seconde”, les gens pensent acheter du “10 Mo/s” alors qu’ils achètent du “10 Mb/s”, c’est-à-dire du 10/8 = “1,25 Mo/s”. C’est très clairement de la tromperie.
Combien y-a-t-il d’octets dans 1 Kb ? Réponse : 1024.
C’est faux.
Kilo = puissance de 10.
Kibi = puissance de 2.
Combien y-a-t-il d’octets dans 1 Kb ? Réponse : 1000.
Combien y-a-t-il d’octets dans 1 Kib ? Réponse : 1024.
Oui, mais non, désolé.
Le but de cet article n’est pas de critiquer ou de commenter les normes techniques, mais les pratiques des industriels.
Aussi, que la norme IEC 60027-2 impose, depuis 1998, l’utilisation des abréviations Ki, Mi, Gi, Ti, etc. pour désigner les valeurs 2^n, n’a aucune importance dans notre propos dès lors que cette norme n’est pas connue du grand public et qu’elle n’est pas respectée par les vendeurs de supports de stockage.
Si j’achète aujourd’hui un disque dur de 1 To sur Amazon.fr ou à la Fnac, que je l’installe dans mon ordinateur et que je le formate, j’obtiendrai une capacité de stockage de 931 Go. Je suis un bête consommateur qui n’a rien à faire des normes SI, et je constate donc que j’ai perdu près de 10% de la capacité de stockage annoncée.
{ 1 trackback }