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 Вы могли видеть разницу:

Вот пример для внешнего жесткого диска емкостью 1 ТБ:

$ du -sh
956G    .

Во время бега fdisk:

$ sudo fdisk -l

Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
  • Итак, какие приложения используют десятичную, а какие - двоичную?
  • Как применить один метод ко всей системе и приложениям внутри?

1 ответ

Решение

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


Однако man-страницы, разработанные как часть документации ядра, обсуждают это. Увидеть 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 (он же Эрик С. Рэймонд, известный разработчик ядра) ( [1], [2], [3], [4]) показывают, что патч меняется kB в KiB и т. д. в одной части документации, была принята, но часть продолжала использовать более старые варианты. Таким образом, префиксы являются двоичными (или предназначены для двоичного использования).

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