BZIP2 arhiv (.bz2)
Bzip2 StandardnoBzip2 (BZ2) je klasični Unix uslužni program i format datoteke za kompresiju bez gubitaka bez patenata, koji je stvorio Julian Seward, a koristi Burrows-Wheelerovu transformaciju kako bi postigao znatno gušću kompresiju od klasičnog Gzipa.
Pregledaj i metapodaci
Operativni sustavi i alati za analizu datoteka identificiraju BZ2 datoteke provjerom početnog niza binarnih bajtova:
Potpis zaglavlja na razini bajtova (Magic Bytes)
Operativni sustavi i alati za analizu datoteka identificiraju BZ2 datoteke provjerom početnog niza binarnih bajtova:
HEX POTPIS (POMAK 0):
42 5A 68ASCII PRIKAZ: BZh
Standardizacija: Bzip2 Open Source Standard
Tehničke specifikacije
| Arhitektura spremnika | 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 |
| 字节序 | 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) |
| Prozirnost | 100% bit-exact lossless data preservation |
| Streaming i progresivno | Sequential block-by-block streaming with independent per-block CRC checksums |
Tehnička matrica usporedbe: BZ2 vs Konkurencija
| Tehnički atribut | BZ2 (Trenutno) | GZ | XZ | ZSTD |
|---|---|---|---|---|
| Glavni algoritam | Burrows-Wheelerova transformacija (BWT) | Deflate (LZ77 + Huffman) | LZMA / LZMA2 | Finite State Entropy + LZ77 |
| Kompresija u odnosu na Gzip | 10% - 20% manji od Gzipa | Osnovni standard | 20% - 30% manji od Gzipa | 10% - 20% manji od Gzipa |
| Brzina dekompresije | Sporo (~30-50 MB/s) | Brzo (~300 MB/s) | Umjereno (~100 MB/s) | Izuzetno brzo (>1.5 GB/s) |
| Kontrolni zbrojevi blokova | 32-bitni CRC po bloku | Jednostruki stream CRC32 | Struja CRC64 | Struja xxHash64 |
Uobičajeni načini oštećenja i vodič za heksadecimalni oporavak
Ekstrakcija se prekida s porukom 'bzip2: Data integrity error when decompressing'.
Temeljni uzrok: Promijenjen bit u kompresiranom bloku koji uzrokuje neuspjeh CRC32 provjere inverzne permutacijske matrice BWT-a.
Oporavak: Upotrijebite uslužni program 'bzip2recover' za spašavanje neoštećenih blokova koji okružuju oštećeni sektor.
Sigurnosna analiza i vektori napada na parser
Implementacije Bzip2-a uključuju složeno sortiranje bitstream-a i parsiranje Huffmanovih tablica koje su u prošlosti imale pogreške preljevanja cijelih brojeva (integer overflow).
Poznati vektori napada
- Preljevanje cijelih brojeva pri dodjeli polja za BWT sortiranje (npr. CVE-2016-3189).
- Pisanje izvan granica (out-of-bounds write) tijekom sastavljanja tablice za Huffmanovo dekodiranje.
- Uskraćivanje usluge (DoS) kroz patološke uzorke unosa koji uzrokuju najgore slučajeve kvadratnog vremena BWT sortiranja.
Najbolje obrambene prakse:
Povijesni izvori i prekretnice
Ključne prednosti
- Dosljedno nadmašuje klasični Gzip za 10% do 20% na izvornim kodovima (tarballovima), sistemskim zapisima (logovima) i tekstualnim bazama podataka.
- Nezavisna blok-arhitektura (100k do 900k) uključuje 32-bitne CRC kontrolne zbrojeve po blokovima za robusnu provjeru integriteta.
- Univerzalna izvorna dostupnost na svim Linux, BSD i macOS naredbenim distribucijama.
Tehnička ograničenja i nedostaci
- Znatno sporije brzine kompresije i dekompresije u usporedbi s modernim algoritmima poput Zstandarda.
- Kompresija samo jedne datoteke: zahtijeva uparivanje s TAR-om (.tar.bz2) za pakiranje više datoteka ili mapa.
- Veća potrošnja CPU-a tijekom dekompresije nego kod Gzipa ili Zstd-a.
Zanimljive tehničke činjenice
- Magijske oznake 'BZh' označavaju 'Burrows-Wheeler Zip Huffman', a nakon njih slijedi znamenka (od '1' do '9') koja označava veličinu bloka u stotinama kilobajta (npr. 'BZh9' = 900 KB).
- Izvorni kod Linux kernel-a distribuirao se isključivo u .tar.bz2 formatu više od desetljeća prije migracije na .xz.
- Burrows-Wheelerova transformacija ne kompresira podatke izravno; ona permutira redoslijed znakova tako da se identična slova grupiraju zajedno, čineći ih trivijalno kompresibilnima pomoću Huffmanovog kodiranja.
Često postavljana tehnička pitanja
Koja je razlika između .gz i .bz2?
.bz2 koristi Burrows-Wheelerovu transformaciju kako bi postigao manje veličine datoteka od .gz, ali mu treba više vremena za kompresiju i dekompresiju.
Zašto bzip2 ima naredbu 'bzip2recover'?
Budući da bzip2 komprimira podatke u neovisnim blokovima od 900 KB, od kojih svaki ima svoj CRC, bzip2recover može izdvojiti neoštećene blokove čak i ako je dio datoteke oštećen.
Kako mogu izdvojiti .tar.bz2 datoteku?
Možete otpakirati .tar.bz2 datoteke izravno u svom web pregledniku pomoću File2File.app bez pokretanja alata komandne linije.