BZIP2-arkiv (.bz2)

Bzip2 Standard

Bzip2 (BZ2) er et klassisk patentfrit Unix-komprimeringsværktøj og filformat skabt af Julian Seward, som benytter Burrows-Wheeler-transformationen til at opnå en væsentligt strammere komprimering end klassisk Gzip.

Undersøg & Metadata

Operativsystemer og filanalysatorer identificerer BZ2-filer ved at inspicere den indledende binære bytesekvens:

Vælg eller træk filer hertil

100% privat konvertering i browseren - filer forlader aldrig din enhed

eller indsæt Ctrl+V
Privatlivsgaranti uden netværksoverførsel: 0 bytes uploadet til eksterne servere. Al behandling foregik lokalt i din browsers sandkasse.

Byte-niveau Header-signatur (Magic Bytes)

Operativsystemer og filanalysatorer identificerer BZ2-filer ved at inspicere den indledende binære bytesekvens:

HEX-SIGNATUR (OFFSET 0):

42 5A 68

ASCII-REPRÆSENTATION: BZh

Standardisering: Bzip2 Open Source Standard

Tekniske specifikationer

ContainerarkitekturStream 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
BytterejsningBig-Endian bitstream framing
FarverumN/A (Byte Compression Stream)
Kanaler og strukturSingle-file compressed byte stream
Maks. dimensionerUnbounded stream length (supports arbitrary file sizes)
Gennemsigtighed100% bit-exact lossless data preservation
Streaming og progressivSequential block-by-block streaming with independent per-block CRC checksums

Tekniske sammenligningsmatrix: BZ2 vs. konkurrenter

Teknisk attributBZ2 (Aktuel)GZXZZSTD
KernealgoritmeBurrows-Wheeler-transformation (BWT)Deflate (LZ77 + Huffman)LZMA / LZMA2Finite State Entropy + LZ77
Komprimering vs Gzip10 % - 20 % mindre end GzipGrundlæggende standard20 % - 30 % mindre end Gzip10 % - 20 % mindre end Gzip
DekomprimeringshastighedLangsom (~30-50 MB/s)Hurtig (~300 MB/s)Moderat (~100 MB/s)Lynhurtig (>1.5 GB/s)
Blok-tjeksummer32-bit CRC pr. blokEnkeltstrøms CRC32Strøms CRC64Strøms xxHash64

Almindelige korruptionstilstande og hex-gendannelsesvejledning

Udpakning afbrydes med 'bzip2: Data integrity error when decompressing'.

Grundlæggende årsag: Omvendt bit i komprimeret blok, der gør, at BWT's inverse permutationsmatrix fejler CRC32-validering.

Gendannelse: Brug 'bzip2recover'-værktøjet til at bjerge ubeskadigede blokke omkring den beskadigede sektor.

Sikkerhedsanalyse og parser-angrebsvektorer

Bzip2-implementeringer involverer kompleks bitstrømsortering og Huffman-tabelanalyse, som historisk set har haft heltalsoverløbsfejl.

Kendte angrebsvektorer

  • Heltalsoverløb i allokering af BWT-sorteringsarray (f.eks. CVE-2016-3189).
  • Udenfor-grænserne-skrivning under samling af Huffman-afkodningstabel.
  • Nægtelse af tjeneste (DoS) gennem patologiske inputmønstre, der forårsager værst-tænkelige kvadratiske BWT-sorteringstider.

Defensive bedste praksisser:

Historisk oprindelse og milepæle

2019Federico Mena Quintero moderniserer vedligeholdelsen af bzip2-koden under bzip3 og moderne open source-initiativer.
2000Version 1.0 udgives, hvilket stabiliserer bzip2-formatet på tværs af Linux-distributioner og pakkeforvaltere.
1996Julian Seward udgiver bzip2 0.15 som erstatning for det tidligere bzip-format, der havde patentproblemer.

Vigtige fordele og styrker

  • Overgår konsekvent klassisk Gzip med 10 % til 20 % på kildekodetarballs, systemlogfiler og tekstdatabaser.
  • Uafhængig blokarkitektur (100k til 900k) indeholder 32-bit CRC-tjeksummer pr. blok for robust integritetskontrol.
  • Universel indbygget tilgængelighed på tværs af alle Linux-, BSD- og macOS-kommandolinjedistributioner.

Tekniske begrænsninger og ulemper

  • Betydeligt langsommere komprimerings- og dekomprimeringshastigheder sammenlignet med moderne algoritmer som Zstandard.
  • Kun enkeltfilskomprimering: kræver parring med TAR (.tar.bz2) for at pakke flere filer eller mapper.
  • Højere CPU-forbrug under dekomprimering end Gzip eller Zstd.

Interessant teknisk trivia

  • De 'BZh'-magiske bytes står for 'Burrows-Wheeler Zip Huffman', efterfulgt af et ciffer ('1' til '9'), der angiver blokstørrelsen i hundreder af kilobyte (f.eks. 'BZh9' = 900 KB).
  • Linux-kernens kildekode blev distribueret udelukkende i .tar.bz2-formatet i over et årti, før den migrerede til .xz.
  • Burrows-Wheeler-transformationen komprimerer ikke data direkte; den permuterer rækkefølgen af tegn, så identiske bogstaver klumper sig sammen, hvilket gør dem nemt komprimerbare via Huffman-kodning.

Ofte stillede tekniske spørgsmål

Hvad er forskellen mellem .gz og .bz2?

.bz2 bruger Burrows-Wheeler-transformationen til at opnå mindre filstørrelser end .gz, men det tager længere tid at komprimere og dekomprimere.

Hvorfor har bzip2 en 'bzip2recover'-kommando?

Da bzip2 komprimerer data i uafhængige blokke på 900 KB, hver med sin egen CRC, kan bzip2recover udpakke ubeskadigede blokke, selv hvis en del af filen er korrupt.

Hvordan kan jeg udpakke en .tar.bz2-fil?

Du kan udpakke .tar.bz2-filer direkte i din netbrowser med File2File.app uden at køre kommandolinjeværktøjer.