BZIP2-arkiv (.bz2)

Bzip2 Standard

Bzip2 (BZ2) er eit klassisk, patentfritt Unix-komprimeringsverktøy og filformat som vart skapt av Julian Seward. Det nyttar Burrows-Wheeler-transformatet for å oppnå merkbart tettare kompresjon enn klassisk Gzip.

Undersøk og metadata

Operativsystemer og filanalysatorer identifiserer BZ2-filer ved å undersøke den innledende binære bytesekvensen:

Velg eller slipp filer her

100 % privat in-browser-konvertering - filer forlater aldri enheten din

eller lim inn Ctrl+V
Personverngaranti uten nettverksoverføring: 0 byte lastet opp til eksterne servere. All behandling skjedde lokalt i nettlesersandkassen din.

Byte-nivå hodesignatur (Magic Bytes)

Operativsystemer og filanalysatorer identifiserer BZ2-filer ved å undersøke den innledende binære bytesekvensen:

HEX-SIGNATUR (OFFSET 0):

42 5A 68

ASCII-REPRESENTASJON: BZh

Standardisering: Bzip2 Open Source Standard

Tekniske spesifikasjoner

BeholderarkitekturStream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC
KomprimeringBurrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding
BytterekkefølgeBig-Endian bitstream framing
FargeromN/A (Byte Compression Stream)
Kanaler og strukturSingle-file compressed byte stream
Maks. dimensjonerUnbounded stream length (supports arbitrary file sizes)
Gjennomsiktighet100% bit-exact lossless data preservation
Strømming og progressivSequential block-by-block streaming with independent per-block CRC checksums

Teknisk sammenligningsmatrise: BZ2 vs konkurrenter

Teknisk attributtBZ2 (Gjeldende)GZXZZSTD
KjernealgoritmeBurrows-Wheeler-transformat (BWT)Tømme (LZ77 + Huffman)LZMA / LZMA2Endelig tilstandsentsropi + LZ77
Kompresjon vs Gzip10 % - 20 % mindre enn GzipBasisstandard20 % - 30 % mindre enn Gzip10 % - 20 % mindre enn Gzip
DekomprimeringsfartTreg (~30-50 MB/s)Rask (~300 MB/s)Moderat (~100 MB/s)Lynrask (>1,5 GB/s)
Blokksjekksummar32-bits CRC per blokkEnkeltsveims CRC32Sveims CRC64Sveims xxHash64

Vanlige korrupsjonsmoduser og heksadesimal gjenopprettingsveiledning

Utrekkinga avbryt med 'bzip2: Data integrity error when decompressing'.

Underliggende årsak: Vendt bit i komprimert blokk som gjer at den inverse permutasjonsmatrisa til BWT mislykkast med CRC32-validering.

Utbedring: Bruk verktøyet 'bzip2recover' for å berge uskadde blokker rundt den korrupte sektoren.

Sikkerhetsanalyse og parser-angrepsvektorer

Bzip2-implementeringar involverer kompleks bitstrømsortering og Huffman-tabelltolking som historisk sett har opplevd heiltalsoverflytingsfeil.

Kjente angrepsvektorer

  • Heiltalsoverflyting i allokeringa av BWT-sorteringsmatrisa (t.eks. CVE-2016-3189).
  • Utsyn-utanfor-grenser-skriving under samansetting av Huffman-dekodingstabell.
  • Tenestenekt (DoS) gjennom patologiske inndatamønstre som forårsakar verstefalls kvadratiske BWT-sorteringstider.

Beste praksis for forsvar:

Historisk opprinnelse og milepæler

2019Federico Mena Quintero moderniserer vedlikehaldet av bzip2-kodegrunnlaget under bzip3 og moderne opne kjeldekode-initiativ.
2000Versjon 1.0 vert utgjeven, noko som stabiliserer bzip2-formatet på tvers av Linux-distribusjonar og pakkebehandlarar.
1996Julian Seward gjev ut bzip2 0.15 for å erstatte det tidlegare bzip-formatet som hadde patentbekymringar.

Viktige fordeler

  • Utpregar seg konsekvent med 10 % til 20 % betre resultat enn klassisk Gzip på kjeldekodetarballar, systemloggar og tekstdatabasar.
  • Uavhengig blokkarkitektur (100k til 900k) inkluderer 32-bits CRC-sjekksum per blokk for robust integritetskontroll.
  • Universell og innebygd tilgjengeleghet på tvers av alle kommandolinjedistribusjonar for Linux, BSD og macOS.

Tekniske begrensninger og ulemper

  • Merkbart tregare komprimerings- og dekomprimeringsfart samanlikna med moderne algoritmar som Zstandard.
  • Berre kompresjon av einskildfiler: krev paring med TAR (.tar.bz2) for å pakke fleire filer eller mapper.
  • Høgare CPU-bruk under dekompresjon enn Gzip eller Zstd.

Interessante tekniske fakta

  • Dei magiske bytarane «BZh» står for «Burrows-Wheeler Zip Huffman», etterfulgt av eitt siffer («1» til «9») som angjev blokkstorleiken i hundrevis av kilobyte (t.eks. «BZh9» = 900 KB).
  • Kjeldekoden til Linux-kjernen vart distribuert eksklusivt i .tar.bz2-format i over eit decennium før han migrerte til .xz.
  • Burrows-Wheeler-transformatet komprimerer ikkje data direkte; det permuterer rekkjefølgja på teikn slik at identiske bokstøver hopar seg saman, noko som gjer dei enkelt komprimerbare med Huffman-kodning.

Ofte stilte tekniske spørsmål

Hva er forskjellen mellom .gz og .bz2?

.bz2 bruker Burrows-Wheeler-transformasjonen for å oppnå mindre filstørrelser enn .gz, men det tar lengre tid å komprimere og dekomprimere.

Hvorfor har bzip2 en «bzip2recover»-kommando?

Fordi bzip2 komprimerer data i uavhengige blokker på 900 KB, hver med sin egen CRC, kan bzip2recover hente ut uskadede blokker selv om deler av filen er korrupte.

Hvordan kan jeg pakke ut en .tar.bz2-fil?

Du kan pakke ut .tar.bz2-filer direkte i nettleseren din med File2File.app uten å kjøre kommandolinjeverktøy.