امتداد الملف .BZ2

يتم ضغط الملفات ذات الامتداد .BZ2 باستخدام خوارزمية BZIP2. تحقق هذه الأداة المجانية ومفتوحة المصدر، التي طورها جوليان سيوارد، نسب ضغط مذهلة، مما يجعلها مثالية لتقليص الملفات أو مجموعات البيانات الكبيرة. على عكس تنسيقات الأرشيف مثل ZIP ، يقوم BZIP2 بضغط الملفات الفردية فقط. لحسن الحظ، يعد إنشاء ملفات BZ2 واستخراجها أمرًا بسيطًا مع معظم برامج أرشفة الملفات التي تدعم هذا التنسيق. إن كفاءة BZIP2 في كل من الضغط وإلغاء الضغط جعلت منه خيارًا شائعًا لتوزيع البرامج والنسخ الاحتياطي للبيانات ونقل الإنترنت.

حول أرشيف BZIP2

على غرار GZIP ، يعمل BZ2 كضاغط بيانات، لكنه يفتقر إلى تعدد استخدامات برنامج أرشيفي مثل TAR أو ZIP. على عكس هذه التنسيقات، لا يدعم BZIP2 ضغط ملفات متعددة في أرشيف واحد، ولا يوفر ميزات التشفير أو تقسيم الأرشيف. في تقليد UNIX، يتم التعامل مع الأرشفة بشكل منفصل، مع استخدام BZIP2 فقط للضغط. ومع ذلك، يعتبر إلغاء الضغط باستخدام BZIP2 فعالاً بشكل ملحوظ، خاصة بالمقارنة مع سرعة الضغط الأبطأ. ولمعالجة هذا الخلل، ظهرت نسخة معدلة تسمى PBZIP2 في عام 2003، تعمل على الاستفادة من الخيوط المتعددة لتحسين أوقات الضغط بشكل كبير على الأنظمة الحديثة متعددة وحدات المعالجة المركزية ومتعددة النواة.

.BZ2 تنسيق ملف الأرشيف معلومات التاريخ

تعود أصول تنسيق الملف .BZ2، المرتبط بضغط BZIP2، إلى جهود التطوير التي بذلها جوليان سيوارد في أواخر التسعينيات داخل مجتمع UNIX. على مر السنين، خضعت الخوارزمية للعديد من التحولات في الصيانة، حيث تولى ميكا سنايدر منصب المشرف في يونيو 2021. وإلى جانب هذا التطور، ظهرت تعديلات مثل PBZIP2، مستفيدة من إمكانات الخيوط المتعددة لتعزيز سرعات الضغط على وحدات المعالجة المركزية الحديثة والمتعددة. والأنظمة متعددة النواة. على الرغم من هذه التطورات، تظل المبادئ الأساسية لتنسيق .BZ2 قائمة على استخدامها الفعال لتحويل Burrows-Wheeler، والتحويل من الأمام، وتقنيات ترميز Huffman.

هيكل أرشيف BZIP2

يستخدم BZIP2 الضغط القائم على الكتلة، وعادةً ما يضغط البيانات في كتل يتراوح حجمها من 100 إلى 900 كيلو بايت. يستخدم تحويل Burrows-Wheeler لتحويل تسلسلات الأحرف المتكررة إلى سلاسل من الحروف المتطابقة، متبوعة بالتحويل من الأمام وترميز هوفمان. والجدير بالذكر أن سابقتها، bzip، استخدمت الترميز الحسابي بدلاً من هوفمان للضغط.

طرق ضغط BZIP2

لسوء الحظ، يفتقر BZIP2 إلى مجموعة متنوعة من تقنيات الضغط الموجودة في بعض نظيراته. وبدلاً من ذلك، فهو يعتمد على نهج فريد ومصمم بدقة لضغط البيانات. وتتميز هذه التقنية بما يلي:

  • فرز الكتل: يقوم BZIP2 بتقسيم البيانات إلى كتل أصغر للضغط الفردي.
  • تحويل Burrows-Wheeler: تعمل هذه الخطوة على إعادة ترتيب البيانات داخل كل كتلة لتحسين كفاءة الضغط من خلال تحديد الأنماط المتكررة.
  • التحرك للخلف: تقوم الخوارزمية بعد ذلك بتكرار البيانات المحولة للخلف، مع تطبيق تشفير هوفمان لمزيد من الضغط.
  • تشفير طول التشغيل: تحدد هذه التقنية الأحرف المتكررة وترميزها داخل كتل البيانات لتوفير مساحة إضافية.

العمليات المدعومة لأرشيف BZIP2

يسهل Aspose.ZIP نطاقًا من العمليات على أرشيفات الملفات بتنسيق BZ2، بما في ذلك الاستخراج والضغط وتعبئة الملفات والدمج وتحويل الأرشيف. يمكن للمستخدمين استخراج البيانات بسهولة من أرشيفات .BZ2 وضغط الملفات ودمج الأرشيفات والتحويل بين تنسيقات الأرشيف المختلفة بسهولة. بالإضافة إلى ذلك، يدعم Aspose.ZIP تقسيم أرشيفات BZ2. الكبيرة إلى عدة وحدات تخزين لتحسين الإدارة وكفاءة التخزين.

BZIP2 - الهيكل الداخلي

على الرغم من عدم وجود مواصفات رسمية لـ bzip2، فقد تم استخلاص مواصفات غير رسمية من خلال الهندسة العكسية للتنفيذ المرجعي. في الأساس، يبدأ تدفق .bz2 برأسية موجزة مكونة من 4 بايت، يتبعها أي عدد من الكتل المضغوطة، ويتم اختتامها بسلاسة بواسطة علامة نهاية الدفق التي تتميز بمجموع اختباري CRC 32 بت لتدفق النص العادي المعالج بالكامل. والجدير بالذكر أن الكتل المضغوطة تتم محاذاتها مع مستوى البت، دون الحاجة إلى حشوة إضافية. يؤكد هذا الهيكل المبسط على كفاءة وبساطة تنسيق الضغط bzip2.
بعد الخضوع لضغط RLE في المرحلة الأولية (انظر أعلاه)، يصل الحد الأقصى لطول النص غير المضغوط الذي يمكن احتواؤه في كتلة واحدة بحجم 900 كيلو بايت في bzip2 إلى حوالي 46 ميجا بايت (45,899,236 بايت). يحدث هذا السيناريو عندما يتكون النص غير المضغوط بالكامل من قيم متكررة (مما ينتج عنه ملف .bz2 بحجم 46 بايت فقط). حتى الملفات الأصغر حجمًا، التي يصل حجمها إلى 40 بايت، يمكن إنجازها من خلال استخدام بيانات الإدخال التي تتكون بالكامل من القيمة 251، مما يؤدي إلى نسبة ضغط مذهلة تبلغ 1,147,480.9:1. يعرض هذا العمل الفذ الرائع الكفاءة المذهلة وتعدد استخدامات خوارزمية الضغط bzip2.

BZIP2 - الهيكل الداخلي

شعبية أرشيف ودعم BZIP2

أرشيفات .BZ2، على الرغم من أنها ليست منتشرة مثل تنسيقات .ZIP أو .7z ، إلا أنها لا تزال تجد فائدة في تطبيقات محددة، لا سيما في بيئات Unix وLinux. إنها توفر إمكانات ضغط قوية وتحظى بدعم جيد عبر أنظمة التشغيل وأدوات البرامج المختلفة. على الرغم من مكانتها المتخصصة، تظل أرشيفات BZIP2 خيارًا موثوقًا به لتعبئة توزيعات البرامج والنسخ الاحتياطي للبيانات. يتوفر دعم لملفات .BZ2 على نطاق واسع، حيث توفر العديد من أدوات الأرشفة ولغات البرمجة النصية وظائف مدمجة لإنشاء هذه الملفات واستخراجها. مع ظهور خوارزميات ضغط أحدث، قد تستمر شعبية واستخدام أرشيفات BZIP2 في التطور.

أمثلة على استخدام BZIP2

يأخذ Aspose.ZIP ضغط Bzip2 إلى المستوى التالي. من خلال الاستفادة من قوة المعالجة المتوازية لوحدة المعالجة المركزية لديك، يمكن لـ Aspose.ZIP تقسيم عبء عمل الضغط عبر مراكز متعددة. وهذا يُترجم إلى أوقات ضغط أسرع بشكل ملحوظ، خاصة بالنسبة لمجموعات البيانات الكبيرة. يعد تنشيط الضغط المتوازي باستخدام Aspose.ZIP أمرًا سهلاً مثل تعيين خاصية CompressionThreads على قيمة أكبر من 1

Parallel Compression for BZ2 Files

This simple configuration unlocks the full potential of your multi-core processor, dramatically accelerating your Bzip2 compression tasks.

using (Bzip2Archive archive = new Bzip2Archive())
{
    archive.SetSource("data.bin");
    archive.Save("result.bz2", new Bzip2SaveOptions() { CompressionThreads =  Environment.ProcessorCount });
}

Bzip2SaveOptions.CompressionThreads property

This setting controls the number of compression threads. When set to a value greater than 1, multithreading compression is activated. Read more .

    public int CompressionThreads { get; set; }

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

معلومات إضافية حول أرشيفات BZIP2

لقد كان الناس يسألون

1. هل BZIP2 آمن؟ هل يستطيع تشفير الملفات؟

وهذا يعالج القلق المشترك بشأن أمن البيانات. من المهم توضيح أن BZIP2 نفسه لا يقدم التشفير. قد يحتاج المستخدمون إلى أداة منفصلة لتشفير ملفاتهم قبل ضغطها باستخدام BZIP2. على سبيل المثال، يمكن إنشاء كلمات مرور قوية للأرشيفات التي تم إنشاؤها مسبقًا باستخدام أدوات تشفير منفصلة.

2. ما هي مزايا وقيود استخدام ضغط BZIP2؟

الميزة الرئيسية لـ BZIP2 هي قدرته على تحقيق نسب ضغط عالية، ولكنه قد يتطلب المزيد من الموارد الحسابية والوقت مقارنة بالخوارزميات الأخرى. بالإضافة إلى ذلك، لا تدعم أرشيفات BZIP2 تخزين ملفات متعددة في ملف مضغوط واحد .

3. ما الفرق بين BZIP2 وتنسيقات الأرشيف مثل ZIP أو TAR؟

يعد هذا أمرًا بالغ الأهمية لأن BZIP2 يضغط الملفات الفردية فقط، على عكس ZIP وTAR اللذين يمكنهما أرشفة ملفات متعددة في حزمة واحدة. لمعالجة هذا القيد، يمكنك استخدام Aspose.ZIP APIs لإضافة ملفات إلى أرشيفات ZIP بدون ضغط .