Чому `df` використовує" Bi "як абревіатуру для байтів?


8

Мабуть df, ставиться «я» після великих літер для кожного розміру. Це має сенс для кілобайт / кібібайт, гігабайт / гібібайт і мебібайт (якщо саме таке означає "Мі"). Але чому б воно використовувало "Bi" для байтів?

Наприклад, частина мого результату df -h:

map auto_home           0Bi    0Bi    0Bi   100%       0          0  100%   /home

1
Які результати df -H? RTM - hвихід опції є базовим 2, а Hвихідний варіант - базовим 10.
fd0

Відповіді:


9

Це різниця між десятковим значенням і двійковим префіксом . У цьому випадку це означає, що ви використовуєте 0 двійкових байтів.

Яка різниця?

Використовуючи "Гіга" як наш приклад, це означає 1000 3 чогось (тобто Гігагерца).

У комп'ютерах це становить цікаву проблему:

Гігабайт - 1000 3 байт. Однак байт становить 8 (двійкових) біт. Це означає, що це технічно 1024 3 байти. Для обліку цього ми використовуємо різні позначення:

  • Гіга є десятковою (основа 10)
  • Гібі двійкові (база 2)

Результат говорить вам, що він використовує двійкові одиниці.

Якщо ви хочете отримати результат у "людській читаній десятковій нотації", використовуйте велику літеру "H":

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

Нарешті, насправді це не конвенція Apple, а команда BSD (це команда BSD). Додаткову інформацію можна знайти на сторінці man ( man df).


8
Я не розумію, як це відповідає на питання. ОП дає зрозуміти, що вони знають різницю між 1GBта 1GiB. Питання: в чому різниця між 1Biі 1B? Чому два різні символи?
Федеріко Полоні

5
"Гігабайт - 1000 ^ 3 байт. Однак байт - 8 (двійкових) біт. Це означає, що технічно це 1024 ^ 3 байти." - Я не бачу, як байт з 8 бітами призводить до гігабайт, що означає 1024 ^ 3 замість 1000 ^ 3 ...
marcelm

@marcelm Gigabyte = 1024 мегабайти. Мегабайт = 1024 кілобайти. Кілобайт = 1024 байти. 1024 = 2 ^ 10.
Дмитро Кудрявцев

3
@marcelm Ви маєте рацію, це не є послідовником. Пам'ять (ОЗП) завжди вимірювалася як кратні потужності 2, завдяки виробництву мікросхем. Місце на прядильних дисках не обов'язково, оскільки це залежить від фізичної площі поверхні та щільності бітів, тому виробники дисків вирішили використовувати навіть потужність 1000, щоб цифри на їх коробці виглядали краще. "Гібі" та подібні префікси були зворотною силою, щоб спробувати розмежувати їх, але очевидно, вони лише роблять речі більш брудними.
БредК

1
Справжня причина, чому десятковий префікс використовувався для 2 ^ х чисел у попередні дні, є: 2 ^ 10 ~ 10 ^ 3.
кланомат

5

Bi означає, що ви в одиницях 1024 0 байтів, а не 1000 0 байт.

тобто вони однакова одиниця, але не було б з більшими префіксами, що означають ненульові показники. Це виглядає якdf це просто педантичність, як спосіб бути послідовним у режимі енергоблоків-2.

Це складена конвенція: немає метрики або IEC "Bi" одиниці, лише 2- літерні префікси IEC які закінчуються на "i", для використання з кількістю біт або байтів. (напр., Мі для мебібайт або мебібітів.) І ні, від вас не очікується, що ви скажете це вголос не іронічно з прямим обличчям.

"iB" може мати більше сенсу (двійкові байти без префікса), але це теж не річ.


2
Тоді чи не повинно бути "iB"? ;)
Кай

1024 ^ 0 точно дорівнює 1000 ^ 0 (= 1), тому це не пояснює. Немає терміна / символу, який би вказував на бінарний байт (бо байт по суті означає бінарний), тому я використав гіга як приклад. Ще складніше вказати 0, оскільки 0 у двійковій і 0 у десятковій є рівними і можуть бути заплутаними.
Аллан

@Cai: Я перевірив, що префікси IEC завжди містять "i" з префіксом і не згадують базовий блок "iB". Дивіться оновлену відповідь. Але так, погодився, це було б більш послідовно. Звичайно, саме в цьому контексті ( dfвихід FreeBSD / OS X ) це означає.
Пітер Кордес

1
Може, iB - це уявні байти?
Федеріко Полоні
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.