В чем смысл использования мощности 1000 вместо 1024 в df?

Мне интересно, как df -H и df -h , тогда man df говорит мне:

  -h, --human-readable print sizes in human readable format (eg, 1K 234M 2G) -H, --si likewise, but use powers of 1000 not 1024 

Итак, каково обоснование использования полномочий 1000?

Может быть, побочный вопрос (или даже связанный):

 root@host:~# df Filesystem 1K-blocks Used Available Use% Mounted on 

Является ли K блоком 1024 или 1000?

Я предполагаю, что это связано с тем, что производители хранилищ используют десятичные префиксы SI почти повсеместно.

Далее в man-странице (при условии GNU df ):

  SIZE is an integer and optional unit (example: 10M is 10*1024*1024). Units are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB, ... (pow‐ ers of 1000). 

Таким образом, 1K равно 1024.

В другом инструменте GNU, dd , эта дискуссия об ошибках дает некоторое представление:

Я вспоминаю об этом, когда добавил этот вид диагностики в GNU dd еще в 2004 году и перешел с сокращениями с мощностью 1000, потому что вторичные устройства хранения обычно измеряются таким образом. По этой причине я ожидаю, что многие пользователи предпочтут полномочия от 1000 здесь. Это особенно верно для скорости передачи данных: редко можно увидеть «GiB / s» в реальной прозе.

Конец, который добавил эту функцию в df в 1997 году, только говорит, что, а не почему.

Если вы вернетесь на 15-20 лет, математика с мощностью-2 была разумной, так как она соответствовала блокам хранения, как упоминалось в других ответах. Затем мы сталкиваемся с коэффициентом инерции, где «мы всегда так делали это». И небольшая разница между ^ 2 и ^ 10 никогда не складывалась. Поставщики программного обеспечения использовали ^ 2 для удобства (и инерции), производители дисков использовали ^ 10, потому что они производили большее количество на коробке.

Поскольку диски достигли мощностей сотен гигабайт, а затем и нескольких терабайт, разница стала довольно значительной и, следовательно, заметной для среднего потребителя. Разность 30 + Gb не может быть передана как «операционная система». Несколько строк кода в программировании устранили множество звонков в службу поддержки. Да, df не используется средним пользователем Mac каждый день, но он (или его функции / библиотеки / codebase) будет использоваться программой более высокого уровня UI.

Если конкретный носитель данных использует единицы размещения, например 1024 байта, зная, что файл занимает 260 Кбайт на диске, это означает, что на него потребовалось 260 единиц хранения. Если бы пространство было объявлено как 260 тыс., Было бы непонятно, означали ли это 253 единицы хранения (259 072, округленные до 260) или 254 единицы хранения (260 096 байт). Уклонение от такой двусмысленности было хорошим аргументом в пользу использования блоков «сила-два».

Однако, поскольку производители жестких дисков начали использовать десятичные, а не двоичные префиксы, и поскольку размер отдельных блоков хранения является все более и более тривиальной частью емкости диска, бинарные префиксы больше не имеют того же преимущества, что и раньше.