Qual é a razão para ter a opção de usar o poder de 1000 em vez de 1024 em df?

7

Estou curioso sobre df -H e df -h , então man df me diz:

   -h, --human-readable
          print sizes in human readable format (e.g., 1K 234M 2G)

   -H, --si
          likewise, but use powers of 1000 not 1024

Então, qual é a razão por trás do uso de poderes de 1000?

Talvez uma pergunta secundária (ou até relacionada):

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

É K bloco 1024 ou 1000?

    
por CppLearner 06.12.2014 / 18:35

3 respostas

9

Eu especulo que isso se deve aos fabricantes de armazenamento que usam os prefixos decimais do SI quase universalmente.

Mais adiante na página de manual (assumindo o 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).

Então 1K é 1024.

Em outra ferramenta GNU, dd , esta discussão de bugs fornece algumas dicas:

I recall considering this when I added this kind of diagnostic to GNU dd back in 2004, and going with powers-of-1000 abbreviations because secondary storage devices are normally measured that way. For this reason, I expect many users will prefer powers-of-1000 here. This is particularly true for transfer rates: it's rare to see "GiB/s" in real-world prose.

O commit que adicionou este recurso a df em 1997 apenas diz o que, e não o porquê.

    
por 06.12.2014 / 18:55
4

Se você voltar 15-20 anos, a matemática do power-of-2 seria sensata, pois combinava com os blocos de armazenamento mencionados em outras respostas. Então nos deparamos com o fator de inércia onde "nós sempre fizemos dessa maneira" entra em ação. E a pequena diferença entre ^ 2 e ^ 10 nunca chegou a muito. Os provedores de software usaram ^ 2 por conveniência (e inércia), os fabricantes de drives usaram ^ 10 porque produziu um número maior na caixa.

À medida que as unidades atingiam capacidades de centenas de gigabytes e, em seguida, multi-terabytes, a diferença tornou-se bastante substancial e, portanto, perceptível para o consumidor médio. A diferença de 30 + Gb não pode ser passada como "sobrecarga do sistema operacional". As poucas linhas de código na programação eliminaram muitas chamadas para o suporte técnico. Sim, o df não é usado pelo usuário médio do Mac diariamente, mas ele (ou suas funções / bibliotecas / bases de código) será usado por um programa de interface de alto nível.

    
por 06.12.2014 / 23:59
3

Se um meio de armazenamento particular usar unidades de alocação de, e. 1024 bytes, sabendo que um arquivo levou 260K em disco implicaria que levou 260 unidades de armazenamento. Se, em vez disso, o espaço fosse informado como 260k, não ficaria claro se isso significava 253 unidades de armazenamento (259.072, arredondadas para 260) ou 254 unidades de armazenamento (260.096 bytes). Evitar tal ambiguidade foi um bom argumento em favor do uso de unidades de poder-de-dois.

Desde que os fabricantes de discos rígidos começaram a usar prefixos decimais em vez de binários, e como o tamanho das unidades de armazenamento individuais é uma porção cada vez mais trivial da capacidade de uma unidade, os prefixos binários não têm mais a mesma vantagem que costumavam usar. / p>     
por 06.12.2014 / 23:33