BZIP2 archív (.bz2)

Bzip2 Štandard

Bzip2 (BZ2) je klasický unixový kompresný nástroj a formát súborov bez patentov, ktorý vytvoril Julian Seward. Využíva Burrows-Wheelerovu transformáciu na dosiahnutie výrazne lepšej kompresie než klasický Gzip.

Preskúmať a metadáta

Operačné systémy a analyzátory súborov identifikujú súbory BZ2 kontrolou počiatočnej binárnej bajtovej sekvencie:

Vyberte alebo presuňte súbory sem

100 % súkromná konverzia v prehliadači - súbory nikdy neopustia vaše zariadenie

alebo prilepiť Ctrl+V
Záruka súkromia s nulovým prenosom do siete: 0 bajtov odovzdaných na externé servery. Všetko spracovanie prebehlo lokálne v pieskovisku vášho prehliadača.

Podpis hlavičky na úrovni bajtov (Magic Bytes)

Operačné systémy a analyzátory súborov identifikujú súbory BZ2 kontrolou počiatočnej binárnej bajtovej sekvencie:

HEXADECIMÁLNY PODPIS (OFFSET 0):

42 5A 68

ASCII REPREZENTÁCIA: BZh

Štandardizácia: Bzip2 Open Source Standard

Technické špecifikácie

Architektúra kontajneraStream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC
KompresiaBurrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding
Poradie bajtov (Endianness)Big-Endian bitstream framing
Farebné priestoryN/A (Byte Compression Stream)
Kanály a štruktúraSingle-file compressed byte stream
Max. rozmeryUnbounded stream length (supports arbitrary file sizes)
Priehľadnosť100% bit-exact lossless data preservation
Streamovanie a postupné načítavanieSequential block-by-block streaming with independent per-block CRC checksums

Technická porovnávacia matica: BZ2 vs konkurenti

Technický atribútBZ2 (Aktuálne)GZXZZSTD
Základný algoritmusBurrows-Wheelerova transformácia (BWT)Deflate (LZ77 + Huffman)LZMA / LZMA2Finite State Entropy + LZ77
Kompresia vs GzipO 10 % - 20 % menší než GzipZákladný štandardO 20 % - 30 % menší než GzipO 10 % - 20 % menší než Gzip
Rýchlosť dekompresiePomalá (~30 - 50 MB/s)Rýchla (~300 MB/s)Mierna (~100 MB/s)Veľmi rýchla (>1,5 GB/s)
Kontrolné súčty blokov32-bitové CRC pre každý blokJednoduchý CRC32 prúduCRC64 prúduxxHash64 prúdu

Bežné režimy poškodenia a príručka na obnovu v hexadecimálnom kóde

Rozbaľovanie sa preruší s hlásením „bzip2: Data integrity error when decompressing".

Hlavná príčina: Zmenený bit v komprimovanom bloku, čo spôsobuje zlyhanie overenia CRC32 v inverznej permutačnej matici BWT.

Obnova: Použite nástroj „bzip2recover" na záchranu nepoškodených blokov obklopujúcich poškodený sektor.

Bezpečnostná analýza a vektory útokov na parser

Implementácie Bzip2 zahŕňajú komplexné triedenie bitového prúdu a analýzu Huffmanových tabuliek, ktoré v minulosti trpeli chybami pretečenia celých čísel.

Známe vektory útokov

  • Pretečenie celých čísel pri alokácii triediaceho poľa BWT (napr. CVE-2016-3189).
  • Zápis mimo vyhradenú pamäť pri zostavovaní tabuľky na dekódovanie pomocou Huffmanovho kódovania.
  • Odopretie služby (DoS) prostredníctvom patologických vstupných vzorov, ktoré spôsobujú najhorší prípad kvadratických časov triedenia BWT.

Najlepšie obranné postupy:

Historický pôvod a míľniky

2019Federico Mena Quintero modernizuje údržbu zdrojového kódu bzip2 v rámci iniciatív bzip3 a moderného open-source softvéru.
2000Vydaná verzia 1.0, ktorá stabilizuje formát bzip2 naprieč linuxovými distribúciami a správcami balíkov.
1996Julian Seward vydáva bzip2 0.15 ako náhradu za skorší formát bzip, ktorý mal problémy s patentmi.

Kľúčové výhody a prednosti

  • Konzistentne prekonáva klasický Gzip o 10 % až 20 % pri zdrojových tarbaloch, systémových logoch a textových databázach.
  • Nezávislá bloková architektúra (100k až 900k) obsahuje 32-bitové CRC kontrolné súčty pre každý blok na zabezpečenie robustnej kontroly integrity.
  • Univerzálna natívna dostupnosť vo všetkých distribúciách pre príkazový riadok v systémoch Linux, BSD a macOS.

Technické obmedzenia a nevýhody

  • Výrazne pomalšia rýchlosť kompresie a dekompresie v porovnaní s modernými algoritmami, ako je Zstandard.
  • Kompresia iba pre jeden súbor: vyžaduje spárovanie s archívom TAR (.tar.bz2) na zabalenie viacerých súborov alebo adresárov.
  • Vyššie zaťaženie procesora počas dekompresie v porovnaní s Gzip alebo Zstd.

Zaujímavé technické drobnosti

  • Magické bajty „BZh" znamenajú „Burrows-Wheeler Zip Huffman", po ktorých nasleduje číslica („1" až „9") označujúca veľkosť bloku v stovkách kilobajtov (napr. „BZh9" = 900 KB).
  • Zdrojový kód jadra systému Linux sa distribuoval výhradne vo formáte .tar.bz2 viac ako desaťročie, než prešiel na .xz.
  • Burrows-Wheelerova transformácia nestláča dáta priamo; permutuje poradie znakov tak, že rovnaké písmená sa zoskupia k sebe, čo uľahčuje ich kompresiu pomocou Huffmanovho kódovania.

Často kladené technické otázky

Aký je rozdiel medzi .gz a .bz2?

Prípona .bz2 využíva Burrows-Wheelerovu transformáciu na dosiahnutie menšej veľkosti súboru ako .gz, ale kompresia a dekompresia trvajú dlhšie.

Prečo má bzip2 príkaz „bzip2recover“?

Pretože bzip2 komprimuje dáta v nezávislých 900 KB blokoch, pričom každý má vlastný súčet CRC, nástroj bzip2recover dokáže extrahovať nepoškodené bloky, aj keď je časť súboru poškodená.

Ako môžem extrahovať súbor .tar.bz2?

Súbory .tar.bz2 môžete rozbaliť priamo vo webovom prehliadači pomocou aplikácie File2File.app bez nutnosti spúšťania nástrojov príkazového riadka.