BZIP2 arhiva (.bz2)
Bzip2 StandardnoBzip2 (BZ2) je klasični Unix uslužni program i format datoteke za kompresiju bez gubitaka koji ne podleže patentima, a kreirao ga je Džulિયન Sjuard (Julian Seward). On koristi Burrows-Wheeler-ovu transformaciju da postigne znatno gušću kompresiju od klasičnog Gzip-a.
Pregledaj i metapodaci
Operativni sistemi i analizatori datoteka identifikuju BZ2 datoteke proverom početnog binarnog niza bajtova:
Potpis zaglavlja na nivou bajtova (Magic Bytes)
Operativni sistemi i analizatori datoteka identifikuju BZ2 datoteke proverom početnog binarnog niza bajtova:
HEX POTPIS (OFFSET 0):
42 5A 68ASCII REPREZENTACIJA: BZh
Standardizacija: Bzip2 Open Source Standard
Tehničke specifikacije
| Arhitektura kontejnera | Stream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC |
| Kompresija | Burrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding |
| Bajtni redosled (Endianness) | Big-Endian bitstream framing |
| Prostori boja | N/A (Byte Compression Stream) |
| Kanali i struktura | Single-file compressed byte stream |
| Maksimalne dimenzije | Unbounded stream length (supports arbitrary file sizes) |
| Transparentnost | 100% bit-exact lossless data preservation |
| Strimovanje i progresivno učitavanje | Sequential block-by-block streaming with independent per-block CRC checksums |
Tehnička matrica poređenja: BZ2 vs Konkurenti
| Tehnički atribut | BZ2 (Trenutno) | GZ | XZ | ZSTD |
|---|---|---|---|---|
| Osnovni algoritam | Burrows-Wheeler-ova transformacija (BWT) | Deflate (LZ77 + Huffman) | LZMA / LZMA2 | Finite State Entropy + LZ77 |
| Kompresija u odnosu na Gzip | 10% - 20% manji od Gzip-a | Osnovni standard | 20% - 30% manji od Gzip-a | 10% - 20% manji od Gzip-a |
| Brzina dekompresije | Spora (~30-50 MB/s) | Brza (~300 MB/s) | Umerena (~100 MB/s) | Izuzetno brza (>1.5 GB/s) |
| Kontrolne sume blokova | 32-bitni CRC po bloku | Jednostruki strim CRC32 | Strim CRC64 | Strim xxHash64 |
Uobičajeni režimi oštećenja i vodič za heksadecimalni oporavak
Ekstrakcija se prekida sa porukom 'bzip2: Data integrity error when decompressing'.
Osnovni uzrok: Izmenjeni bit u kompresovanom bloku usled čega inverzna permutaciona matrica BWT-a ne uspeva da prođe CRC32 validaciju.
Oporavak: Koristite uslužni program 'bzip2recover' da spasite neoštećene blokove koji okružuju oštećeni sektor.
Bezbednosna analiza i vektori napada parsera
Implementacije bzip2-a uključuju složeno sortiranje bitstrima i parsiranje Hafmanovih tabela koje su istorijski imale greške u prekoračenju celobrojne vrednosti (integer overflow).
Poznati vektori napada
- Prekoračenje celobrojne vrednosti pri alokaciji BWT niza za sortiranje (npr. CVE-2016-3189).
- Upis van granica memorije tokom sklapanja tabele za Hafmanovo dekodiranje.
- Uskraćivanje usluge (DoS) kroz patološke ulazne obrasce koji uzrokuju najgora kvadratna vremena sortiranja BWT-a.
Defanzivne najbolje prakse:
Istorijat i prekretnice
Ključne prednosti
- Dosledno nadmašuje klasični Gzip za 10% do 20% na arhivama izvornog koda, sistemskim dnevnicima (logovima) i tekstualnim bazama podataka.
- Nezavisna blok arhitektura (100k do 900k) obuhvata 32-bitne CRC kontrolne sume po blokovima radi pouzdane provere integriteta.
- Univerzalna izvorna dostupnost na svim Linux, BSD i macOS komandnim distribucijama.
Tehnička ograničenja i nedostaci
- Znatno sporije brzine kompresije i dekompresije u poređenju sa modernim algoritmima kao što je Zstandard.
- Kompresija samo jedne datoteke: zahteva uparivanje sa TAR-om (.tar.bz2) radi pakovanja više datoteka ili direktorijuma.
- Veća potrošnja procesora (CPU) tokom dekompresije u poređenju sa Gzip-om ili Zstd-om.
Zanimljivosti
- Magični bajtovi 'BZh' označavaju 'Burrows-Wheeler Zip Huffman', a nakon njih sledi cifra (od '1' do '9') koja označava veličinu bloka u stotinama kilobajta (npr. 'BZh9' = 900 KB).
- Izvorni kod Linux kernela distribuirao se isključivo u .tar.bz2 formatu preko deceniju pre prelaska na .xz.
- Burrows-Wheeler-ova transformacija ne kompresuje podatke direktno; ona permutuje redosled znakova tako da se identična slova grupišu zajedno, čineći ih lako kompresibilnim pomoću Hafmanovog kodiranja (Huffman coding).
Često postavljana tehnička pitanja
Koja je razlika između .gz i .bz2?
.bz2 koristi Burrows-Wheeler transformaciju da postigne manje veličine datoteka od .gz, ali mu je potrebno više vremena za kompresiju i dekompresiju.
Zašto bzip2 ima komandu 'bzip2recover'?
Zato što bzip2 kompresuje podatke u nezavisnim blokovima od 900 KB, od kojih svaki ima svoju CRC vrednost, bzip2recover može da izvuče neoštećene blokove čak i ako je deo datoteke oštećen.
Kako mogu da ekstrahujem .tar.bz2 datoteku?
Možete raspakovati .tar.bz2 datoteke direktno u Vašem veb pretraživaču pomoću aplikacije File2File.app bez pokretanja alata komandne linije.