Kuo skiriasi kilobaitas ir kibibitas?


Atsakymas 1:

Ši painiava kyla dėl „Windows“ pavadinimų. Tačiau grįžkime prie to vėliau.

 

Kilobaitas naudoja priešdėlį kilo- S.I, kuris kažką reiškia 1000 kartų. Tai yra, 1 KB yra 1000 baitų. Kibibitas naudoja priešdėlį kibi- o aš nesu tikras, ar tai S. I., ar ne. kibi reiškia 1024 kartus ką nors, taigi 1 KiB yra 1024 baitų.

 

„Windows“ kibibitą įvardija kilobaitais, kad vartotojas negalėtų susidoroti su kibi- prefiksu. Bet kodėl jie pasirinko šią skalę, užuot dirbę Linux būdu, aš tikrai nežinau! Aš turiu omenyje, kad mano 320 GB HDD (komercinis numeris) yra 298 GB (faktiškai GiB) „Windows“ ir 319. ką nors „Linux“. Aš turiu galvoje, kad wtf neteisingai veikia „Microsoft“?


Atsakymas 2:

Trumpas atsakymas: „kibi-“ reiškia 1024 visą laiką. „Kilo-“ reiškia „1000“ didžiąją laiko dalį, tačiau yra painiavos galimybė, kai patenkate į saugyklos / tinklo / pagrindinės atminties sankirtą, kai „kilo-“ kartais reiškia „1024“. daugiausia dėl istorinės kalbos vartojimo. Paprastai RAM apibūdinamas naudojant dvejetainį naudojimą: „RAM kilobaitas“ yra 1024 B, bet HD kilobaitas paprastai yra 1000 B, tačiau kai kurios (dauguma?) OS naudoja dvejetainius įpročius, kai kalbama apie tokius failus kaip failo dydis ir nemokama. erdvė.

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

Kiti kompiuterių žinovai, dirbantys kitose srities dalyse (pvz., Tinklų kūrimas ir saugojimas), daugiausia taikė pirminį SI apibrėžimą, kuriame „kilo-“ reiškė 1000, o „mega-“ reiškė 1 000 000. Standžiojo disko, kuris buvo reklamuojamas kaip „1 GB“, atmintyje buvo 1 000 000 000 baitų.

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

Papildomos problemos kyla, kai diskusija užmezga tinklą. Paprastai žmonės naudoja bazinį 10, kai kalbame apie „bitus“ („b“), o ne „baitus“ („B“), kuriuos matote daugelyje kitų sričių. Be to, dauguma tinklo protokolų, įskaitant užpildymą (pradžios ir pabaigos bitus) ir klaidų taisymo / aptikimo kodus (pvz., Pariteto bitus). T. y. Norint perduoti vieną duomenų baitą (8 bitus), per laidą siunčiami duomenys gali būti 11 ar daugiau bitų. Taigi, pvz. 1 Gb / s tinklo ryšys gali per sekundę perduoti 1 000 000 000 bitų, bet tai ne visada tampa efektyviu 125 000 000 GB / s duomenų perdavimu net ir optimaliomis aplinkybėmis.

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.

Kai kurie „Unix“ įrankiai leidžia pasirinkti išvesties formatus. E. g. cituojant įrankio „df“ (ataskaitos apie failų sistemos diske naudojamą vietą) žmogaus puslapį:

-h, --žmogaus skaitomo atspaudo dydžiai žmonėms suprantama forma (pvz., 1K 234M 2G) -H, - panašiai, bet naudokite 1000 galių, o ne 1024