Dlaczego „df” używa „Bi” jako skrótu dla bajtów?

8

Najwyraźniej dfwstawia „i” po wielkich literach dla każdego rozmiaru. Ma to sens w przypadku Kilobytes / Kibibytes, Gigabytes / Gibibytes i Mebibytes (jeśli to właśnie oznacza „Mi”). Ale dlaczego miałby używać „Bi” dla bajtów?

Na przykład część mojego wyniku df -hto:

map auto_home           0Bi    0Bi    0Bi   100%       0          0  100%   /home
Kiochi
źródło
1
Jakie są wyniki df -H? RTM - hwyjściem opcji jest podstawa 2, a Hwyjściem opcji jest podstawa 10.
fd0

Odpowiedzi:

9

Jest to różnica między wartością dziesiętną a prefiksem binarnym . W tym przypadku oznacza to, że używasz 0 bajtów binarnych.

Co za różnica?

Używając „Giga” jako naszego przykładu, oznacza 1000 3 czegoś (tj. Gigaherca).

W komputerach stanowi ciekawy problem:

Gigabajt ma 1000 3 bajtów. Jednak bajt ma 8 (binarnych) bitów. Co oznacza, że ​​jest to technicznie 1024 3 bajty. Aby to uwzględnić, używamy innej notacji:

  • Giga jest dziesiętna (podstawa 10)
  • Gibi jest binarny (baza 2)

Dane wyjściowe mówią ci, że używa jednostek binarnych.

Jeśli chcesz uzyskać wynik w postaci „dziesiętnego zapisu czytelnego dla człowieka”, użyj dużej litery „H”:

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

Wreszcie, w rzeczywistości nie jest to konwencja Apple, ale jedna z BSD (to polecenie BSD). Możesz znaleźć więcej informacji na stronie man ( man df).

Allan
źródło
8
Nie rozumiem, jak to odpowiada na pytanie. OP wyjaśnia, że ​​znają różnicę między 1GBi 1GiB. Pytanie brzmi: jaka jest różnica między 1Bii 1B? Dlaczego dwa różne symbole?
Federico Poloni,
5
„Gigabajt ma 1000 ^ 3 bajtów. Jednak bajt ma 8 (binarnych) bitów. Co oznacza, że ​​technicznie jest to 1024 ^ 3 bajtów.” - Nie rozumiem, jak bajt mający 8 bitów prowadzi do gigabajta, co oznacza 1024 ^ 3 zamiast 1000 ^ 3 ...
marcelm
@marcelm Gigabyte = 1024 megabajtów. Megabajt = 1024 kilobajtów. Kilobajt = 1024 bajty. 1024 = 2 ^ 10.
Dmitry Kudriavtsev
3
@marcelm Masz rację, to non-sequitur. Pamięć (RAM) zawsze była mierzona jako wielokrotność potęg 2, ze względu na sposób wytwarzania układów. Przestrzeń na wirujących dyskach niekoniecznie, ponieważ zależy od fizycznej powierzchni i gęstości bitów, dlatego twórcy dysków zdecydowali się użyć nawet mocy 1000, aby liczby na ich pudełku wyglądały lepiej. „Gibi” i podobne przedrostki były retroaktywnym dziełem mającym na celu rozróżnienie między nimi, ale najwyraźniej sprawiają, że wszystko jest bardziej chaotyczne.
BradC
1
Prawdziwym powodem, dla którego w poprzednich dniach używano prefiksu dziesiętnego dla liczb 2 ^ x jest: 2 ^ 10 ~ 10 ^ 3.
klanomath
5

Bi oznacza, że ​​jesteś w jednostkach 1024 0 bajtów, zamiast 1000 0 bajtów.

tzn. są one tą samą jednostką, ale nie miałyby większych prefiksów, które oznaczają niezerowe wykładniki potęgi. Wygląda na dfto, że jest po prostu pedantyczny, jako sposób na zachowanie spójności w trybie potęgi 2 jednostek.

Jest to wymyślona konwencja: nie ma jednostki metrycznej ani IEC „Bi”, tylko dwuliterowe prefiksy IEC, które kończą się na „i”, do użycia z ilością bitów lub bajtów. (np. Mi dla mebibajtów lub mebibitów.) I nie, nie oczekuje się, że kiedykolwiek powiesz to głośno, nie ironicznie, z prostą twarzą.

„iB” może mieć więcej sensu (bajty binarne bez prefiksu), ale to też nie jest rzecz.

Peter Cordes
źródło
2
Czy to nie powinno być „iB”? ;)
Cai,
1024 ^ 0 jest dokładnie równe 1000 ^ 0 (= 1), więc to nie wyjaśnia. Nie ma terminu / symbolu wskazującego bajt binarny (ponieważ bajt nieodłącznie implikuje binarny), więc użyłem giga jako przykładu. Jeszcze trudniej jest wskazać 0, ponieważ 0 w systemie binarnym i 0 w systemie dziesiętnym są równe i mogą być mylące.
Allan,
@Cai: Sprawdziłem, że przedrostki IEC zawsze zawierają przedrostek „i” i nie wspominam o jednostce podstawowej „iB”. Zobacz zaktualizowaną odpowiedź. Ale tak, zgodził się, że byłoby to bardziej spójne. Oczywiście w tym kontekście ( dfwyjście FreeBSD / OS X ) właśnie to oznacza.
Peter Cordes,
1
Może iB to fikcyjne bajty?
Federico Poloni,