BZIP2 archívum (.bz2)
Bzip2 SzabványA Bzip2 (BZ2) egy klasszikus, szabadalmaktól mentes Unixömörsömözi-tömörítő segédprogram és fájlformátum, amelyet Julian Seward hozott létre. A Burrows-Wheeler transzformációt alkalmazza, amellyel jelentősen jobb tömörítési arányt ér el a klasszikus Gzipnél.
Vizsgálat és metaadatok
Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) BZ2 fájlokat:
Bájt-szintű fejléc aláírás (Magic Bytes)
Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) BZ2 fájlokat:
HEX ALÁÍRÁS (ELTOLÁS 0):
42 5A 68ASCII REPREZENTÁCIÓ: BZh
Szabványosítás: Bzip2 Open Source Standard
Műszaki specifikációk
| Konténer architektúra | Stream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC |
| Tömörítés | Burrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding |
| Bájtsorrend | Big-Endian bitstream framing |
| Színterek | N/A (Byte Compression Stream) |
| Csatornák és struktúra | Single-file compressed byte stream |
| Max. méretek | Unbounded stream length (supports arbitrary file sizes) |
| Átlátszóság | 100% bit-exact lossless data preservation |
| Streaming és progresszív | Sequential block-by-block streaming with independent per-block CRC checksums |
Műszaki összehasonlító mátrix: BZ2 vs Versenytársak
| Technikai attribútum | BZ2 (Jelenlegi) | GZ | XZ | ZSTD |
|---|---|---|---|---|
| Alapvető algoritmus | Burrows-Wheeler transzformáció (BWT) | Deflate (LZ77 + Huffman) | LZMA / LZMA2 | Véges állapotú entrópia + LZ77 |
| Tömörítés a Gziphez képest | 10% - 20%-kal kisebb, mint a Gzip | Alapszintű szabvány | 20% - 30%-kal kisebb, mint a Gzip | 10% - 20%-kal kisebb, mint a Gzip |
| Kitömörítési sebesség | Lassú (~30-50 MB/s) | Gyors (~300 MB/s) | Mérsékelt (~100 MB/s) | Villámgyors (>1,5 GB/s) |
| Blokk-ellenőrzőösszegek | Blokkonkénti 32 bites CRC | Egyszeres adatfolyam CRC32 | Adatfolyam CRC64 | Adatfolyam xxHash64 |
Gyakori sérülési módok és hexadecimális helyreállítási útmutató
A kitömörítés megszakad a „bzip2: Data integrity error when decompressing" hibaüzenettel.
Kiváltó ok: Megbillent bit a tömörített blokkban, ami miatt a BWT inverz permutációs mátrix CRC32-ellenőrzése sikertelen lesz.
Helyreállítás: Használja a „bzip2recover" segédprogramot a sérült szektort körülvevő sértetlen blokkok mentéséhez.
Biztonsági elemzés és elemző (parser) támadási vektorok
A Bzip2 implementációk összetett bájtfolyam-rendezést és Huffman-tábla elemzést tartalmaznak, amelyek a múltban egész túlcsordulási hibáktól szenvedtek.
Ismert támadási vektorok
- Egész túlcsordulás a BWT rendezési tömb lefoglalásakor (pl. CVE-2016-3189).
- Határokon túli írás a Huffman dekódolási tábla összeállítása során.
- Szolgáltatásmegtagadás (DoS) patologikus bemeneti minták révén, amelyek a legrosszabb esetben is másodfokú BWT rendezési időt okoznak.
Védekező Legjobb Gyakorlatok:
Történeti háttér és mérföldkövek
Főbb előnyök
- Forráskód-archívumok, rendszernaplók és szöveges adatbázisok esetén következetesen 10-20%-kal felülmúlja a klasszikus Gzipet.
- A független blokkarchitektúra (100k és 900k között) blokkonkénti 32 bites CRC-ellenőrzőösszegeket tartalmaz a robusztus integritásellenőrzés érdekében.
- Univerzális natív elérhetőség minden Linux, BSD és macOS parancssori disztribúcióban.
Technikai korlátok és hátrányok
- Jelentősen lassabb tömörítési és kitömörítési sebesség a modern algoritmusokhoz, például a Zstandardhoz képest.
- Csak egyfájlos tömörítés: több fájl vagy könyvtár csomagolásához TAR (.tar.bz2) formátummal kell párosítani.
- Nagyobb CPU-használat a kitömörítés során a Gziphez vagy a Zstdhez képest.
Érdekes technikai tudnivalók
- A „BZh" bájtkombináció a „Burrows-Wheeler Zip Huffman" kifejezést jelenti, amelyet egy számjegy ('1'-től '9'-ig) követ, megadva a blokkméretet kilobájtokban (pl. 'BZh9' = 900 KB).
- A Linux kernel forráskódját több mint egy évtizedig kizárólag .tar.bz2 formátumban terjesztették, mielőtt áttértek volna a .xz-re.
- A Burrows-Wheeler transzformáció nem közvetlenül tömöríti az adatokat; megváltoztatja a karakterek sorrendjét úgy, hogy az azonos betűk egymás mellé kerüljenek, így a Huffman-kódolással könnyen tömöríthetővé válnak.
Gyakran Ismételt Műszaki Kérdések
Mi a különbség a .gz és a .bz2 között?
A .bz2 a Burrows-Wheeler transzformációt használja a .gz-nél kisebb fájlméret eléréséhez, de a tömörítése és kitömörítése több időt vesz igénybe.
Miért van a bzip2-nek 'bzip2recover' parancsa?
Mivel a bzip2 független, 900 KB-os blokkokban – mindegyik saját CRC-vel ellátva – tömöríti az adatokat, a bzip2recover képes kinyerni a sértetlen blokkokat még akkor is, gdy a fájl egy része megsérült.
Hogyan csomagolhatok ki egy .tar.bz2 fájlt?
A .tar.bz2 fájlokat közvetlenül a webböngészőjében csomagolhatja ki a File2File.app segítségével, parancssori eszközök futtatása nélkül.