Arhivă BZIP2 (.bz2)

Bzip2 Standard

Bzip2 (BZ2) este un utilitar clasic de compresie Unix fără brevete și un format de fișier creat de Julian Seward, care utilizează transformata Burrows-Wheeler pentru a obține o compresie semnificativ mai strânsă decât clasicul Gzip.

Inspectează și Metadate

Sistemele de operare și analizatoarele de fișiere identifică fișierele BZ2 prin inspectarea secvenței binare inițiale:

Selectează sau plasează fișierele aici

Conversie 100% privată în browser - fișierele nu părăsesc niciodată dispozitivul tău

sau lipește Ctrl+V
Garanție de confidențialitate cu zero transmisie în rețea: 0 octeți încărcați pe servere externe. Toată procesarea a avut loc local în sandbox-ul browserului tău.

Semnătura antetului la nivel de octet (Magic Bytes)

Sistemele de operare și analizatoarele de fișiere identifică fișierele BZ2 prin inspectarea secvenței binare inițiale:

SEMNĂTURĂ HEX (OFFSET 0):

42 5A 68

REPREZENTARE ASCII: BZh

Standardizare: Bzip2 Open Source Standard

Specificații tehnice

Arhitectură containerStream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC
CompresieBurrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding
Endianitatea octețilorBig-Endian bitstream framing
Spații de culoareN/A (Byte Compression Stream)
Canale și structurăSingle-file compressed byte stream
Dimensiuni maximeUnbounded stream length (supports arbitrary file sizes)
Transparență100% bit-exact lossless data preservation
Streaming și progresivSequential block-by-block streaming with independent per-block CRC checksums

Matrice de comparație tehnică: BZ2 vs Competitori

Atribut tehnicBZ2 (Curent)GZXZZSTD
Algoritm de bazăTransformata Burrows-Wheeler (BWT)Deflate (LZ77 + Huffman)LZMA / LZMA2Finite State Entropy + LZ77
Compresie vs GzipCu 10% - 20% mai mic decât GzipStandard de bazăCu 20% - 30% mai mic decât GzipCu 10% - 20% mai mic decât Gzip
Viteză de decompresieLentă (~30-50 MB/s)Rapidă (~300 MB/s)Moderată (~100 MB/s)Foarte rapidă (>1,5 GB/s)
Sume de control pe blocCRC pe 32 de biți per blocCRC32 pentru flux unicCRC64 pentru fluxxxHash64 pentru flux

Moduri comune de corupție și ghid de recuperare hexazecimală

Extragerea se oprește cu mesajul „bzip2: Data integrity error when decompressing".

Cauză principală: Bit inversat în blocul comprimat, cauzând eșecul validării CRC32 pentru matricea de permutare inversă BWT.

Recuperare: Utilizați utilitarul „bzip2recover" pentru a recupera blocurile nedamage din jurul sectorului corupt.

Analiză de securitate și vectori de atac asupra parserului

Implementările Bzip2 implică sortare complexă a fluxului de biți și analiză a tabelelor Huffman care au prezentat istoric erori de depășire de întregi (integer overflow).

Vectori de atac cunoscuți

  • Depășire de întregi în alocarea matricei de sortare BWT (de exemplu, CVE-2016-3189).
  • Scriere în afara limitelor în timpul asamblării tabelului de decodare Huffman.
  • Refuz de serviciu prin modele de intrare patologice care cauzează timpi de sortare BWT pătratici în cel mai rău caz.

Cele mai bune practici de securitate:

Origini istorice și repere

2019Federico Mena Quintero modernizează întreținerea bazei de cod bzip2 în cadrul bzip3 și a inițiativelor moderne open-source.
2000Este lansată versiunea 1.0, stabilizând formatul bzip2 în toate distribuțiile Linux și gestionarele de pachete.
1996Julian Seward lansează bzip2 0.15 pentru a înlocui formatul bzip anterior, care prezenta probleme legate de brevete.

Avantaje cheie și beneficii

  • Depășește în mod constant clasicul Gzip cu 10% până la 20% pe arhivele de cod sursă tar, jurnalele de sistem și bazele de date text.
  • Arhitectura de blocuri independente (100k până la 900k) include sume de control CRC pe 32 de biți per bloc pentru o verificare robustă a integrității.
  • Disponibilitate nativă universală în toate distribuțiile Linux, BSD și macOS cu linie de comandă.

Limitări tehnice și dezavantaje

  • Viteze de compresie și decompresie semnificativ mai lente în comparație cu algoritmii moderni precum Zstandard.
  • Compresie doar pentru fișiere individuale: necesită asocierea cu TAR (.tar.bz2) pentru a împacheta mai multe fișiere sau directoare.
  • Consum mai mare de CPU în timpul decompresiei decât Gzip sau Zstd.

Curiozități tehnice interesante

  • Octeții magici „BZh" reprezintă „Burrows-Wheeler Zip Huffman", urmați de o cifră (de la „1" la „9") care indică dimensiunea blocului în sute de kiloocteți (de exemplu, „BZh9" = 900 KB).
  • Codul sursă al nucleului Linux a fost distribuit exclusiv în format .tar.bz2 timp de peste un deceniu înainte de a migra la .xz.
  • Transformata Burrows-Wheeler nu comprimă datele în mod direct; ea permutează ordinea caracterelor astfel încât literele identice să se grupeze, făcându-le ușor de comprimat prin codificare Huffman.

Întrebări tehnice frecvente

Care este diferența dintre .gz și .bz2?

.bz2 folosește transformarea Burrows-Wheeler pentru a obține dimensiuni de fișiere mai mici decât .gz, însă durează mai mult să comprime și să dezarhiveze.

De ce are bzip2 o comandă numită „bzip2recover”?

Deoarece bzip2 comprimă datele în blocuri independente de 900 KB, fiecare având propriul cod CRC, bzip2recover poate extrage blocurile nedeteriorate chiar și atunci când o parte a fișierului este coruptă.

Cum pot extrage un fișier .tar.bz2?

Puteți despacheta fișiere .tar.bz2 direct în browserul web cu File2File.app, fără a rula instrumente în linia de comandă.