เหตุใด Ubuntu จึงไม่วัดขนาดไฟล์เป็นไบต์เมกะไบต์กิกะไบต์ ฯลฯ


13

ฉันอ่านบางที่ Ubuntu จะไม่ใช้หน่วยขนาดไฟล์ที่คุ้นเคยที่เราทุกคนรู้จักอีกต่อไปในขณะนี้ (kB, MB, GB, TB) และเปลี่ยนไปใช้มาตรฐาน IEC ที่แตกต่างกัน (KiB, MiB, GiB, TiB) หากนี่เป็นเรื่องจริงฉันอยากจะรู้ว่าอะไรคือเหตุผลเบื้องหลังการเปลี่ยนแปลงนี้และผลกระทบ (ถ้ามี) การเปลี่ยนแปลงนี้มีโดยเฉพาะอย่างยิ่งกับแอปพลิเคชันแบบหลายแพลตฟอร์มหรือแอปพลิเคชันที่ทำงานด้วยไวน์


3
ไบต์เป็นไบต์ ตัวอย่างที่ไม่ดี
Nathan Osman

2
สำหรับความรู้ของฉันการใช้ KiB, MiB ... ฯลฯ มีอยู่แล้วใน Ubuntu ดังนั้น "Ubuntu จะไม่อีกต่อไป .. " ควรเป็น "Ubuntu จะไม่อีกต่อไป .. "
Weboide

คำตอบ:


60

คำตอบสั้น ๆ คือใช่คำนำหน้าเปลี่ยนไป แต่มันก็ไม่ได้สร้างความแตกต่าง

เหตุผล

มีความสับสนอยู่เสมอเนื่องจากมีการใช้หน่วยทศนิยมเช่น KB, MB, GB กับข้อมูลไบนารี - KB หมายถึง 1024 ไบต์ไม่ใช่ 1,000 ไบต์ตามที่คาดไว้ และแน่นอนว่าคนจำนวนมากทั่วโลกใช้คำนำหน้าทศนิยมจริงในชีวิตประจำวันของพวกเขาภายใต้ระบบเมตริก

วิศวกรเครือข่ายและเป็นเวลานานผู้ใช้คอมพิวเตอร์ของหลักสูตรได้รับการฝึกฝนที่จะเข้าใจความแตกต่าง แต่ความสับสนอย่างต่อเนื่องการใช้งานที่มีความหมายเป็นที่ไม่สอดคล้องกันในการใช้งานของพวกเขา แอปพลิเคชันหนึ่งอาจใช้ MB เพื่อหมายถึง 1,000,000 ไบต์ (ใช้ส่วนนำหน้าทศนิยม) ในขณะที่อีกแอปพลิเคชันอาจหมายถึง 1,048,576 ไบต์ (โดยใช้การตีความไบนารี)

นี้นำไปสู่การนำ Ubuntu ในที่สุดใหม่นโยบายหน่วย

ส่งผลกระทบ

ผลกระทบเป็นเพียงปัญหาการแสดงผลจริงๆ ขนาดไฟล์และแบนด์วิดท์เครือข่ายจะแสดงโดยใช้คำนำหน้าทศนิยมดังนั้นไฟล์ 5kB จะมีขนาด 5000 ไบต์ นี่เป็นสิ่งที่สอดคล้องกับสิ่งที่คนส่วนใหญ่คาดหวัง

การใช้หน่วยความจำและยูทิลิตี้ระดับต่ำจะแสดงขนาดโดยใช้คำนำหน้าไบนารี (KiB, MiB, GiB, TiB) สิ่งนี้อาจทำให้เกิดความสับสนในเบื้องต้น แต่ดีกว่าสถานะเดิมที่เรามีคำนำหน้าหนึ่งหมายถึงสองสิ่งที่แตกต่างกัน

เนื่องจาก Windows ยังคงใช้ระบบ ad-hoc แบบเก่าแอปพลิเคชัน Wine อาจแสดงขนาดไฟล์ที่แตกต่างกันเล็กน้อยสำหรับไฟล์เดียวกัน อย่างไรก็ตามอย่างน้อยฉันก็มักจะเห็นขนาดต่าง ๆ ที่แสดงอยู่แล้วเนื่องจากวิธีการปัดเศษดังนั้นฉันจึงไม่มั่นใจว่าเป็นปัญหาสำคัญ

ดูสิ่งนี้ด้วย:


2
ฮะ. ทำไมไม่ใช้นโยบายเพียงแค่ใช้ 1MB เพื่อหมายถึง 1024 ในทุกกรณี? หากผู้คนซื้อไดรฟ์ "2GB" (ซึ่งจริงๆแล้วเป็นไดรฟ์ 2GiB) จากนั้นเปิดใน Ubuntu มันจะรายงานว่าเป็น 2.2GB หรือมากกว่านั้น มันเป็นความเข้าใจของฉันว่าการใช้ MB หมายถึง 1,000 ผิดเสมอเหมือนกันสำหรับ KB, GB ฯลฯ
mlissner

ไดรฟ์ 200GB เป็นการกระทำ 200GB ไม่ใช่ 200GiB
txwikinger

2
@mlissner: จริง ๆ แล้วการใช้ MB หมายถึง 1024 × 1024 ไบต์มักจะผิดเสมอถึงแม้ว่ามันจะใช้งานทั่วไปและนั่นเป็นสาเหตุที่คำนำหน้าใหม่ที่ใช้ไบนารีเป็นมาตรฐาน 11 (!) เมื่อหลายปีก่อน ดังนั้น Ubuntu จึงใช้มาตรฐาน IEC อายุ 11 ปีและมาตรฐาน ISO 2 ปี (ปัจจุบันรู้จักกันในนาม ISO / IEC 80000)
JanC

2
ฉันไม่เคยสับสนตราบใดที่ 1kB คือ 1024 Byte
burli

-1

มันคือ SOOOO ... ง่าย ๆ !!!

ไม่กี่ปีที่ผ่านมามีความสับสนเล็กน้อยเกี่ยวกับเรื่องนี้ เพราะสัญกรณ์

  • 1 KB = 1024 ไบต์
  • 1 MB = 1024 KB

ได้รับการสอนเรียนรู้และใช้งานในทุกมหาวิทยาลัยและเกือบทุกอุตสาหกรรม (ซอฟต์แวร์และฮาร์ดแวร์) ทั่วโลกในช่วงหลายปีที่ผ่านมา

ความคิดที่โง่ในการนับในฐาน 1000 (ไม่ใช่แม้แต่ฐาน 10) เป็นเพียงอาการของความโง่เขลาของยุคสมัยและชีวิตสมัยใหม่ของเรา

สิ่งที่ทำให้สิ่งเลวร้ายยิ่งกว่าเดิมคือความคิดที่โง่กว่าที่จะพยายามสร้าง (และทำต่อไป) สัญกรณ์เก่าแก่สำหรับหน่วย 1,000 ฐานที่ไม่น่าปฏิบัติ นั่นทำให้เกิดความสับสนทั้งหมด หากพวกเขาได้รับรองอนุสัญญาว่า

  • 1 KiB = 1,000 ไบต์
  • 1 MiB = 1,000 ไบต์

จากนั้นจะมีความสับสนน้อยลงและปัญหาจะเล็กลงมาก

พวกเขาควรพยายามสร้างมันขึ้นมา

1KB = 1024 bytes
1MB = 1024 KB

and

1 Ikb or ikb or Kib = 1000 bytes
1 IMb or imb or Mib  = 10^6 bytes

ไม่จำเป็นต้องใช้ยูนิต -1000 อาจเป็นความคิดที่เริ่มต้นในใจหัวแข็งที่กล่าวว่า "โอ้ไม่ถ้ากิโลคือ 1,000 และเมกะ 1,000,000 เราจะใช้กิโลและเมกะในฐาน -1000 สำหรับหน่วยข้อมูล (ฐาน 2!)" ทั้งหมดนั้นเป็นเพียงวันเดียว แต่นั่นก็นานกว่านั้นแล้วบางคนมีความคิดที่โชคร้าย (ไม่เลวร้ายนัก) ถึงเรียกกิโลไบต์ (kb) จำนวน 1024 ไบต์ หากเขาเลือกk2bและm2bแล้วเรียกพวกเขาว่า kitwo bytesและmitwo bytes (หรือkookie bytes , mookie bytesและgookie bytes) ตัวอย่างเช่นความคิดที่หน่วงทั้งหมดของการใช้ฐาน -1000 สำหรับแอปพลิเคชันทั้งหมดและระบบปฏิบัติการทั้งหมดและกำหนดให้เป็นวิธีปกติของการพูดคุยเกี่ยวกับมาตรการใน HW และ SW ไปยัง peolpe ซึ่งจะไม่เกิดขึ้น ทำให้สิ่งเลวร้ายลงมาก


3
ที่จริงแล้วเราทำให้มันเป็นตรรกะมากขึ้น ดูตัวอย่างเช่นเราใช้กม.เมื่อเราหมายถึง 1,000 เมตร ทำไมถึงแตกต่างกัน? เหตุผลสำหรับ k = 1024 คือประสิทธิภาพและความเรียบง่าย มันเร็วมากที่จะเปลี่ยนบิตเหล่านั้นแทนที่จะทำดิวิชั่นจริง แต่วันนี้โดยได้รับหมายเลขใหญ่และขนาดใหญ่ความแตกต่างระหว่าง1024 ^ nและ1000 ^ n ในขณะที่ไม่เป็นปัญหาเพราะพวกเขาเหมือนกันเกือบจะเริ่มสับสน
Georg Schölly

1
ได้รับการสอนเรียนรู้และใช้งานในทุกมหาวิทยาลัยและเกือบทุกอุตสาหกรรม (ซอฟต์แวร์และฮาร์ดแวร์) ทั่วโลกในช่วงหลายปีที่ผ่านมา ไม่มันไม่ใช่ นี่คือตำนานที่โปรแกรมเมอร์เขียนขึ้นเพื่อพิสูจน์ความเกียจคร้านของพวกเขา "megabyte" หมายถึง "1,000,000 bytes" ในปี 1960 และ "kilobyte" หมายถึง "1000 bytes" Microsoft เป็นส่วนใหญ่ที่จะตำหนิสำหรับหน่วย 1024 และไร้สาระที่ใช้ไม่ได้
endolith

-2

จริง ๆ แล้วมันสับสนว่าเกิดอะไรขึ้นกับการเปลี่ยนแปลงของการกำหนดขนาดย้อนกลับไปในปี 1998 และจะง่ายกว่ามากถ้าพวกเขาเพิ่งเพิ่มชุดใหม่ที่มีอำนาจ 10 เป็นการกำหนดใหม่ แต่น่าเศร้าที่พวกเขาไม่ได้ทำเพราะเหตุผลที่ เวลามีศูนย์กลางอยู่ที่การแก้ไขนิรุกติศาสตร์ของคำที่ใช้ "Kilo" ดังนั้นขนาดดั้งเดิมโดยใช้พลังของ 2 (1024) ล้วนได้รับชื่อใหม่และชื่อใหม่และจากนั้นพลังงานใหม่ของ 10 หมายเลขสันนิษฐานว่าเป็นฉลากดั้งเดิมของปีพ. ศ. 2541 ชื่อ

ดังนั้นความสับสนเริ่มต้น:

ก่อนปี 1998 Kilobyte หมายถึง 1024 ไบต์และถูกกำหนดเป็น K หรือ KB

หลังจากปี 1998 เป็นต้นมา พ.ศ. 2541 Kilobyte ดั้งเดิมได้ถูกเปลี่ยนชื่อเป็น Kibibyte และได้รับการแต่งตั้งใหม่ K หรือ KiB และโพสต์ใหม่ล่าสุด 1998 Kilobyte ถูกสร้างขึ้นที่ 1,000 ไบต์และมีการกำหนดชวเลข KB เพื่อให้วันนี้เรามีดังต่อไปนี้:

1 KB = 1,000 ไบต์ (KB ไม่สามารถย่อให้สั้นได้ K) 1 KiB = 1,000 ไบต์ (KiB อาจย่อให้ K)

รายละเอียดทั้งหมดได้รับการแก้ไขเพื่อให้ KB เป็นชวเลขอย่างเป็นทางการที่อ้างถึง Kilobyte ปัจจุบัน (1,000) ในขณะที่ K และ KiB อย่างเป็นทางการเป็นชวเลขอย่างเป็นทางการสำหรับ Kibibyte (1024)

มันได้รับความสับสนโดยเฉพาะอย่างยิ่งเพราะพวกเราส่วนใหญ่ที่อยู่รอบ ๆ วันก่อนปี 1998 ก่อนที่จะโตขึ้นเรียกว่ากิโลไบต์เป็น 1024 ไบต์และเขียนเป็น KB หรือ K เป็นการกำหนดชวเลข แต่วันนี้มันผิดและเราทุกคนกำลังทำสิ่งนี้ ถึง "Kibibytes" เมื่อเราพูดว่า "Kilobytes" และมักจะใช้การกำหนดที่ผิดต่อมาตรฐานโลกที่ไม่มีการใช้งานอย่างเป็นทางการที่กำหนดโดย IEC ย้อนกลับไปในปี 1998 ซึ่งสร้างความสับสนเล็กน้อย แต่จะไม่เลวร้ายยกเว้นตอนนี้แม้แต่ 18 ปีต่อมา คนที่ยังไม่ทราบว่า K และ KB นั้นไม่เหมือนกันและแตกต่างกันโดยสิ้นเชิง

จริงๆแล้วมันมีความแตกต่างระหว่าง "K" (1024) และ "KB" (1,000)!

นี่เป็นเหตุผลที่ว่าทำไมฮาร์ดไดรฟ์มักดูเหมือนจะมีพื้นที่น้อยกว่าที่โฆษณาไว้ แต่ผู้ผลิตฮาร์ดไดรฟ์นั้นเป็นคนที่ถูกต้องและใช้มาตรฐานที่เหมาะสมในปัจจุบันเมื่อพวกเขาเขียน "Terabyte" บนบรรจุภัณฑ์เมื่อ คนที่ซื้อไดรฟ์นั้นจริง ๆ แล้วคิดในแง่ของ Tebibytes และคาดว่าจะมีพื้นที่ว่างเช่นนี้

อนึ่งความแตกต่างระหว่าง 2 TB (Terabyte) และ 2 T หรือ 2 TiB (Tebibyte) เป็นขนาดใหญ่มากขนาด 199,023,255,552 ไบต์ที่เล็กกว่าสิ่งที่ 2 T หรือ 2 TiB จะแตกต่างกันเล็กน้อย น้อยกว่า 185 G หรือ GiB (Gibibytes) ซึ่งเป็นสิ่งที่คนส่วนใหญ่คิดอย่างแดกดันบ่อยที่สุดเมื่อพวกเขาพูดว่า "Gigabyte" แม้ว่าจะผิดพลาด

นี่คือหนึ่งในผู้ให้เช่าด้านแปลกที่รู้จักกันดีของ FYI ในโลกคอมพิวเตอร์ที่เป็นเชิงอรรถที่ดีที่จะรู้และอธิบายความแตกต่างแปลก ๆ ที่ผู้คนจำนวนมากในปัจจุบันมักไม่รู้ตัว

หลายคนกำลังคิดและพูดชื่อ "Kilobyte" (1,000) เมื่อจริง ๆ แล้วกำลังคิดถึงหน่วย "Kibibyte" (1024) และทำให้เกิดความสับสนมากขึ้นเมื่อผู้เขียนเขียนชวเลขและสลับกันได้ แต่สิ่งนี้ไม่ถูกต้อง ทำเครื่องหมาย "KB" และไม่ควรเป็น "K" หรือ "KiB" ที่ใดก็ได้ในเอกสารหรือโปรแกรมใด ๆ ที่เพิ่งอธิบายจะหมายถึง Kibibyte (1024)

การกำหนดชวเลข K (1024) และ KB (1,000) ไม่เหมือนกันอีกต่อไปและในกรณีของ Kibibyte อาจใช้ K หรือ KiB ก็ได้ แต่ไม่ใช่ KB

นี่คือสมองของคุณนี่คือสมองของคุณที่ Kibibytes - ทอดหรือยัง

ฮ่า ๆ


"ก่อนปี 1998 Kilobyte หมายถึง 1024 ไบต์และถูกกำหนดเป็น K หรือ KB" นั่นเป็นตำนาน ยกตัวอย่างเช่น Shugart SA 400 จัดขึ้น 109,375 ไบต์และวางตลาดเป็น "109.4 Kbytes" ในปี 1976 CDC 9746 ถือ 60,000,000 bytes และออกวางตลาดเป็น "60 M bytes"ในปี 1974
endolith
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.