BZIP2 আর্কাইভ (.bz2)
Bzip2 স্ট্যান্ডার্ডBzip2 (BZ2) হলো জুলিয়ান সেওয়ার্ড কর্তৃক তৈরিকৃত একটি ক্লাসিক প্যাটেন্ট-মুক্ত ইউনিক্স কম্প্রেশন ইউটিলিটি এবং ফাইল ফরম্যাট, যা ক্লাসিক Gzip-এর তুলনায় উল্লেখযোগ্যভাবে ভালো কম্প্রেশন অর্জনের জন্য বারোজ-হুইলার ট্রান্সফর্ম ব্যবহার করে।
ইনস্পেক্ট ও মেটাডেটা
অপারেটিং সিস্টেম এবং ফাইল অ্যানালাইজারগুলো শুরুর বাইনারি বাইট সিকোয়েন্স পরীক্ষা করে BZ2 ফাইল শনাক্ত করে:
বাইট-লেভেল হেডার সিগনেচার (ম্যাজিক বাইটস)
অপারেটিং সিস্টেম এবং ফাইল অ্যানালাইজারগুলো শুরুর বাইনারি বাইট সিকোয়েন্স পরীক্ষা করে BZ2 ফাইল শনাক্ত করে:
হেক্স সিগনেচার (অফসেট 0):
42 5A 68ASCII রিপ্রেজেন্টেশন: BZh
স্ট্যান্ডার্ডাইজেশন: Bzip2 Open Source Standard
প্রযুক্তিগত বৈশিষ্ট্য
| কন্টেইনার আর্কিটেকচার | stream header (“BZh” + block size digit 1-9)-এর পরে compressed data block ও 32-bit CRC থাকে |
| কম্প্রেশন | Burrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform এবং Huffman coding |
| বাইট এন্ডিয়াননেস | Big-Endian bitstream framing-এ ডেটা সাজানো হয় |
| কালার স্পেস | প্রযোজ্য নয় (Byte Compression Stream) |
| চ্যানেল ও কাঠামো | একটি file-এর compressed byte stream |
| সর্বোচ্চ মাত্রা | সীমাহীন stream দৈর্ঘ্য (যেকোনো file size সমর্থিত) |
| স্বচ্ছতা | 100% bit-exact lossless data সংরক্ষণ |
| স্ট্রিমিং ও প্রোগ্রেসিভ | প্রতিটি block-এর স্বতন্ত্র CRC checksum-সহ block ধরে ক্রমানুসারে streaming |
টেকনিক্যাল তুলনা ম্যাট্রিক্স: BZ2 বনাম প্রতিযোগীগণ
| প্রযুক্তিগত বৈশিষ্ট্য | BZ2 (বর্তমান) | GZ | XZ | ZSTD |
|---|---|---|---|---|
| কোর অ্যালগরিদম | বারোজ-হুইলার ট্রান্সফর্ম (BWT) | Deflate (LZ77 + হাফম্যান) | LZMA / LZMA2 | ফাইনাইট স্টেট এন্ট্রপি + LZ77 |
| Gzip-এর সাথে কম্প্রেশনের তুলনা | Gzip-এর চেয়ে ১০% - ২০% ছোট | বেসলাইন স্ট্যান্ডার্ড | Gzip-এর চেয়ে ২০% - ৩০% ছোট | Gzip-এর চেয়ে ১০% - ২০% ছোট |
| ডিকম্প্রেশনের গতি | ধীর (~৩০-৫০ MB/s) | দ্রুত (~৩০০ MB/s) | মাঝারি (~১০০ MB/s) | অত্যন্ত দ্রুত (>১.৫ GB/s) |
| ব্লক চেকসাম | প্রতি ব্লকে ৩২-বিট CRC | সিঙ্গেল স্ট্রিম CRC32 | স্ট্রিম CRC64 | স্ট্রিম xxHash64 |
সাধারণ করাপশন মোড এবং হেক্স রিকভারি গাইড
'bzip2: Data integrity error when decompressing' ত্রুটির কারণে এক্সট্রাকশন বন্ধ হয়ে যায়।
মূল কারণ: কম্প্রেসড ব্লকে ফ্লিপ হওয়া বিটের কারণে BWT ইনভার্স পারমুটেশন ম্যাট্রিক্স CRC32 ভ্যালিডেশনে ব্যর্থ হয়।
পুনরুদ্ধার: ক্ষতিগ্রস্ত খাতের চারপাশের অক্ষত ব্লকগুলো উদ্ধার করতে 'bzip2recover' ইউটিলিটি ব্যবহার করুন।
নিরাপত্তা বিশ্লেষণ ও পার্সার অ্যাটাক ভেক্টর
Bzip2 ইমপ্লিমেন্টেশনে জটিল বিটস্ট্রিম সর্টিং এবং হাফম্যান টেবিল পার্সিং জড়িত থাকে, যেগুলোতে ঐতিহাসিকভাবে পূর্ণসংখ্যা ওভারফ্লোর ত্রুটি দেখা গেছে।
পরিচিত অ্যাটাক ভেক্টর
- BWT সর্টিং অ্যারে এলোকেশনে পূর্ণসংখ্যা ওভারফ্লো (যেমন: CVE-2016-3189)।
- হাফম্যান ডিকোডিং টেবিল অ্যাসেম্বলির সময় বাউন্ডসের বাইরে রাইট (Out-of-bounds write)।
- অস্বাভাবিক ইনপুট প্যাটার্নের কারণে পরিষেবা অস্বীকার (DoS), যা সবচেয়ে খারাপ ক্ষেত্রে BWT সর্টিংয়ের সময়কে দ্বিঘাত হারে বাড়িয়ে দেয়।
প্রতিরক্ষামূলক সেরা অনুশীলন: মেমরির সীমা কার্যকর করা আছে এমন মেমরি-নিরাপদ WASM ডিকোডার দিয়ে BZ2 ফাইল ডিকোড করুন।
ঐতিহাসিক উৎপত্তি ও মাইলফলক
প্রধান সুবিধাসমূহ ও গুণাবলী
- সোর্স কোড টারবল, সিস্টেম লগ এবং টেক্সট ডাটাবেসে ক্লাসিক Gzip-এর তুলনায় ধারাবাহিকভাবে ১০% থেকে ২০% ভালো পারফর্ম করে।
- স্বাধীন ব্লক আর্কিটেকচার (১০০কে প্রতি ৯০০কে) শক্তিশালী ইন্টিগ্রিটি চেকিংয়ের জন্য থেকে ব্লকে ৩২-বিট CRC চেকসাম অন্তর্ভুক্ত করে।
- অনেক Linux, BSD ও macOS কমান্ড-লাইন ডিস্ট্রিবিউশনে অন্তর্নির্মিতভাবে পাওয়া যায়; অন্তর্ভুক্তি ডিস্ট্রিবিউশনভেদে আলাদা।
কারিগরি সীমাবদ্ধতা ও অসুবিধা
- Zstandard-এর মতো আধুনিক অ্যালগরিদমের তুলনায় কম্প্রেশন এবং ডিকম্প্রেশনের গতি উল্লেখযোগ্যভাবে ধীর।
- শুধুমাত্র একক-ফাইল কম্প্রেশন: একাধিক ফাইল বা ডিরেক্টরি প্যাকেজ করার জন্য TAR (.tar.bz2)-এর সাথে জোড়া লাগাতে হয়।
- Gzip বা Zstd-এর তুলনায় ডিকম্প্রেশনের সময় বেশি CPU ব্যবহার করে।
আকর্ষণীয় কারিগরি তথ্য
- 'BZh' ম্যাজিক বাইটগুলোর অর্থ হলো 'Burrows-Wheeler Zip Huffman', যার পরে কিলোকাবাইটের শতকে ব্লক সাইজ নির্দেশক একটি অঙ্ক ('1' থেকে '9') থাকে (যেমন: 'BZh9' = ৯০০ KB)।
- লিনাক্স কার্নেল সোর্স কোড .xz-এ স্থানান্তরিত হওয়ার আগে এক দশকেরও বেশি সময় ধরে একচেটিয়াভাবে .tar.bz2 ফরম্যাটে বিতরণ করা হয়েছিল।
- বারোজ-হুইলার ট্রান্সফর্ম সরাসরি ডেটা কম্প্রেশন করে না; এটি অক্ষরের ক্রম এমনভাবে পরিবর্তন করে যাতে একই অক্ষরগুলো একসাথে জমাট বাঁধে, যা হাফম্যান কোডিংয়ের মাধ্যমে খুব সহজেই কম্প্রেশনের উপযোগী করে তোলে।
সচরাচর জিজ্ঞাসিত প্রযুক্তিগত প্রশ্নাবলি
.gz এবং .bz2-এর মধ্যে পার্থক্য কী?
.bz2 .gz-এর তুলনায় ছোট ফাইল তৈরি করতে Burrows-Wheeler ট্রান্সফর্ম ব্যবহার করে, তবে এটি কমপ্রেস এবং ডিকম্প্রেস করতে বেশি সময় নেয়।
bzip2-এ 'bzip2recover' কমান্ড থাকে কেন?
bzip2 ডেটা স্বাধীন ৯০০ কেবি ব্লকে কমপ্রেস করে এবং প্রতিটি ব্লকের নিজস্ব CRC থাকে বলে, তাই ফাইলের কিছু অংশ নষ্ট হয়ে গেলেও bzip2recover অক্ষত ব্লকগুলি এক্সট্র্যাক্ট করতে পারে।
কীভাবে আমি একটি .tar.bz2 ফাইল এক্সট্র্যাক্ট করব?
কম্যান্ড-লাইন টুল না চালিয়ে আপনি সরাসরি আপনার ওয়েব ব্রাউজারে File2File.app দিয়ে .tar.bz2 ফাইল আনপ্যাক করতে পারেন।