Significado de "i" em "MiB"?

82

Eu vejo o uso do "MiB" como medida para representar o tamanho no Ubuntu. MiB de quê? Em particular o "i"?

Renjith G
fonte

Respostas:

115

Existem duas maneiras (em uso comum) de denotar ordens de magnitude para facilitar a leitura de grandes números; primeiro, você pode usar uma potência de 10.

10⁰ = 1
10¹ = 10
10² = 100
10³ = 1000

Ou poderes de dois

2⁰ = 1
2¹ = 2
2² = 4
2³ = 8

Usando essas séries como base, chegamos aos números 1000 e 1024 (10³ e 2¹⁰) por um quilo .

Existem oito bits em um byte. Portanto, um kilobyte é 8 × 10³ = 8000 bits. Os fabricantes de discos rígidos usam esse método. Na ciência da computação, as pessoas costumam usar potências de dois, então um kibibyte é 8 × 2¹⁰ = 8192 bits.

A diferença só aumenta à medida que os números aumentam. Alguns até misturaram esses dois sistemas para obter bons números para colocar em suas embalagens. É por isso que um disquete de 1,44 MB não possui 1,44 megabytes nem 1,44 mebibytes (eles usam 1024 × 1000).

A lógica por trás do i é que os termos são derivados dos prefixos si originais, kilo, mega, giga, mas com a palavra binário inserida. Portanto, o i é a segunda letra do binário . O mnemônico para o kibibyte é "kilo binário byte" e "KiB" é pronunciado "Kibibyte".

Tudo isso é definido no padrão IEC_80000 .

Observe que um mebibyte não é definido como 2²⁰, mas como (2 10 ) 2 , embora sejam iguais. Um gibibyte é (2 10 ) 3 , um tebibyte é (2 10 ) 4 e assim por diante.

Prefix       Bytes                      Prefix       Bytes
1 Byte     = (2^10)^0 = 1               1 Byte     = (10^3)^0 = 1
1 Kibibyte = (2^10)^1 = 1024            1 Kilobyte = (10^3)^1 = 1000
1 Mebibyte = (2^10)^2 = 1048576         1 Megabyte = (10^3)^2 = 1000000
1 Gibibyte = (2^10)^3 = 1073741824      1 Gigabyte = (10^3)^3 = 1000000000
1 Tebibyte = (2^10)^4 = 1099511627776   1 Terabyte = (10^3)^4 = 1000000000000

Lembre-se de que, com muita frequência, o termo kilobyte é usado quando o autor significa kibibyte. A unidade binária foi introduzida apenas por volta de 1999, como Randy Orrison aponta.


Como o nealmcb descobriu nos comentários, existe uma política oficial sobre isso:
https://wiki.ubuntu.com/UnitsPolicy

Em resumo, esta política lembra aos desenvolvedores que usam prefixos SI ou IEC, mas nunca os misturam. Continua dizendo:

Para tamanhos de arquivo, existem duas possibilidades:

  • Mostre ambos, base 10 e base 2 (nesta ordem). Um exemplo é o kernel do Linux: "2930277168 setores de hardware de 512 bytes: (1,50 TB / 1,36 TiB)"
  • Mostre apenas a base 10 ou dê ao usuário a oportunidade de decidir entre a base 10 e a base 2 (o padrão deve ser a base 10).
Stefano Palazzo
fonte
8
Veja também wiki.ubuntu.com/UnitsPolicy
nealmcb
5
O prazer é meu. Passei muito tempo nisso e nos bugs relacionados. Obrigado por um ótimo artigo aqui!
Nealmcb
1
Em vez de "Lembre-se de que, muitas vezes, o termo kilobyte é usado quando o autor significa kibibyte", eu diria "Lembre-se de que o termo kibibyte foi introduzido apenas em 1999 e, antes disso, kilobyte se referia a 1024 bytes. software e programadores com mais de 12 anos ainda usarão a forma original ". Fora isso, uma excelente redação. (Data a partir de um olhar muito rápido na wikipedia, eu poderia estar fora de um bocado ou dois.)
Randy Orrison
@RandyOrrison Isso é um mito. "kilo-" tem sido usado com ambas as definições em computação desde os anos 50. en.wikipedia.org/wiki/Timeline_of_binary_prefixes
endolith
Para os curiosos, um disquete de 1,44 "MB" tem 1,47 MB ​​ou 1,41 MiB.
Wjandrea
12

MiB de quê? Em particular o "i"?

Como ninguém respondeu: "MiB" significa " m egab i nary b yte", que pode ser abreviado para " m eb ib yte" (embora isso pareça meio estúpido, e eu prefiro continuar dizendo " megabinário "). Veja a explicação do NIST.

Então o "i" vem da palavra "binário".

Havia outras propostas para abreviar essas unidades no passado, mas todas falharam em ganhar força:

  • κ = 1024, κ2 = 1024², κ3 = 1024³, ... (letra grega kappa, difícil de digitar)
  • KKB = 1024, MMB = 1024², GGB = 1024³, ... (pode ser mal interpretado como megamegabyte = TB)
  • bK = 1024, bK² = 1024², bK³ = 1024³, ... (quando proposto, muitos computadores nem sequer tinham letras minúsculas)
  • 1B10 = 1024, 1B20 = 1024², 1B30 = 1024³, ...
  • k₂B = 1024, M₂B = 1024², G₂B = 1024³, ...
endólito
fonte
4

Eles são prefixos binários , correspondentes aos prefixos decimais mais comuns. (Esse é um bom artigo que explica bem a lógica.)

TRiG
fonte