Warum verwendet "df" "Bi" als Abkürzung für Bytes?

8

Anscheinend dfwird für jede Größe "i" nach Großbuchstaben gesetzt. Dies ist sinnvoll für Kilobytes / Kibibytes, Gigabytes / Gibibytes und Mebibytes (wenn "Mi" dafür steht). Aber warum sollte es "Bi" für Bytes verwenden?

Ein Teil meines Ergebnisses von df -hist zum Beispiel:

map auto_home           0Bi    0Bi    0Bi   100%       0          0  100%   /home
Kiochi
quelle
1
Was sind die Ergebnisse von df -H? RTM - die hOptionsausgabe ist Basis 2 und die HOptionsausgabe ist Basis 10.
fd0

Antworten:

9

Dies ist der Unterschied zwischen dem Dezimalwert und dem binären Präfix . In diesem Fall heißt es, dass Sie 0 Binärbytes verwenden.

Was ist der Unterschied?

Am Beispiel von "Giga" bedeutet dies 1000 3 von etwas (dh Gigahertz).

In Computern wirft es ein interessantes Problem auf:

Ein Gigabyte ist 1000 3 Bytes. Ein Byte besteht jedoch aus 8 (binären) Bits. Das heißt, es sind technisch 1024 3 Bytes. Um dies zu berücksichtigen, verwenden wir eine andere Notation:

  • Giga ist dezimal (Basis 10)
  • Gibi ist binär (Basis 2)

Die Ausgabe sagt Ihnen, dass es binäre Einheiten verwendet.

Wenn Sie die Ausgabe in "vom Menschen lesbarer Dezimalschreibweise" erhalten möchten, verwenden Sie ein Großbuchstaben "H":

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

Schließlich handelt es sich eigentlich nicht um eine Apple-Konvention, sondern um eine von BSD (es ist ein BSD-Befehl). Weitere Informationen finden Sie auf der Manpage ( man df).

Allan
quelle
8
Ich verstehe nicht, wie dies die Frage beantwortet. OP macht deutlich, dass sie den Unterschied zwischen 1GBund kennen 1GiB. Die Frage ist: Was ist der Unterschied zwischen 1Biund 1B? Warum zwei verschiedene Symbole?
Federico Poloni
5
"Ein Gigabyte ist 1000 ^ 3 Bytes. Ein Byte ist jedoch 8 (binäre) Bits. Das bedeutet, dass es technisch 1024 ^ 3 Bytes sind." - Ich sehe nicht, wie ein Byte mit 8 Bit zu Gigabyte führt, was 1024 ^ 3 statt 1000 ^ 3 bedeutet ...
marcelm
@marcelm Gigabyte = 1024 Megabyte. Megabyte = 1024 Kilobyte. Kilobyte = 1024 Bytes. 1024 = 2 ^ 10.
Dmitry Kudriavtsev
3
@marcelm Du hast recht, das ist keine Folge. Der Speicher (RAM) wurde aufgrund der Herstellung der Chips immer als Vielfaches der Potenzen von 2 gemessen. Der Speicherplatz auf sich drehenden Festplatten ist nicht unbedingt erforderlich, da er von der physischen Oberfläche und der Bitdichte abhängt. Daher haben sich die Hersteller von Festplatten dafür entschieden, gerade Potenzen von 1000 zu verwenden, damit die Zahlen auf ihrer Box besser aussehen. "Gibi" und ähnliche Präfixe waren eine rückwirkende Kreation, um zu versuchen, zwischen ihnen zu unterscheiden, aber sie machen die Dinge eindeutig nur chaotischer.
BradC
1
Der wahre Grund, warum das Dezimalpräfix in früheren Tagen für 2 ^ x Zahlen verwendet wurde, ist: 2 ^ 10 ~ 10 ^ 3.
Klanomath
5

Bi bedeutet, dass Sie in Einheiten von 1024 0 Bytes anstelle von 1000 0 Bytes angegeben sind.

Das heißt, sie sind dieselbe Einheit, würden aber keine größeren Präfixe haben, die Exponenten ungleich Null bedeuten. Es sieht so aus df, als wäre es nur pedantisch, um im Power-of-2-Einheiten-Modus konsistent zu sein.

Dies ist eine erfundene Konvention: Es gibt keine Metrik oder IEC "Bi" -Einheit, nur 2-Buchstaben- IEC-Präfixe , die mit "i" enden, zur Verwendung mit Mengen von Bits oder Bytes. (zB Mi für Mebibytes oder Mebibits.) Und nein, es wird nicht erwartet, dass Sie das jemals ironisch mit ernstem Gesicht laut aussprechen.

"iB" mag sinnvoller sein (binäre Bytes ohne Präfix), aber es ist auch keine Sache.

Peter Cordes
quelle
2
Dann sollte es nicht "iB" sein? ;)
Cai
1024 ^ 0 ist genau gleich 1000 ^ 0 (= 1), es erklärt es also nicht. Es gibt keinen Begriff / kein Symbol für ein binäres Byte (da Byte von Natur aus binär ist), daher habe ich Giga als Beispiel verwendet. Es ist noch schwieriger, 0 anzugeben, da 0 in Binär und 0 in Dezimal gleich sind und verwirrend sein können.
Allan
@Cai: Ich habe überprüft, dass die IEC-Präfixe immer das "i" mit dem Präfix enthalten und keine "iB" -Basiseinheit erwähnen. Siehe aktualisierte Antwort. Aber ja, stimmte zu, dass dies konsequenter wäre. In diesem Zusammenhang (FreeBSD / OS X- dfAusgabe) bedeutet dies natürlich .
Peter Cordes
1
Vielleicht sind iB imaginäre Bytes?
Federico Poloni