Hvad er forskellen mellem en kilobyte og en kibibyt?


Svar 1:

Denne forvirring kommer fra Windows 'navngivning. Men lad os vende tilbage til det senere.

 

En kilobyte bruger kilo-S.I.-præfikset, der betyder 1000 gange noget. Det vil sige, 1 KB er 1000 byte. En kibibyte bruger præfikset kibi- som jeg ikke er sikker på, om det er S.I. eller ej. kibi- betyder 1024 gange noget, så 1 KiB er 1024 bytes.

 

Windows navngiver kibibyten som kilobyte for at forhindre brugeren i at klare sig med kibi- præfikset. Men hvorfor de har valgt denne skala i stedet for at lave ting på Linux-måde, ved jeg bestemt ikke! Jeg mener, min 320 GB HDD (kommercielt nummer) er 298 GB (faktisk GiB) på Windows og 319. noget på Linux. Jeg mener, wtf er forkert med Microsoft ?!


Svar 2:

Kort svar: “kibi-” betyder 1024 hele tiden. "Kilo-" betyder "1000" meget af tiden, men der er potentiale for forvirring, når du kommer til krydset mellem lager / netværk / og hovedhukommelse, når "kilo-" undertiden menes at betyde "1024" og dette skyldes stort set historisk sprogbrug. RAM er typisk beskrevet med den binære anvendelse: en "kilobyte RAM" er 1024 B, men en kilobyte HD er typisk 1000 B, men nogle (mest?) Operativsystemer bruger de binære anvendelser, når de refererer til ting som filstørrelser og gratis plads.

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].

Andre computerforskere, der arbejdede i andre dele af feltet (f.eks. Netværk og opbevaring), anvendte stort set den originale SI-definition, hvor ”kilo” betød 1.000 og ”mega-” betød 1.000.000. En harddisk, der blev annonceret som “1 GB”, lagrede 1.000.000.000 byte.

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.)

Yderligere problemer opstår, når netværk kommer ind i diskussionen. Traditionelt bruger folk base-10, når de taler om “bits” (“b”) snarere end “bytes” (“B”), som du ser i de fleste andre domæner. De fleste netværksprotokoller inkluderer polstring (start- og stopbits) og fejlkorrektion / detektionskoder (f.eks. Paritetsbits). Det vil sige, at for at overføre en enkelt byte (8 bit) af data, kan de data, der sendes langs ledningen, være 11 bit eller mere. Så f.eks. en 1 Gb / s netværksforbindelse sender muligvis 1.000.000.000 bit langs ledningen hvert sekund, men det bliver ikke rent omdannet til 125.000.000 GB / s effektiv dataoverførsel, selv under optimale omstændigheder.

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.

Nogle unix-værktøjer giver dig mulighed for at vælge outputformater. F.eks. citerer man-siden til værktøjet “df” (brug af rapportfilsystemets diskplads):

-h, - menneskelige-læsbare udskriftsstørrelser i menneskeligt læsbart format (f.eks. 1K 234M 2G) -H, - silikewise, men brug kræfter på 1000 ikke 1024