موقف من الحياة اليومية#

اشتريت هارد خارجي جديد، ومكتوب على العلبة بخط كبير: 1 TB. وصّلته بكمبيوتر عليه Windows، وفتحت تشوف المساحة… لقيت مكتوب 931 GB بس.

قلت لنفسك: «راحوا فين الـ 69 جيجا؟ هو أنا اتضحك عليا؟»

وفي نفس الأسبوع اشتركت في باقة نت سرعتها 100 ميجا. نزّلت ملف كبير، ولقيت برنامج التحميل مش بيعدّي 12.5 ميجا في الثانية. يعني ثُمن السرعة اللي دافع فلوسها!

الحقيقة إن محدش ضحك عليك في الحالتين. المشكلة كلها في وحدات القياس: نفس الكلمة ممكن يكون ليها معنيين، ونفس الحرف لو اتكتب صغير أو كبير معناه بيتغير. وده اللي هنفهمه في المقال ده.

خلاصة سريعة#

  • شركات الهاردات بتحسب الجيجا بمليار بايت، وWindows بيحسبها بـ 1,073,741,824 بايت. علشان كده نفس الهارد بيبان برقمين مختلفين، لكن المساحة نفسها ما نقصتش ولا بايت.
  • سرعة النت بتتقاس بالبت (Mbps)، وحجم الملفات بالبايت (MB). وكل بايت = 8 بت، فعلشان تعرف سرعة التحميل، اقسم سرعة النت على 8.
  • سرعة المعالج بتتقاس بالجيجاهرتز (GHz)، يعني مليارات الدورات في الثانية. لكن الرقم الأعلى مش دايمًا معناه معالج أسرع.

ببساطة#

تخيل إنك قست طول أوضتك مرة بالمتر ومرة بالقدم. هتطلع رقمين مختلفين، لكن الأوضة هي هي، ما كبرتش ولا صغرت.

نفس الحكاية مع الهارد: الشركة بتقيس بمقياس، وWindows بيقيس بمقياس تاني. والمشكلة إن الاتنين بيكتبوا نفس الاسم «GB»، فتحس إن في حاجة ضاعت.

وفي السرعة، الموضوع أبسط: سرعة النت بتتقاس بالبت، والملفات بتتقاس بالبايت، والبايت فيه 8 بت. فلو قريت الرقمين على إنهم وحدة واحدة، هتلاقي فرق 8 أضعاف.

كل ما الوحدة تكبر، الفرق بين الحساب بالألف والحساب بالـ 1024 بيكبر: من 2.3% في الكيلو لحد حوالي 9% في التيرا.

بالتفصيل#

كيلو وميجا وجيجا وتيرا: معناهم الأصلي#

الكلمات دي مش اختراع الكمبيوتر. دي بادئات من النظام الدولي للوحدات (SI)، زي «كيلو» في الكيلوجرام والكيلومتر. وحسب NIST (المعهد الأمريكي للمعايير)، كل بادئة معناها رقم ثابت:

البادئةالرمزمعناها
كيلوkألف (1,000)
ميجاMمليون (1,000,000)
جيجاGمليار (1,000,000,000)
تيراTألف مليار (1,000,000,000,000)

يعني بالمعنى ده:

  • 1 كيلوبايت (Kilobyte (kB) · الكيلوبايتوحدة لقياس حجم البيانات تساوي 1000 بايت حسب النظام الدولي للوحدات، لأن البادئة «كيلو» تعني ألفًا. ويُكتب رمزها kB، ويشيع كتابته KB.عرض في القاموس) = 1000 Byte · البايتمجموعة من 8 بتات تُعامل كوحدة واحدة، ويمكنها تمثيل 256 قيمة مختلفة من 0 إلى 255.عرض في القاموس.
  • 1 ميجابايت (Megabyte (MB) · الميجابايتوحدة لقياس حجم البيانات تساوي مليون بايت حسب النظام الدولي للوحدات. ويقابلها في النظام الثنائي الميبيبايت (MiB) الذي يساوي 1,048,576 بايت.عرض في القاموس) = مليون بايت.
  • 1 جيجابايت (Gigabyte (GB) · الجيجابايتوحدة لقياس حجم البيانات تساوي مليار بايت حسب النظام الدولي للوحدات. ويقابلها في النظام الثنائي الجيبيبايت (GiB) الذي يساوي 1,073,741,824 بايت.عرض في القاموس) = مليار بايت.
  • 1 تيرابايت (Terabyte (TB) · التيرابايتوحدة لقياس حجم البيانات تساوي ألف مليار بايت (10 أس 12) حسب النظام الدولي للوحدات، وتُستخدم عادةً لقياس سعة الأقراص الصلبة.عرض في القاموس) = ألف مليار بايت.

وكل درجة أكبر من اللي قبلها ألف مرة.

المشكلة: الكمبيوتر بيحب الـ 1024#

فاكر من مقال النظام الثنائي إن الكمبيوتر بيعدّ بالثنائي، وكل خانة قيمتها ضعف اللي قبلها؟ 1، 2، 4، 8، 16… لو كمّلت المضاعفة هتوصل لـ 1024، وده أقرب رقم من الأرقام دي للألف.

علشان كده، من زمان، ناس كتير في عالم الكمبيوتر استخدموا كلمة «كيلو» بمعنى 1024 مش 1000، لأنها أسهل في حسابات الكمبيوتر. وبكده بقى عندنا معنيين لنفس الكلمة، وده سبب اللخبطة كلها.

الحل الرسمي: كيبي وميبي وجيبي#

علشان تتحل المشكلة دي، الهيئة الدولية للمعايير الكهربائية (IEC) وافقت في ديسمبر 1998 على أسماء جديدة للوحدات اللي بتتحسب بالـ 1024، حسب NIST:

الاسمالرمزمعناه
كيبي (kibi)Ki1,024
ميبي (mebi)Mi1,048,576
جيبي (gibi)Gi1,073,741,824
تيبي (tebi)Ti1,099,511,627,776

والفكرة سهلة تفتكرها: خد أول مقطع من الاسم العادي، وزوّد عليه «bi» من كلمة binary (ثنائي). كيلو تبقى كيبي، وجيجا تبقى جيبي. وفي الرمز بيتزوّد حرف i: الكيلوبايت kB، والكيبيبايت (Kibibyte (KiB) · الكيبيبايتوحدة لقياس حجم البيانات تساوي 1024 بايت (2 أس 10)، وضعتها اللجنة الكهروتقنية الدولية (IEC) للتفريق بين الحساب الثنائي والحساب العشري.عرض في القاموس) KiB.

يعني باختصار:

  • 1 kB = 1000 بايت
  • 1 KiB = 1024 بايت

ليه الهارد 1 تيرا بيظهر 931 جيجا؟#

دلوقتي عندنا كل اللي محتاجينه علشان نحل لغز الهارد:

  1. الشركة بتحسب بالعشري. حسب Seagate (من أكبر شركات الهاردات) وحسب Apple، الشركات بتحسب الجيجابايت بمليار بايت. يعني الهارد اللي مكتوب عليه 1 TB فيه: 1,000,000,000,000 بايت.
  2. Windows بيحسب بالثنائي. حسب Seagate، Windows بيحسب «الجيجا» على إنها 1,073,741,824 بايت، يعني جيبيبايت، لكنه بيكتب جنبها GB.
  3. اقسم الرقم الأول على التاني: 1,000,000,000,000 ÷ 1,073,741,824 ≈ 931.3

النتيجة: Windows بيعرض 931 GB، وهي في الحقيقة 931 GiB. نفس عدد البايتات بالظبط، بس متقسومة على رقم أكبر.

ودي أمثلة من Seagate نفسها:

المكتوب على العلبةاللي بيظهر في Windows
500 GB465 GB
1 TB931 GB
5 TB4.54 TB

ولاحظ إن الفرق بيكبر كل ما الحجم يكبر، زي ما شفت في الرسم: في الكيلو الفرق حوالي 2.3%، وفي التيرا بيوصل لحوالي 9%.

الرامات: الاستثناء#

في الرامات الموضوع مختلف. حسب JEDEC، وهي الهيئة اللي بتحط معايير شرايح الذاكرة، لما نتكلم عن سعة شرايح الذاكرة فـ «ميجا» معناها 1,048,576 و«جيجا» معناها 1,073,741,824. يعني الحساب هنا ثنائي حتى لو مكتوب GB.

سرعة المعالج: الهرتز#

جوه المعالج «ساعة» بتدقّ بانتظام، وكل دقّة اسمها دورة (cycle). وسرعة الساعة دي بتتقاس بالهرتز (Hertz (Hz) · الهرتزوحدة قياس التردد في النظام الدولي للوحدات، وتساوي مرة واحدة في الثانية. وتُقاس بها سرعة ساعة المعالج، فالجيجاهرتز (GHz) يساوي مليار دورة في الثانية.عرض في القاموس).

حسب تعريف النظام الدولي للوحدات (NIST)، الهرتز = مرة واحدة في الثانية. وهنا البادئات عشرية دايمًا:

  • 1 ميجاهرتز (MHz) = مليون دورة في الثانية.
  • 1 جيجاهرتز (GHz) = مليار دورة في الثانية.

يعني حسب Intel، المعالج اللي سرعته 3.2 GHz بيعمل 3.2 مليار دورة في الثانية.

سرعة النت: بت مش بايت#

حسب FCC (الجهة الأمريكية المسؤولة عن الاتصالات)، سرعة النت بتتقاس بالميجابت في الثانية (Mbps (Megabits per second) · ميجابت في الثانيةوحدة قياس سرعة الإنترنت الأكثر استخدامًا، وتساوي مليون بت في الثانية. ولأن البايت 8 بتات، فإن 8 ميجابت في الثانية تساوي ميجابايت واحدًا في الثانية.عرض في القاموس)، والسرعات العالية جدًا بالجيجابت في الثانية (Gbps). ووحدة القياس الأساسية هي بت في الثانية (bps (bits per second) · بت في الثانيةوحدة قياس سرعة نقل البيانات، أي عدد البتات التي تنتقل في ثانية واحدة. وتُستخدم معها البادئات العشرية، فالكيلوبت يساوي 1000 بت.عرض في القاموس).

وFCC بتأكد إن البادئات هنا عشرية: الكيلوبت = 1000 Bit (Binary Digit) · البتأصغر وحدة لتخزين المعلومات في الحاسوب، وقيمتها إما 0 أو 1.عرض في القاموس، والميجابت = مليون بت، والجيجابت = 1000 ميجابت.

طيب ليه التحميل بيبان أبطأ؟ لأن برامج التحميل بتعرض السرعة بالبايت (MB/s)، والبايت = 8 بت. يعني علشان تحوّل:

  1. خد سرعة النت بالميجابت: مثلًا 100 Mbps.
  2. اقسمها على 8: 100 ÷ 8 = 12.5
  3. النتيجة: 12.5 ميجابايت في الثانية. وده أقصى حد نظري للتحميل على النت ده.

ومثال عملي: ملف حجمه 1 GB، يعني 1000 MB. على نت 100 Mbps هياخد في أحسن الأحوال: 1000 ÷ 12.5 = 80 ثانية.

السرعة اللي بتوصلك فعليًا بتتأثر بحاجات تانية كتير غير الحساب ده، وده موضوع هنشرحه في مقالات الشبكات.

للمتعمقين

تاريخ المعيار

حسب NIST، الـ IEC وافقت على البادئات الثنائية في ديسمبر 1998 كتعديل للمعيار IEC 60027-2، واتضمّنت في الإصدار التاني من المعيار ده سنة 2000. والنهارده البادئات دي موجودة في المعيار IEC 80000-13، وآخر إصدار منه هو إصدار 2025، اللي حلّ محل إصدار 2008 وضاف بادئات ثنائية جديدة.

ومهم تعرف إن NIST بتوضح إن البادئات الثنائية مش جزء من النظام الدولي للوحدات (SI)، والبادئات بتاعته زي كيلو وميجا معناها دايمًا قوى العشرة.

JEDEC والقرص المرن 1.44 MB

حتى JEDEC، اللي بتستخدم «جيجا» بمعنى ثنائي في الذاكرة، بتقول إن التعريفات دي موجودة بس علشان تعكس الاستخدام المنتشر، وبتنقل عن معيار IEEE/ASTM SI 10-1997 إن الاستخدام ده «بيسبب لخبطة وغير مستحب».

وبتذكر JEDEC مثال طريف: القرص المرن الشهير «1.44 MB» كان «الميجابايت» فيه = 1,024,000 بايت، يعني لا عشري ولا ثنائي، خليط من الاتنين!

بادئات أكبر

حسب NIST، في سنة 2022 اتضافت بادئات جديدة للنظام الدولي: رونا (R) ومعناها 10 أس 27، وكوِتا (Q) ومعناها 10 أس 30.

جرّب الفرق بنفسك على Linux

لو عندك Linux، تقدر تشوف الفرق بعينك. الأمر ده بيعمل ملف تجريبي اسمه test.bin حجمه مليار بايت بالظبط، ومحتواه أصفار:

نافذة الطرفية
truncate -s 1000000000 test.bin

اعرض حجمه بالنظام الثنائي:

نافذة الطرفية
ls -lh test.bin
الناتج المتوقع
-rw-r--r--. 1 user user 954M Oct  4 19:47 test.bin

واعرضه بالنظام العشري:

نافذة الطرفية
ls -l --si test.bin
الناتج المتوقع
-rw-r--r--. 1 user user 1.0G Oct  4 19:47 test.bin

نفس الملف: 954M بالثنائي، و1.0G بالعشري. وده متطابق مع توثيق GNU، اللي بيقول إن الخيار -h بيحسب بقوى الـ 1024، والخيار --si بيحسب بقوى الـ 1000. (اسم المستخدم والتاريخ هيختلفوا عندك.)

وبعد ما تخلّص، امسح الملف التجريبي:

نافذة الطرفية
rm test.bin

جرّبنا الأوامر دي فعليًا على Fedora Linux، بإصدار GNU Coreutils 9.10.

أخطاء شائعة#

  • «الهارد اللي اشتريته ناقص أو مضروب»: غلط. المساحة كاملة، لكن Windows بيقسمها على 1024 بدل 1000، فالرقم بيبان أصغر.
  • «نت 100 ميجا يعني أحمّل 100 ميجابايت في الثانية»: غلط. الـ 100 دي ميجابت، والحد الأقصى للتحميل 12.5 ميجابايت في الثانية.
  • «Mb وMB نفس الحاجة»: غلط. b صغيرة = بت، وB كبيرة = بايت، والفرق 8 أضعاف.
  • «KiB ده غلط مطبعي، قصدهم KB»: غلط. KiB وحدة رسمية معناها 1024 بايت.
  • «معالج 4 GHz أسرع أكيد من معالج 3 GHz»: مش شرط. المقارنة بالجيجاهرتز بتنفع بين معالجات من نفس الشركة ونفس الجيل بس.

المصطلحات#

  • الكيلوبايت (Kilobyte (kB) · الكيلوبايتوحدة لقياس حجم البيانات تساوي 1000 بايت حسب النظام الدولي للوحدات، لأن البادئة «كيلو» تعني ألفًا. ويُكتب رمزها kB، ويشيع كتابته KB.عرض في القاموس): وحدة تساوي 1000 بايت حسب النظام الدولي للوحدات.
  • الكيبيبايت (Kibibyte (KiB) · الكيبيبايتوحدة لقياس حجم البيانات تساوي 1024 بايت (2 أس 10)، وضعتها اللجنة الكهروتقنية الدولية (IEC) للتفريق بين الحساب الثنائي والحساب العشري.عرض في القاموس): وحدة تساوي 1024 بايت، وضعتها IEC للتفريق بين الحساب الثنائي والعشري.
  • الميجابايت (Megabyte (MB) · الميجابايتوحدة لقياس حجم البيانات تساوي مليون بايت حسب النظام الدولي للوحدات. ويقابلها في النظام الثنائي الميبيبايت (MiB) الذي يساوي 1,048,576 بايت.عرض في القاموس): وحدة تساوي مليون بايت.
  • الجيجابايت (Gigabyte (GB) · الجيجابايتوحدة لقياس حجم البيانات تساوي مليار بايت حسب النظام الدولي للوحدات. ويقابلها في النظام الثنائي الجيبيبايت (GiB) الذي يساوي 1,073,741,824 بايت.عرض في القاموس): وحدة تساوي مليار بايت.
  • التيرابايت (Terabyte (TB) · التيرابايتوحدة لقياس حجم البيانات تساوي ألف مليار بايت (10 أس 12) حسب النظام الدولي للوحدات، وتُستخدم عادةً لقياس سعة الأقراص الصلبة.عرض في القاموس): وحدة تساوي ألف مليار بايت.
  • الهرتز (Hertz (Hz) · الهرتزوحدة قياس التردد في النظام الدولي للوحدات، وتساوي مرة واحدة في الثانية. وتُقاس بها سرعة ساعة المعالج، فالجيجاهرتز (GHz) يساوي مليار دورة في الثانية.عرض في القاموس): وحدة قياس التردد، وتساوي مرة واحدة في الثانية.
  • بت في الثانية (bps (bits per second) · بت في الثانيةوحدة قياس سرعة نقل البيانات، أي عدد البتات التي تنتقل في ثانية واحدة. وتُستخدم معها البادئات العشرية، فالكيلوبت يساوي 1000 بت.عرض في القاموس): وحدة قياس سرعة نقل البيانات.
  • ميجابت في الثانية (Mbps (Megabits per second) · ميجابت في الثانيةوحدة قياس سرعة الإنترنت الأكثر استخدامًا، وتساوي مليون بت في الثانية. ولأن البايت 8 بتات، فإن 8 ميجابت في الثانية تساوي ميجابايت واحدًا في الثانية.عرض في القاموس): مليون بت في الثانية، وهي الوحدة الأشهر لقياس سرعة الإنترنت.

اختبر نفسك#

نت سرعته 200 Mbps. أقصى سرعة تحميل هتشوفها في برنامج التحميل كام ميجابايت في الثانية؟

إظهار الإجابة

25 ميجابايت في الثانية. لأن 200 ÷ 8 = 25. السرعة مكتوبة بالبت، وبرنامج التحميل بيعرضها بالبايت، والبايت = 8 بت.

هارد مكتوب على علبته 500 GB. Windows هيعرض مساحته حوالي كام؟

إظهار الإجابة

حوالي 465 GB، حسب أمثلة Seagate. لأن 500,000,000,000 ÷ 1,073,741,824 ≈ 465.7، وWindows بيكتب الناتج على إنه GB مع إنه في الحقيقة GiB.

أيهما أكبر: 1 GB ولا 1 GiB؟

إظهار الإجابة

1 GiB أكبر. الجيجابايت (GB) = 1,000,000,000 بايت، والجيبيبايت (GiB) = 1,073,741,824 بايت. يعني الـ GiB أكبر بحوالي 7%.