Qual é a diferença entre um kilobyte e um kibibyte?


resposta 1:

Essa confusão vem da nomeação do Windows. Mas vamos voltar a isso mais tarde.

 

Um kilobyte usa o prefixo kilo-S.I., o que significa 1000 vezes mais. Ou seja, 1 KB é de 1000 bytes. Um kibibyte usa o prefixo kibi-, que não tenho certeza se é S.I. ou não. kibi- significa 1024 vezes algo, então 1 KiB é 1024 bytes.

 

O Windows nomeia o kibibyte como kilobyte para impedir que o usuário lide com o prefixo kibi-. Mas por que eles escolheram essa escala em vez de fazer as coisas da maneira Linux, eu certamente não sei! Quero dizer, meu HD de 320 GB (número comercial) é de 298 GB (na verdade, GiB) no Windows e 319. algo no Linux. Quero dizer, o que está errado com a Microsoft ?!


resposta 2:

Resposta curta: "kibi-" significa 1024 o tempo todo. "Kilo-" significa "1000" na maioria das vezes, mas existe o potencial de confusão quando você chega à interseção de armazenamento / rede / e memória principal, quando "kilo-" às vezes significa "1024" e isso em grande parte devido ao uso histórico do idioma. A RAM é normalmente descrita com o uso binário: um "kilobyte de RAM" é 1024 B, mas um kilobyte de HD geralmente é 1000 B, mas alguns SOs (mais?) Usam o uso binário quando se referem a coisas como tamanhos de arquivo e livre espaço.

Historically,thecomputerscientistsbuildinghardwareandmemoryfounditeasiestandmostconvenienttocountthingsinbinarysincetheywereactuallyusingbinaryatalowlevel.Since210=1024isprettycloseto[math]103[/math],thefolkscreatingthehardware/memoryaddressingadoptedthekiloprefixtomean1024bytesandmegatobe[math]220[/math]=1,048,576isstillprettycloseto[math]103[/math].Historically, the computer scientists building hardware and memory found it easiest and most convenient to count things in binary since they were actually using binary at a low level. Since 2^{10} =1024 is pretty close to [math]10^{3}[/math], the folks creating the hardware/memory addressing adopted the “kilo-” prefix to mean 1024 bytes and “mega” to be [math]2^{20}[/math] =1,048,576 is still pretty close to [math]10^{3}[/math].

Outros cientistas da computação que trabalham em outras seções do campo (por exemplo, rede e armazenamento) usaram amplamente a definição original de SI, onde "quilo-" significava 1.000 e "mega-" significava 1.000.000. Um disco rígido anunciado como "1 GB" armazenava 1.000.000.000 de bytes.

Inthelate1990s,thebinomenclaturewasformallyintroducedbytheInternationalElectrotechnicalCommissiontoprovideawaytogetaroundtheambiguity.Usingkibibyte/KiB,mebibyte/MiB,gibibyte/GiB,etc.wouldunambiguouslyrefertothe210,[math]220[/math],[math]230[/math],etc.TheseprefixesareapartofofficialSIdefinitionsnow,butIdontthinkanyoneusesthebinaryprefixesoutsideofcomputerrelatedcontexts(Mycaruses38Lper100kibimetersjusthasprobablyneverbeensaid.)In the late 1990’s, the “-bi-” nomenclature was formally introduced by the International Electrotechnical Commission to provide a way to get around the ambiguity. Using kibibyte/KiB, mebibyte/MiB, gibibyte/GiB, etc. would unambiguously refer to the 2^{10}, [math]2^{20}[/math] ,[math]2^{30}[/math], etc. These prefixes are a part of official SI definitions now, but I don’t think anyone uses the binary prefixes outside of computer-related contexts (“My car uses 38 L per 100 kibimeters” just has probably never been said.)

Problemas adicionais surgem quando a rede entra em discussão. Tradicionalmente, as pessoas usam a base 10 ao falar sobre "bits" ("b") em vez de "bytes" ("B") que você vê na maioria dos outros domínios. Além disso, a maioria dos protocolos de rede, incluindo preenchimento (bits de inicialização e parada) e códigos de correção / detecção de erros (por exemplo, bits de paridade). Ou seja, para transferir um único byte (8 bits) de dados, os dados enviados ao longo do fio podem ter 11 bits ou mais. Então, p. uma conexão de rede de 1 Gb / s pode enviar 1.000.000.000 de bits ao longo da conexão a cada segundo, mas isso não resulta em 125.000.000 GB / s de transferência de dados efetiva, mesmo em circunstâncias ideais.

Whenthemarketingpeoplegetinvolved,itgetsconfusingtoo.Thebase10unitssoundbetterthanthebinaryunits.Ievenrememberseeingadvertisementsinthe1980sand90swheretheycombinedtheunitsinwaysthatwereespeciallyconfusing:e.g.amegabytebeing1,024,000bytes(i.e210103.)Fortunately,thatkindofusagewasrare.When the marketing people get involved, it gets confusing too. The base-10 units sound better than the binary units. I even remember seeing advertisements in the 1980′s and 90’s where they combined the units in ways that were especially confusing: e.g. a “megabyte” being 1,024,000 bytes (i.e 2^{10}*10^{3}.) Fortunately, that kind of usage was rare.

Algumas ferramentas unix permitem escolher os formatos de saída. Por exemplo. citando a página de manual da ferramenta “df” (relatório de uso de espaço em disco do sistema de arquivos):

-h, - tamanhos de impressão legíveis por humanos em formato legível por humanos (por exemplo, 1K 234M 2G) -H, - igualmente, mas usam potências de 1000 e não 1024