BZIP2 arhiva (.bz2)

Bzip2 Standardno

Bzip2 (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:

Изаберите или превуците датотеке овде

100% приватна конверзија у прегледачу – датотеке никада не напуштају ваш уређај

или налепите Ctrl+V
100% Локална обрада у прегледачу 0 бајтова послато спољним серверима. Сва обрада је извршена локално у безбедном окружењу вашег прегледача.

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 68

ASCII REPREZENTACIJA: BZh

Standardizacija: Bzip2 Open Source Standard

Tehničke specifikacije

Arhitektura kontejneraStream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC
KompresijaBurrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding
Bajtni redosled (Endianness)Big-Endian bitstream framing
Prostori bojaN/A (Byte Compression Stream)
Kanali i strukturaSingle-file compressed byte stream
Maksimalne dimenzijeUnbounded stream length (supports arbitrary file sizes)
Transparentnost100% bit-exact lossless data preservation
Strimovanje i progresivno učitavanjeSequential block-by-block streaming with independent per-block CRC checksums

Tehnička matrica poređenja: BZ2 vs Konkurenti

Tehnički atributBZ2 (Trenutno)GZXZZSTD
Osnovni algoritamBurrows-Wheeler-ova transformacija (BWT)Deflate (LZ77 + Huffman)LZMA / LZMA2Finite State Entropy + LZ77
Kompresija u odnosu na Gzip10% - 20% manji od Gzip-aOsnovni standard20% - 30% manji od Gzip-a10% - 20% manji od Gzip-a
Brzina dekompresijeSpora (~30-50 MB/s)Brza (~300 MB/s)Umerena (~100 MB/s)Izuzetno brza (>1.5 GB/s)
Kontrolne sume blokova32-bitni CRC po blokuJednostruki strim CRC32Strim CRC64Strim 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

2019Federiko Mena Kintero (Federico Mena Quintero) modernizuje održavanje bzip2 kodne baze u okviru bzip3 i modernih open-source inicijativa.
2000Izdata je verzija 1.0, čime je stabilizovan bzip2 format širom Linux distribucija i upravljača paketima.
1996Džulijen Sjuard izdaje bzip2 0.15 kao zamenu za raniji bzip format koji je imao problema sa patentima.

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.