Durante anos nós aprendemos e ensinamos que as unidades de medida de informação eram o bit, o byte e seus múltiplos (tais como Kilobyte, Megabyte etc). Embora errado por padrão, funcionava quase bem. Derrepente as coisas mudaram mas esqueceram de nos avisar.
Em 2008 a união entre duas regras, a ISO 31 [1] e a IEC 60027[2] resultou na norma ISO/IEC 80000 [3], contendo 14 partes tratando do assunto “Quantidades e unidades” e das quais a parte 13 nos interessa por tratar especificamente sobre unidades de informação e tecnologia.
Diversas unidades e um problema
Tudo começou na década de 50 com os primeiros computadores da IBM em que alguns trabalhavam com múltiplos de 10 e outros múltiplos de 2.
Um texto muito bem escrito na Wikipédia e entitulado Timeline of Binary prefixes [4] (Linha de tempo dos prefixos binários), apresenta um histórico do assunto que se inicia na primeira metade da década de 40 chegando até os dias atuais.
Nele, encontramos um resumo de todo o histórico que nos fez chegar ao problema atual apresentando muitas referências bibliográficas sobre o assunto.
Outro texto muito bem fundamentado e explicado sobre o problema da sutil diferença de 1000 para 1024 é o Binary prefix [5] onde encontramos a lembrança que tal erro acabou se tornando um padrão em 1986. O padrão ANSI/IEEE 1084-1986.
Esta padronização definia o uso duplo de kilo, mega etc para representar tanto potências de 10, quanto potências de 2 e se não bastasse, posteriormente vieram outras normativas ratificando e estendendo esta definição, tal como o ANSI/IEEE 1212-1991 e o IEEE 610.10-1994.
Mesmo naquela época em que tudo parecia indo bem, certamente, já havia críticas sobre esta forma de uso. Afinal de contas tais múltiplos provenientes do Sistema Internacional de Medidas (SI) [6] indicam a multiplicação/divisão por potências de 10. Tais como na tabela abaixo:
Fator | Nome | Símbolo |
---|---|---|
10³ | Kilo | K |
10⁶ | Mega | M |
10⁹ | Giga | G |
10¹² | Tera | T |
10¹⁵ | Peta | P |
10¹⁸ | Exa | E |
10²¹ | Zetta | Z |
10²⁴ | Yotta | Y |
Entretanto nós aprendemos lá naqueles velhos tempos de cursinho de introdução a informática que as informações são tratadas como potências de 2 e desta forma a nossa tabela, diferentemente da tabela do padrão SI, seria assim:
Fator | Nome | Símbolo |
---|---|---|
2¹⁰ | Kilobyte | K |
2²⁰ | Megabyte | M |
2³⁰ | Gigabyte | G |
2⁴⁰ | Terabyte | T |
2⁵⁰ | Petabyte | P |
2⁶⁰ | Exabyte | E |
2⁷⁰ | Zettabyte | Z |
2⁸⁰ | Yottabyte | Y |
Ainda que a diferença pareça mínima e irrelevante, é preciso muito exercício mental e muita falta de conhecimento matemático para afirmar que 1000 = 1024, ou que 1.000.000 = 1.048.576 e por ai vai.
Mas é exatamente isso que fazemos quando usamos Kilo para se referir a 1024 bytes, ou Mega para se referir a 1.048.576 bytes.
Seria como se a unidade de medida Metro representasse duas distâncias distintas entre si, onde uma tivesse de 2% a 20% de diferença em relação a outra.
O problema foi instaurado e todo mundo aceitou
Imagine você comprar um novo apartamento de 80m² e ao chegar para conferir com a sua trena, régua, palitinho ou seja lá qual for o instrumento, constatar que ele não passa de 64m².
É exatamente isto que acontece quando compramos um novíssimo HD de 500GB. Ao colocarmos no computador, o BIOS o detecta como um dispositivo como possuindo bem menos do que isto.
Por que? Porque os engenheiros de hardware aprenderam lá no seu curso de engenharia que quando se referirem à “Gigaqualquercoisa”, eles deveriam estar falando de Qualquercoisa * 10⁹, ou Qualquercoisa com 9 zeros no final.
Então chegamos em casa, ligamos no computador, que considera que Giga tem que se referir a Qualquercoisa * 2³⁰ e pronto, logo achamos que fomos roubados. E fomos, mas a culpa não é do vendedor mas da confusão que se instaurou com relação ao uso errado das unidades de medida!
A diferença neste caso, conforme tabela publicada por Simpson[7] é de aproximadamente 7.4% entre o Giga do SI e o Giga dos sistemas de informação.
Isto significa que quem compra um HD de 500 Gigabytes (SI) está levando na verdade um HD com 463 * 2³⁰ bytes, esta diferença (47 GB) seria o corresponde a um HD da década passada em que seu tamanho era suficiente para fazer a alegria aos seus possuidores.
Só para efeito comparativo, do quanto este problema tende a se tornar mais grave eu estendi a tabela de Simpson, que originalmente vai até Exabyte, levando-a até o Yotabyte.
Unidade | SI | IEC | Diferença | Percentual de erro |
---|---|---|---|---|
Kilo | 1000 | 1024 | 24 | 2,40% |
Mega | 1000000 | 1048576 | 48576 | 4,86% |
Giga | 1000000000 | 1073741824 | 73741824 | 7,37% |
Tera | 1000000000000 | 1099511627776 | 99511627776 | 9,95% |
Peta | 1000000000000000 | 1,13E+015 | 125899906842624 | 12,59% |
Exa | 1,00E+018 | 1,15E+018 | 1,53E+017 | 15,29% |
Zeta | 1,00E+021 | 1,18E+021 | 1,81E+020 | 18,06% |
Yota | 1,00E+024 | 1,21E+024 | 2,09E+023 | 20,89% |
Perceba que quando chegarmos neste nível (e acredito que não deve demorar muito tempo – lembre-se que já falamos em “Tera” para discos domésticos) teremos perda de mais de 20% de espaço, se nada for feito.
A solução do IEC
Os anos se passaram, muita discussão houve em relação a isto e algumas normas foram criadas, mas não foram muito divulgadas, o que resultou no seu “meio-fracasso” já que ninguém sabe o que está comprando ou vendendo.
Em Novembro de 2000 o International Electrotechnical Commission (IEC – http://www.iec.ch) publicou a norma IEC 60027-2 que tenta acabar com esta confusão criando novas unidades, múltiplos e símbolos[8].
Tal norma instituiu a unidade de medida binária, que é exatamente o que nós vinhamos usando ao longo das décadas passadas, mais com o termo “binário”, como nome do meio e que pra facilitar foi mesclado ao prefixo do múltiplo.
A tabela abaixo apresenta todos eles, para ficar mais claro.
Fator | Nome | Símbolo |
---|---|---|
2¹⁰ | Kibibyte | KiB |
2²⁰ | Mebibyte | MiB |
2³⁰ | Gibibyte | GiB |
2⁴⁰ | Tebibyte | TiB |
2⁵⁰ | Pebibyte | PiB |
2⁶⁰ | Exbibyte | EiB |
2⁷⁰ | Zebibyte | ZiB |
2⁸⁰ | Yobibyte | YiB |
Ou seja, se lembra do meu HD de 500GB que na verdade tinha 463GB? O certo é dizer que meu HD de 500GB (Gigabytes) possui uma capacidade real de 463GiB (Gibibytes).
De forma que Giga e binary se fundiram formando o prefixo “Gibi” e da mesma forma com os demais.
Perceba a sutileza na representação simbólica adicionando um “i” minúsculo entre o múltiplo e a unidade e também o prefixo “bi” logo após as primeiras do múltiplo.
Sendo assim, o que antes era erroneamente chamado de Kilobyte, desde novembro de 2000 deveríamos saber que o certo era dizer Kibibyte e da mesma forma com os demais múltiplos (vide comparativo abaixo.
Antes | A partir de Nov. 2000 |
---|---|
Kilobyte (KB) | Kibibyte (KiB) |
Megabyte (MB) | Mebibyte (MiB) |
Gigabyte (GB) | Gibibyte (GiB) |
Terabyte (TB) | Tebibyte (TiB) |
Petabyte (PB) | Pebibyte (PiB) |
Exabyte (EB) | Exbibyte (EiB) |
Zetabyte (ZB) | Zebibyte (ZiB) |
Yotabyte (YB) | Yobibyte (YiB) |
Por mais estranho que isso possa soar aos nossos ouvidos, só quando esta normatização pegar pra valer é que não seremos mais enrolados.
Até lá, e mesmo depois, ouviremos muitas piadas e trocadilhos com Kibi, Gibi e o que mais a rica e estupida imaginação humana criar.
Agora todo mundo junto
Dois grandes comitês normatizadores da nossa atualidade, o International Organization for Standardization (ISO) e o International Electrotechnical Commission (IEC) decidiram por fundir as suas normas ISO 31 e IEC 60027-2.
Assim, foi criada a norma única ISO/IEC 80000 [3], onde especificamente a parte 13 desta norma final é a que nos interessa, poi ela trata exatamente da questão da unidades de medida para ciência da informação e tecnologia.
Agora todo mundo fala a mesma língua (pelo menos dentro dos comitês). Só falta divulgação para que o assunto es espalhe passe a ser adotado como padrão de fato.
Ao infinito e além
A história não se resume a isto e há muito a ser discutido a respeito do assunto, mas a verdade é que já existem normativas para arrumar a bagunça que foi feita ao longo dos anos, só cabe agora a divulgação e o uso por nossa parte que somos usuários diários destas unidades.
Segundo o Timeline publicado em [4], já existem diversos sistemas e aplicativos usando a nova unidade de medida, mas se elas forem simplesmente usadas sem divulgação muita gente ainda continuará usando os símbolos errados por muitos anos e causando ainda mais bagunça.
Referências
[1] Wikipedia. ISO 31. Disponível em <http://en.wikipedia.org/wiki/ISO_31>. Acessado em 08-05-2010.
[2] Wikipedia. IEC 60027. Disponível em <http://en.wikipedia.org/wiki/IEC_60027>. Acessado em 08-05-2010.
[3] Wikipédia. ISO/IEC80000. Disponível em <http://en.wikipedia.org/wiki/ISO/IEC_80000>. Acessado em 08-05-2010.
[4] Wikipédia. Timeline of binary prefixes. Disponível em <http://en.wikipedia.org/wiki/Timeline_of_binary_prefixes>. Acessado em 06-05-2010.
[5] Wikipédia. Binary prefix. Disponível em <http://en.wikipedia.org/wiki/Binary_prefix>. Acessado em 09-05-2010.
[6] Wikipédia. International System of Units. Disponível em <http://en.wikipedia.org/wiki/SI>. Acessado em 08-05-2010.
[7] Simpson, Rick. Prefixes for binary multiples. Disponível em <http://cnx.org/content/m13081/latest/>. Acessado em 08-05-2010.
[8] IEC. Prefixes for binary multiples. Disponível em <http://www.iec.ch/zone/si/si_bytes.htm>. Acessado em 08-05-2010.
Ótimo texto mto explicativo.Só encontrei um erro no 4° Parágrafo na ultima linha está escrito dais ao invéz de dias(Erro mto pequeno e insignificante ^^).Parabéns e obrigado pela informação ^^
Salve. Haviam outros pequenos erros de digitação também, mas já foram revisados. Obrigado pelo aviso e por ter gostado do texto. abç.