أرشيف BZIP2 (.bz2)

Bzip2 قياسي

Bzip2 (BZ2) أداة ضغط كلاسيكية خالية من براءات الاختراع وتنسيق ملفات لأنظمة Unix، طوّرها جوليان سيوارد، وتستخدم تحويل بوروز-ويلر لتحقيق ضغط أفضل بكثير من Gzip الكلاسيكي.

فحص البيانات الوصفية

تتعرف أنظمة التشغيل ومحللات الملفات على ملفات BZ2 من خلال فحص تسلسل البايت الثنائي البادئ:

اختر الملفات أو أسقطها هنا

خاص - لا تغادر الملفات جهازك أبدًا

أو الصق Ctrl+V
ضمان الخصوصية وعدم الإرسال عبر الشبكة: صفر بايت يتم رفعه إلى خوادم خارجية. تمت كل عمليات المعالجة محلياً في صندوق الحماية (Sandbox) الخاص بمتصفحك.

توقيع رأس الملف على مستوى البايت (Magic Bytes)

تتعرف أنظمة التشغيل ومحللات الملفات على ملفات BZ2 من خلال فحص تسلسل البايت الثنائي البادئ:

التوقيع الست عشري (الإزاحة 0):

42 5A 68

تمثيل ASCII: BZh

التوحيد القياسي: Bzip2 Open Source Standard

المواصفات الفنية

هيكلية الحاويةرأس تدفق ('BZh' + رقم حجم الكتلة من 1 إلى 9)، تتبعه كتل بيانات مضغوطة وCRC بدقة 32 بت
الضغطتحويل Burrows-Wheeler (BWT)، وتحويل Move-to-Front (MTF)، وترميز Huffman
ترتيب البايتات (Endianness)تأطير تدفق بتات بترتيب Big-Endian
مساحات الألوانN/A (Byte Compression Stream)
القنوات والبنيةتدفق بايتات مضغوط في ملف واحد
الحد الأقصى للأبعادطول تدفق غير محدود (يدعم أحجام الملفات الاعتباطية)
الشفافيةحفظ البيانات دون فقد مع تطابق بتّي بنسبة 100%
البث والتحميل التدرجيبث تسلسلي كتلةً تلو الأخرى مع فحوص CRC مستقلة لكل كتلة

مصفوفة المقارنة التقنية: BZ2 مقابل المنافسين

السمة التقنيةBZ2 (الحالي)GZXZZSTD
الخوارزمية الأساسيةتحويل بوروز-ويليلر (BWT)Deflate (LZ77 + هوفمان)LZMA / LZMA2إنتروبيا الحالات المحدودة + LZ77
الضغط مقارنة بـ Gzipحجم أصغر بنسبة 10% إلى 20% مقارنةً بـ Gzipالمعيار الأساسيحجم أصغر بنسبة 20% إلى 30% مقارنةً بـ Gzipحجم أصغر بنسبة 10% إلى 20% مقارنةً بـ Gzip
سرعة فك الضغطبطيئة (~30-50 ميجابايت/ثانية)سريعة (~300 ميجابايت/ثانية)متوسطة (~100 ميجابايت/ثانية)فائقة السرعة (>1.5 جيجابايت/ثانية)
مجاميع التحقق للكتلCRC بطول 32 بت لكل كتلةCRC32 لتدفق واحدتدفق CRC64تدفق xxHash64

أنماط التلف الشائعة ودليل الاسترداد بالنظام الست عشري

يتوقف الاستخراج برسالة 'bzip2: خطأ في سلامة البيانات عند فك الضغط'.

السبب الجذري: تغيّر قيمة بت في الكتلة المضغوطة، ما يؤدي إلى فشل التحقق من CRC32 عند تطبيق التحويل العكسي لـ BWT.

الاسترداد: استخدم أداة 'bzip2recover' لإنقاذ الكتل السليمة المحيطة بالقطاع التالف.

تحليل الأمان ومتجهات الهجوم على المحلّل

تتضمن تطبيقات Bzip2 عمليات معقدة لفرز تدفقات البتات وتحليل جداول هوفمان، وقد عانت تاريخيًا من عيوب تجاوز سعة الأعداد الصحيحة.

ناقلات الهجوم المعروفة

  • تجاوز سعة الأعداد الصحيحة في تخصيص مصفوفة فرز BWT (مثل CVE-2016-3189).
  • كتابة خارج الحدود أثناء تجميع جدول فك ترميز هوفمان.
  • حرمان من الخدمة بسبب أنماط إدخال شاذة تجعل زمن فرز BWT تربيعيًا في أسوأ الحالات.

أفضل الممارسات الدفاعية: فك ضغط ملفات BZ2 باستخدام وحدات فك ترميز WASM آمنة للذاكرة تفرض حدودًا عليها.

الأصول التاريخية والمحطات الرئيسية

2019يتولى فيدريكو مينا كوينتيرو تحديث وصيانة قاعدة شيفرة bzip2 ضمن مبادرات bzip3 ومشاريع المصدر المفتوح الحديثة.
2000صدرت النسخة 1.0، ما أسهم في استقرار تنسيق bzip2 عبر توزيعات Linux ومديري الحزم.
1996جوليان سيوارد يصدر bzip2 0.15 ليحل محل صيغة bzip السابقة التي كانت تواجه مخاوف تتعلق ببراءات الاختراع.

المزايا الرئيسية والإيجابيات

  • يحقق باستمرار ضغطًا أفضل بنسبة 10% إلى 20% من Gzip الكلاسيكي على أرشيفات الشيفرة المصدرية وسجلات النظام وقواعد البيانات النصية.
  • تتضمن بنية الكتل المستقلة (من 100 كيلوبايت إلى 900 كيلوبايت) مجموع تحقق CRC بطول 32 بت لكل كتلة، ما يتيح التحقق الموثوق من سلامة البيانات.
  • يتوفر أصليًا في كثير من توزيعات سطر الأوامر في Linux وBSD وmacOS، ويختلف تضمينه حسب التوزيعة.

القيود الفنية والسلبيات

  • سرعات ضغط وفك ضغط أبطأ بشكل ملحوظ مقارنة بالخوارزميات الحديثة مثل Zstandard.
  • ضغط ملف واحد فقط: يتطلب الاقتران مع TAR (.tar.bz2) لتجميع عدة ملفات أو مجلدات.
  • استخدام أعلى للمعالج (CPU) أثناء فك الضغط مقارنة بـ Gzip أو Zstd.

معلومات تقنية طريفة

  • تشير البايتات المميزة 'BZh' إلى 'Burrows-Wheeler Zip Huffman'، ويتبعها رقم (من '1' إلى '9') يحدد حجم الكتلة بمئات الكيلوبايتات (مثل 'BZh9' = 900 كيلوبايت).
  • وُزّعت الشيفرة المصدرية لنواة Linux حصريًا بتنسيق .tar.bz2 لأكثر من عقد، قبل الانتقال إلى .xz.
  • لا يقوم تحويل بوروز-ويليلر بضغط البيانات مباشرة؛ بل يقوم بتبديل ترتيب الحروف بحيث تتجمع الحروف المتطابقة معاً، مما يجعلها قابلة للضغط بسهولة بواسطة ترميز هوفمان.

الأسئلة التقنية المتكررة

ما الفرق بين .gz و .bz2؟

يستخدم .bz2 تحويل بوروز-ويلر لتحقيق أحجام ملفات أصغر من .gz، لكنه يستغرق وقتًا أطول في الضغط وفك الضغط.

لماذا يحتوي bzip2 على أمر 'bzip2recover'؟

يمكن لـ bzip2recover استخراج الكتل السليمة حتى عند تلف جزء من الملف، لأن bzip2 يضغط البيانات في كتل مستقلة بحجم 900 كيلوبايت، لكل منها مجموع التحقق الدوري (CRC) الخاص بها.

كيف يمكنني استخراج ملف .tar.bz2؟

يمكنك فك ضغط ملفات .tar.bz2 مباشرة في متصفح الويب الخاص بك باستخدام File2File.app دون الحاجة لتشغيل أدوات سطر الأوامر.