Linux usa prefixo binário ou decimal?

2

Como o Linux lida com as Unidades? Usa decimal ou binário?

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

Agora, se você analisar dois comandos, por exemplo du e fdisk , poderá ver a diferença:

Aqui um exemplo para a mina HDD externa de 1 TB:

$ du -sh
956G    .

Ao executar fdisk :

$ sudo fdisk -l

Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
  • Então, quais aplicativos usam decimal e quais usam binário?
  • Como aplicar um método a todo o sistema e aplicativos dentro dele?
por Maythux 15.06.2015 / 16:37

1 resposta

2

A documentação do kernel não diz uma palavra sobre os prefixos do SI. Onde os prefixos aparecem na documentação, eles aparecem sem o bobo i ( k , M , etc., em vez de ki , Mi ) (consulte man 5 proc , por exemplo). Desde que ferramentas GNU não obtiveram suporte a prefixo SI até bem depois do lançamento do Linux, e Linus não parece alguém que altera o código do kernel simplesmente porque uma organização de padrões prefere prefixos diferentes, especulo que o Linux, quando usa esses prefixos, usa prefixos binários.

As páginas de manual desenvolvidas como parte da documentação do kernel , entretanto, discutem isso. Veja 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.

Referências da Wikipedia , e postagens em listas de discussão pelo ESR (também conhecido como Eric S. Raymond, um poço (conhecido como desenvolvedor de kernel) ( [1] , [2] , [3] , [4] ) mostram que um patch está mudando kB para KiB , etc. uma parte da documentação foi aceita, mas parte dela continuou a usar as variantes mais antigas. Assim, os prefixos são binários (ou se destinam a ser binários).

    
por muru 15.06.2015 / 17:19