أرشيف BZIP2 (.bz2)

Bzip2 قياسي

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

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

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

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

تحويل خاص بنسبة 100% داخل المتصفح - لا تغادر الملفات جهازك أبداً

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

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

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

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

42 5A 68

تمثيل ASCII: BZh

القياسية: Bzip2 Open Source Standard

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

هيكلية الحاويةStream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC
الضغطBurrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding
ترتيب البايتات (Endianness)Big-Endian bitstream framing
مساحات الألوانN/A (Byte Compression Stream)
القنوات والبنيةSingle-file compressed byte stream
الحد الأقصى للأبعادUnbounded stream length (supports arbitrary file sizes)
الشفافية100% bit-exact lossless data preservation
البث والتحميل التدرجيSequential block-by-block streaming with independent per-block CRC checksums

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

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

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

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

السبب الجذري: بت مقلوب في الكتلة المضغوطة مما يتسبب في فشل مصفوفة التحويل العكسي BWT في التحقق من صحة CRC32.

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

تحليل الأمان وناقلات هجوم المحلل اللغوي

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

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

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

أفضل الممارسات الدفاعية:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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