Pourquoi «df» utilise-t-il «Bi» comme abréviation pour les octets?

8

Apparemment, dfmet "i" après les majuscules pour chaque taille. Cela a du sens pour les kilo-octets / kibibytes, les gigaoctets / gibibytes et les mébibytes (si c'est ce que "Mi" signifie). Mais pourquoi utiliserait-il "Bi" pour les octets?

Par exemple, une partie de mon résultat df -hest:

map auto_home           0Bi    0Bi    0Bi   100%       0          0  100%   /home
Kiochi
la source
1
Quels sont les résultats de df -H? RTM - la hsortie de l' option est la base 2 et la Hsortie de l' option est la base 10.
fd0

Réponses:

9

C'est la différence entre la valeur décimale et le préfixe binaire . Dans ce cas, cela signifie que vous utilisez 0 octet binaire.

Quelle est la différence?

En utilisant "Giga" comme exemple, cela signifie 1000 3 de quelque chose (c'est-à-dire Gigahertz).

Dans les ordinateurs, cela pose un problème intéressant:

Un gigaoctet est de 1000 3 octets. Cependant, un octet fait 8 bits (binaires). Ce qui signifie que c'est techniquement 1024 3 octets. Pour tenir compte de cela, nous utilisons une notation différente:

  • Giga est décimal (base 10)
  • Gibi est binaire (base 2)

La sortie vous indique qu'elle utilise des unités binaires.

Si vous voulez obtenir la sortie en "notation décimale lisible par l'homme", utilisez un "H" majuscule:

$ df -H
/dev/disk2      1.1T   413G   706G    37% 100935848 172431606   37%   
map auto_home     0B     0B     0B   100%         0         0  100%   /home

Enfin, ce n'est en fait pas une convention Apple, mais une convention de BSD (c'est une commande BSD). Vous pouvez trouver plus d'informations sur la page de manuel ( man df).

Allan
la source
8
Je ne comprends pas comment cela répond à la question. OP indique clairement qu'ils connaissent la différence entre 1GBet 1GiB. La question est: quelle est la différence entre 1Biet 1B? Pourquoi deux symboles différents?
Federico Poloni
5
"Un gigaoctet est de 1000 ^ 3 octets. Cependant, un octet est de 8 bits (binaires). Ce qui signifie que c'est techniquement 1024 ^ 3 octets." - Je ne vois pas comment un octet de 8 bits conduit à un gigaoctet signifiant 1024 ^ 3 au lieu de 1000 ^ 3 ...
marcelm
@marcelm Gigabyte = 1024 mégaoctets. Mégaoctet = 1024 kilo-octets. Kilo-octet = 1024 octets. 1024 = 2 ^ 10.
Dmitry Kudriavtsev
3
@marcelm Vous avez raison, c'est un non-sequitur. La mémoire (RAM) a toujours été mesurée comme des multiples de puissances de 2, en raison de la fabrication des puces. L'espace sur les disques en rotation n'est pas nécessairement, car cela dépend de la surface physique et de la densité de bits, les fabricants de disques ont donc choisi d'utiliser des puissances égales à 1000 pour améliorer l'apparence des nombres sur leur boîte. "Gibi" et les préfixes similaires étaient une création rétroactive pour essayer de les distinguer, mais ils ne font que rendre les choses plus compliquées.
BradC
1
La vraie raison pour laquelle le préfixe décimal a été utilisé pour 2 ^ x nombres dans les premiers jours est: 2 ^ 10 ~ 10 ^ 3.
klanomath
5

Bi signifie que vous êtes en unités de 1024 0 octets, au lieu de 1000 0 octets.

c'est-à-dire qu'ils sont la même unité, mais ne seraient pas avec des préfixes plus grands qui signifient des exposants non nuls. Il semble dfjuste être pédant, comme un moyen d'être cohérent en mode puissance de 2 unités.

Il s'agit d'une convention inventée: il n'y a pas d'unité métrique ou CEI "Bi", seulement des préfixes CEI à 2 lettres se terminant par "i", pour une utilisation avec des quantités de bits ou d'octets. (Par exemple, Mi pour mégaoctets ou mégibits.) Et non, on ne s'attend pas à ce que vous disiez cela à haute voix sans ironie avec un visage droit.

"iB" pourrait avoir plus de sens (octets binaires sans préfixe), mais ce n'est pas une chose non plus.

Peter Cordes
la source
2
Alors ne devrait-il pas être "iB"? ;)
Cai
1024 ^ 0 est exactement égal à 1000 ^ 0 (= 1) donc cela ne l'explique pas. Il n'y a pas de terme / symbole pour indiquer l'octet binaire (car l' octet implique intrinsèquement binaire), j'ai donc utilisé giga comme exemple. Il est encore plus difficile d'indiquer 0 car 0 en binaire et 0 en décimal sont égaux et peuvent prêter à confusion.
Allan
@Cai: J'ai vérifié, les préfixes CEI incluent toujours le "i" avec le préfixe, et ne font aucune mention d'une unité de base "iB". Voir la réponse mise à jour. Mais oui, d'accord, ce serait plus cohérent. Bien sûr, dans ce contexte ( dfsortie FreeBSD / OS X ), c'est ce que cela signifie.
Peter Cordes
1
Peut-être que les iB sont des octets imaginaires ?
Federico Poloni