Двоичный файл использования Linux или десятичный префикс?

Как Linux имеет дело с Единицами? Это использует десятичное число или двоичный файл?

Decimal Prefix
name      base 10 exp   base 1000 exp     digits
kilo      10^3          1000^1            1000
mega      10^6          1000^2            1000000
giga      10^9          1000^3            1000000000


Binary Prefix
name      base 2 exp    base 1024 exp     digits
kibi      2^10          1024^1            1024
mibi      2^20          1024^2            1048576
gibi      2^30          1024^3            1073741824

Теперь, если Вы смотрите для двух команд, например, du и fdisk Вы видели различие:

Здесь пример для внешней шахты HDD на 1 ТБ:

$ du -sh
956G    .

При выполнении fdisk:

$ sudo fdisk -l

Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
  • Таким образом, Какие приложения используют десятичное число и которые используют двоичный файл?
  • Как применить один метод к целой системе и приложения внутри?
2
задан 15 June 2015 в 18:00

1 ответ

В документации ядра не говорится слово о префиксах SI. Где префиксы действительно появляются в документации, они появляются без глупого i (k, M, и т.д., вместо ki, Mi) (см. man 5 proc, например). Так как инструменты GNU не получали поддержку префикса SI, пока много позже того, как Linux не был выпущен, и Linus не похож на кого-то, кто изменяет код ядра просто, потому что организация стандартов предпочитает различные префиксы, я размышляю, что Linux, когда это действительно использует эти префиксы, использует двоичные префиксы.


Страницы справочника, разработанные как часть документации ядра, однако, действительно обсуждают это. Посмотрите man 7 units:

Thus, today, MB = 1000000B and MiB = 1048576B.

In the free software world programs are slowly being changed to con‐
form.  When the Linux kernel boots and says

      hda: 120064896 sectors (61473 MB) w/2048KiB Cache

the MB are megabytes and the KiB are kibibytes.

Википедия ссылается на это, и сообщения списка рассылки ESR (иначе Eric S. Raymond, известный разработчик ядра) ([1], [2], [3], [4]) показывают что изменение патча kB кому: KiB, и т.д. в одной части документации, был принят, но часть ее продолжала использовать более старые варианты. Таким образом префиксы являются двоичными (или предназначаются, чтобы быть двоичным).

2
ответ дан 2 December 2019 в 03:53

Другие вопросы по тегам:

Похожие вопросы: