BZIP2 आर्काइव (.bz2)

Bzip2 मानक

Bzip2 (BZ2) जूलियन सीवार्ड द्वारा बनाई गई एक क्लासिक पेटेंट-मुक्त यूनिक्स संपीड़न यूटिलिटी और फ़ाइल प्रारूप है, जो क्लासिक Gzip की तुलना में काफी बेहतर संपीड़न प्राप्त करने के लिए बरोज़-व्हीलर ट्रांसफ़ॉर्म (Burrows-Wheeler transform) का उपयोग करता है।

निरीक्षण और मेटाडेटा

ऑपरेटिंग सिस्टम और फ़ाइल विश्लेषक शुरुआती बाइनरी बाइट अनुक्रम का निरीक्षण करके BZ2 फ़ाइलों की पहचान करते हैं:

फ़ाइलें यहाँ चुनें या छोड़ें

निजी - फ़ाइलें कभी आपके डिवाइस से बाहर नहीं जातीं

या पेस्ट करें Ctrl+V
नेटवर्क पर कोई डेटा भेजे बिना गोपनीयता की गारंटी: बाहरी सर्वर पर 0 बाइट अपलोड किए गए। सारी प्रोसेसिंग आपके ब्राउज़र सैन्डबॉक्स में स्थानीय रूप से हुई।

बाइट-स्तरीय हेडर हस्ताक्षर (मैजिक बाइट्स)

ऑपरेटिंग सिस्टम और फ़ाइल विश्लेषक शुरुआती बाइनरी बाइट अनुक्रम का निरीक्षण करके BZ2 फ़ाइलों की पहचान करते हैं:

HEX हस्ताक्षर (ऑफ़सेट 0):

42 5A 68

ASCII निरूपण: BZh

मानकीकरण: Bzip2 ओपन-सोर्स मानक

तकनीकी विनिर्देश

कंटेनर आर्किटेक्चरस्ट्रीम हेडर ('BZh' + ब्लॉक आकार का अंक 1-9), जिसके बाद संपीड़ित डेटा ब्लॉक और 32-bit CRC आते हैं
कंप्रेशनBurrows-Wheeler ट्रांसफ़ॉर्म (BWT), Move-to-Front (MTF) ट्रांसफ़ॉर्म और Huffman कोडिंग
बाइट एंडियानेसबिग-एंडियन बिटस्ट्रीम फ़्रेमिंग
कलर स्पेसलागू नहीं (बाइट कंप्रेशन स्ट्रीम)
चैनल और संरचनाएकल-फ़ाइल संपीड़ित बाइट स्ट्रीम
अधिकतम आयामअसीमित स्ट्रीम लंबाई (मनमाने फ़ाइल आकारों का समर्थन)
पारदर्शिता100% बिट-स्तर पर सटीक, डेटा का बिना हानि संरक्षण
स्ट्रीमिंग और प्रोग्रेसिवस्वतंत्र प्रति-ब्लॉक CRC चेकसम के साथ क्रमिक ब्लॉक-दर-ब्लॉक स्ट्रीमिंग

तकनीकी तुलना मैट्रिक्स: BZ2 बनाम प्रतियोगी

तकनीकी विशेषताBZ2 (वर्तमान)GZXZZSTD
कोर एल्गोरिथमबरोज़-व्हीलर ट्रांसफ़ॉर्म (BWT)डिफ्लेट (LZ77 + हॉफमैन)LZMA / LZMA2फाइनाइट स्टेट एंट्रॉपी + LZ77
Gzip की तुलना में संपीड़नGzip से 10% - 20% छोटाबेसलाइन मानकGzip से 20% - 30% छोटाGzip से 10% - 20% छोटा
डीकंप्रेसन गतिधीमी (~30-50 MB/s)तेज़ (~300 MB/s)मध्यम (~100 MB/s)अत्यंत तेज़ (>1.5 GB/s)
ब्लॉक चेकसमप्रति-ब्लॉक 32-बिट CRCएकल स्ट्रीम CRC32स्ट्रीम CRC64स्ट्रीम xxHash64

सामान्य करप्शन मोड और हेक्स रिकवरी गाइड

निष्कर्षण 'bzip2: Data integrity error when decompressing' के साथ निरस्त हो जाता है।

मूल कारण: संपीड़ित ब्लॉक में बिट के बदलने से BWT व्युत्क्रम क्रमपरिवर्तन मैट्रिक्स CRC32 सत्यापन में विफल हो जाता है।

रिकवरी: दूषित सेक्टर के आसपास के बिना क्षतिग्रस्त ब्लॉकों को बचाने के लिए 'bzip2recover' यूटिलिटी का उपयोग करें।

सुरक्षा विश्लेषण और पार्सर अटैक वेक्टर्स

Bzip2 कार्यान्वयन में जटिल बिटस्ट्रीम छँटाई और हॉफमैन टेबल पार्सिंग शामिल हैं जिनमें ऐतिहासिक रूप से पूर्णांक अतिप्रवाह (integer overflow) खामियां आई हैं।

ज्ञात अटैक वेक्टर्स

  • BWT छँटाई सरणी आवंटन में पूर्णांक अतिप्रवाह (उदा. CVE-2016-3189)।
  • हॉफमैन डिकोडिंग टेबल असेंबली के दौरान सीमा से बाहर (out-of-bounds) लिखना।
  • सबसे खराब स्थिति में द्विघात BWT छँटाई समय पैदा करने वाले असामान्य इनपुट पैटर्न के माध्यम से सेवा से इनकार (DoS)।

सुरक्षात्मक सर्वोत्तम प्रथाएँ: लागू मेमोरी सीमाओं के साथ मेमोरी-सुरक्षित WASM डिकोडर्स का उपयोग करके BZ2 फ़ाइलों को डिकोड करें।

ऐतिहासिक मूल और मील के पत्थर

2019फेडरिको मेना क्विंटरो bzip3 और आधुनिक ओपन-सोर्स पहलों के तहत bzip2 कोडबेस के रखरखाव को आधुनिक बनाते हैं।
2000संस्करण 1.0 जारी किया गया, जो लिनक्स वितरण और पैकेज प्रबंधकों में bz2 प्रारूप को स्थिर करता है।
1996जूलियन सीवार्ड ने पहले के bzip प्रारूप को बदलने के लिए bzip2 0.15 जारी किया, जिसमें पेटेंट संबंधी चिंताएं थीं।

मुख्य लाभ और खूबियाँ

  • सोर्स कोड टारबॉल्स, सिस्टम लॉग और टेक्स्ट डेटाबेस पर लगातार क्लासिक Gzip को 10% से 20% तक मात देता है।
  • स्वतंत्र ब्लॉक आर्किटेक्चर (100k से 900k) में मजबूत अखंडता जांच के लिए प्रति-ब्लॉक 32-बिट CRC चेकसम शामिल हैं।
  • कई Linux, BSD और macOS कमांड-लाइन वितरणों में मूल रूप से उपलब्ध; शामिल होना वितरण पर निर्भर करता है।

तकनीकी सीमाएँ और कमियाँ

  • Zstandard जैसे आधुनिक एल्गोरिदम की तुलना में काफी धीमी संपीड़न और डीकंप्रेसन गति।
  • केवल एकल-फ़ाइल संपीड़न: एकाधिक फ़ाइलों या निर्देशिकाओं को पैकेज करने के लिए TAR (.tar.bz2) के साथ युग्मन की आवश्यकता होती है।
  • Gzip या Zstd की तुलना में डीकंप्रेसन के दौरान उच्च CPU उपयोग।

रोचक तकनीकी जानकारी

  • 'BZh' मैजिक बाइट्स का मतलब 'बरोज़-व्हीलर ज़िप हॉफमैन' है, जिसके बाद एक अंक ('1' से '9') होता है जो सौ किलोबाइट में ब्लॉक आकार को दर्शाता है (उदा. 'BZh9' = 900 KB)।
  • .xz में माइग्रेट करने से पहले लिनक्स कर्नेल स्रोत कोड एक दशक से अधिक समय तक विशेष रूप से .tar.bz2 प्रारूप में वितरित किया गया था।
  • Burrows-Wheeler ट्रांसफ़ॉर्म सीधे डेटा को संपीड़ित नहीं करता; यह वर्णों का क्रम बदलता है ताकि एक जैसे अक्षर समूहों में आ जाएँ और Huffman कोडिंग से आसानी से संपीड़ित किए जा सकें।

अक्सर पूछे जाने वाले तकनीकी प्रश्न

.gz और .bz2 में क्या अंतर है?

.bz2, .gz की तुलना में फ़ाइलों का आकार छोटा करने के लिए Burrows-Wheeler ट्रांसफ़ॉर्म का उपयोग करता है, लेकिन इसे संपीड़ित और डीकंप्रेस करने में अधिक समय लगता है।

bzip2 में 'bzip2recover' कमांड क्यों होती है?

चूँकि bzip2 डेटा को स्वतंत्र 900 KB ब्लॉकों में कंप्रेस करता है, जिनमें से प्रत्येक का अपना CRC होता है, इसलिए फ़ाइल का कुछ हिस्सा खराब होने पर भी bzip2recover बिना नुकसान वाले ब्लॉकों को निकाल सकता है।

मैं .tar.bz2 फ़ाइल को कैसे एक्सट्रैक्ट कर सकता हूँ?

आप कमांड-लाइन टूल चलाए बिना सीधे अपने वेब ब्राउज़र में File2File.app के साथ .tar.bz2 फ़ाइलों को अनपैक कर सकते हैं।