מה ההבדל בין קילובייט לקיביביט?


תשובה 1:

הבלבול הזה נובע מהשמות של חלונות. אבל נחזור לזה אחר כך.

 

קילובייט משתמש בקידומת ה- S.I. שמשמעותה 1000 פעמים משהו. כלומר 1 KB הוא 1000 בתים. קביבייט משתמש בקידומת kibi- שאני לא בטוח אם זה S.I. או לא. פירושו של קביבי- 1024 פעמים משהו, כך ש- KiB הוא 1024 בתים.

 

חלונות מכנה את הקיביביט לקילובייט כדי למנוע מההתמודדות של המשתמש עם קידומת הקיבי. אבל מדוע הם בחרו בקנה מידה זה במקום לעשות דברים בדרך של לינוקס, אני בהחלט לא יודע! זאת אומרת, HDD של 320 ג'יגה-בייט (המספר המסחרי) הוא 298 ג'יגה-בייט (למעשה GiB) ב- Windows ו- 319. משהו בלינוקס. כלומר, wtf לא בסדר עם מיקרוסופט ?!


תשובה 2:

תשובה קצרה: "קביבי" פירושו 1024 כל הזמן. "קילוגרם" פירושו "1000" הרבה מהזמן, אך יש פוטנציאל לבלבול כשמגיעים לצומת האחסון / הרשתות / והזיכרון הראשי, כאשר "קילוגרם" אמור לפעמים להיות "1024" וזה זה נובע בעיקר משימוש היסטורי בשפה. זיכרון RAM מתואר בדרך כלל בשימוש הבינארי: "קילובייט של זיכרון RAM" הוא 1024 B, אך קילובייט של HD הוא בדרך כלל 1000 B, אך חלקם (רוב?) מערכת ההפעלה משתמשת בשימושים הבינאריים כאשר הם מתייחסים לדברים כמו גדלי קבצים וחינם שטח.

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

מדעני מחשבים אחרים שעבדו באזורים אחרים בתחום (למשל רשתות ואחסון) השתמשו במידה רבה בהגדרת ה- SI המקורית שבה משמעותם "קילוגרם" 1,000 ו- "מגה" - 1,000,000. דיסק קשיח שפורסם בתור "1 ג'יגה-בתים" איחסן 1,000,000,000 בתים.

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

סוגיות נוספות מתעוררות כאשר הרשת נכנסת לדיון. באופן מסורתי אנשים משתמשים ב- base-10 כשמדברים על "ביטים" ("b") ולא על "בתים" ("B") שאתה רואה ברוב התחומים האחרים. כמו כן, רוב פרוטוקולי הרשת כוללים ריפוד (ביטי התחלה ועצירה) וקודי תיקון / איתור שגיאות (למשל, ביטים זוגיים). כלומר להעברת בייט בודד (8 סיביות) של נתונים, הנתונים שנשלחים לאורך החוט עשויים להיות 11 סיביות ומעלה. כך למשל חיבור רשת של 1 ג'יגה-בתים עשוי לשלוח 1,000,000,000 ביטים לאורך החוט בכל שנייה, אך זה לא הופך בצורה נקייה ל -125,000,000 GB / s להעברת נתונים אפקטיבית גם בנסיבות מיטביות.

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.

כמה כלים יוניקס מאפשרים לך לבחור את פורמטי הפלט. למשל ציטוט דף האיש עבור הכלי "df" (שימוש בדיווח שטח דיסק מערכת קבצים):

-ה, - גדלי ההדפס הניתנים לקריאה אנושית בפורמט קריא אנושי (למשל, 1K 234M 2G) -H, - די מדויק, אך השתמש בכוחות של 1000 ולא 1024