Arhiv BZIP2 (.bz2)

Bzip2 Standard

Bzip2 (BZ2) je klasični Unix stiskalni pripomoček in format datoteke brez patentov, ki ga je ustvaril Julian Seward. Uporablja Burrows-Wheelerjevo transformacijo, s katero dosega znatno boljše stiskanje kot klasični Gzip.

Pregled in metapodatki

Operacijski sistemi in analizatorji datotek identificirajo datoteke BZ2 s pregledom vodilnega binarnega zaporedja bajtov:

Izberite ali povlecite datoteke sem

100-odstotno zasebna pretvorba v brskalniku - datoteke nikoli ne zapustijo vaše naprave

ali prilepi Ctrl+V
Jamstvo o zasebnosti brez prenosa podatkov v omrežje: 0 bajtov naloženih na zunanje strežnike. Vsa obdelava je potekala lokalno v varnem območju vašega brskalnika.

Podpis glave na ravni bajtov (Čarobni bajti)

Operacijski sistemi in analizatorji datotek identificirajo datoteke BZ2 s pregledom vodilnega binarnega zaporedja bajtov:

PODPIS HEX (ZAMIK 0):

42 5A 68

REPREZENTACIJA ASCII: BZh

Standardizacija: Bzip2 Open Source Standard

Tehnične specifikacije

Arhitektura vsebnikaStream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC
StiskanjeBurrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding
Vrstni red bajtovBig-Endian bitstream framing
Barvni prostoriN/A (Byte Compression Stream)
Kanali in strukturaSingle-file compressed byte stream
Največje dimenzijeUnbounded stream length (supports arbitrary file sizes)
Prosojnost100% bit-exact lossless data preservation
Pretočno in progresivno predvajanjeSequential block-by-block streaming with independent per-block CRC checksums

Tehnična primerjalna matrika: BZ2 proti konkurenci

Tehnični atributBZ2 (Trenutno)GZXZZSTD
Osnovni algoritemBurrows-Wheelerjeva transformacija (BWT)Deflate (LZ77 + Huffman)LZMA / LZMA2Entropija končnih stanj + LZ77
Stiskanje v primerjavi z Gzipom10 % - 20 % manjše od GzipaOsnovni standard20 % - 30 % manjše od Gzipa10 % - 20 % manjše od Gzipa
Hitrost razširjanjaPočasno (~30-50 MB/s)Hitro (~300 MB/s)Zmerno (~100 MB/s)Izjemno hitro (>1,5 GB/s)
Vsote blokov32-bitni CRC na blokEnosmerni CRC32Pretočni CRC64Pretočni xxHash64

Pogosti načini okvar in vodič za heksadecimalno obnovo

Razširjanje se prekine z napako 'bzip2: Data integrity error when decompressing'.

Glavni vzrok: Obrnjen bit v stisnjenem bloku, zaradi česar obratna permutacijska matrika BWT ne prestane preverjanja CRC32.

Sanacija: Uporabite pripomoček 'bzip2recover' za reševanje nepoškodovanih blokov okoli poškodovanega sektorja.

Varnostna analiza in napadalni vektorji razčlenjevalnika

Izvedbe bzip2 vključujejo zapleteno razvrščanje bitnih tokov in razčlenjevanje Huffmanovih tabel, v katerih so se zgodovinsko pojavljale napake prekoračitve celih števil.

Znani vektorji napada

  • Prekoračitev celih števil pri dodeljevanju polja za razvrščanje BWT (npr. CVE-2016-3189).
  • Zapisovanje izven meja med sestavljanjem tabele za dekodiranje Huffman.
  • Zavrnitev storitve zaradi patoloških vzorcev vnosa, ki povzročajo najslabši možni čas kvadratnega razvrščanja BWT.

Obrambne najboljše prakse:

Zgodovinski izvor in mejniki

2019Federico Mena Quintero posodobi vzdrževanje izvorne kode bzip2 v okviru pobud bzip3 in sodobnih odprtokodnih projektov.
2000Izdana je različica 1.0, ki stabilizira format bzip2 v različnih distribucijah Linuxa in upravljalnikih paketov.
1996Julian Seward izda bzip2 0.15 kot zamenjavo za prejšnji format bzip, ki je imel težave s patenti.

Ključne prednosti

  • Dosledno prekaša klasični Gzip za 10 % do 20 % pri izvorni kodi arhivov tar, sistemskih dnevnikih in besedilnih podatkovnih bazah.
  • Neodvisna bločna arhitektura (od 100k do 900k) vključuje 32-bitne vsote CRC na posamezen blok za zanesljivo preverjanje celovitosti.
  • Univerzalna izvorna dostopnost v vseh ukaznih distribucijah Linux, BSD in macOS.

Tehnične omejitve in slabosti

  • Znatno počasnejša hitrost stiskanja in razširjanja v primerjavi s sodobnimi algoritmi, kot je Zstandard.
  • Stiskanje samo ene datoteke: zahteva združevanje s TAR (.tar.bz2) za pakiranje več datotek ali mape.
  • Večja poraba CPE med razširjanjem v primerjavi z Gzipom ali Zstd.

Zanimive tehnične malenkosti

  • Magična bajta 'BZh' pomenita 'Burrows-Wheeler Zip Huffman', sledi pa jima števka (od '1' do '9'), ki označuje velikost bloka v stotih kilobajtih (npr. 'BZh9' = 900 KB).
  • Izvorna koda jedra Linuxa je bila več kot desetletje distribuirana izključno v formatu .tar.bz2, preden se je preselila na .xz.
  • Burrows-Wheelerjeva transformacija ne stiska podatkov neposredno; preureja vrstni red znakov tako, da se enake črke združijo, zaradi česar jih je mogoče enostavno stisniti s Huffmanovim kodiranjem.

Pogosta tehnična vprašanja

Kakšna je razlika med .gz in .bz2?

.bz2 uporablja Burrows-Wheelerjevo transformacijo za doseganje manjše velikosti datotek kot .gz, vendar traja dlje časa za stiskanje in razširjanje.

Zakaj ima bzip2 ukaz 'bzip2recover'?

Ker bzip2 stiska podatke v neodvisnih 900 KB blokih, od katerih ima vsak svojo kontrolno vsoto CRC, lahko bzip2recover izvleče nepoškodovane bloke, tudi če je del datoteke poškodovan.

Kako lahko razširim datoteko .tar.bz2?

Datoteke .tar.bz2 lahko razširite neposredno v spletnem brskalniku sorazmeroma enostavno z uporabo File2File.app, ne da bi zaganjali orodja v ukazni vrstici.