BZIP2 arhiiv (.bz2)

Bzip2 Standard

Bzip2 (BZ2) on klassikaline patendivaba Unixi tihendusutiliit ja failivorming, mille lõi Julian Seward ja mis kasutab Burrows-Wheeleri teisendust, et saavutada oluliselt tihedam tihendus kui klassikalisel Gzipil.

Kontrolli ja metaandmed

Operatsioonisüsteemid ja failianalüsaatorid tuvastavad BZ2 faile, kontrollides algset binaarset baidijada:

Vali või lohista failid siia

100% privaatne konversioon brauseris - failid ei lahku kunagi sinu seadmest

või kleebi Ctrl+V
Null-võrguülekande privaatsusgarantii: 0 baiti laaditakse üles välistesse serveritesse. Kogu töötlemine toimub lokaalselt sinu brauseri liivakastis.

Baidi-taseme päise allkiri (maagilised baidid)

Operatsioonisüsteemid ja failianalüsaatorid tuvastavad BZ2 faile, kontrollides algset binaarset baidijada:

HEX-ALLKIRI (NIHE 0):

42 5A 68

ASCII-ESITUS: BZh

Standardiseerimine: Bzip2 Open Source Standard

Tehnilised andmed

Konteineri arhitektuurStream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC
TihendamineBurrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding
Baitide järjekord (Endianness)Big-Endian bitstream framing
VärviruumidN/A (Byte Compression Stream)
Kanalid ja struktuurSingle-file compressed byte stream
Max mõõtmedUnbounded stream length (supports arbitrary file sizes)
Läbipaistvus100% bit-exact lossless data preservation
Voogedastus ja progressiivsusSequential block-by-block streaming with independent per-block CRC checksums

Tehniline võrdlusmaatriks: BZ2 vs konkurendid

Tehniline atribuutBZ2 (Praegune)GZXZZSTD
PõhialgoritmBurrows-Wheeleri teisendus (BWT)Tühjenda (LZ77 + Huffman)LZMA / LZMA2Lõpliku oleku entroopia + LZ77
Tihendus võrreldes Gzipiga10% - 20% väiksem kui GzipVõrdlusalus20% - 30% väiksem kui Gzip10% - 20% väiksem kui Gzip
Lahtipakkimise kiirusAeglane (~30-50 MB/s)Kiire (~300 MB/s)Mõõdukas (~100 MB/s)Väga kiire (>1,5 GB/s)
Ploki kontrollsummadPlokipõhine 32-bitine CRCÜhe voo CRC32Voo CRC64Voo xxHash64

Levinud riknemisvead ja heksataaste juhend

Lahtipakkimine katkeb veateatega 'bzip2: Data integrity error when decompressing'.

Juurpõhjus: Ümberpööratud bitt tihendatud plokis, mis põhjustab BWT pöördpermutatsiooni maatriksi ebaõnnestumise CRC32 valideerimisel.

Taastamine: Kasutage utiliiti 'bzip2recover', et päästa kahjustatud sektori ümber olevad vigastamata plokid.

Turvaanalüüs ja parsimisründevektorid

Bzip2 implementatsioonid hõlmavad keerulist bitivoo sortimist ja Huffmani tabeli analüüsi, milles on ajalooliselt esinenud täisarvude ületäitumise vigu.

Teadaolevad ründavektorid

  • Täisarvu ületäitumine BWT sortimise massiivi eraldamisel (nt CVE-2016-3189).
  • Piiridest väljas kirjutamine Huffmani dekodeerimistabeli koostamise ajal.
  • Teenusetõkestus (DoS) patoloogiliste sisendmustrite kaudu, mis põhjustavad halvima juhu ruutkujulisi BWT sortimisaegu.

Kaitsealased parimad tavad:

Ajalooline taust ja verstapostid

2019Federico Mena Quintero moderniseerib bzip2 lähtekoodi hooldust bzip3 ja kaasaegsete avatud lähtekoodiga algatuste raames.
2000Ilmub versioon 1.0, mis stabiliseerib bzip2 vormingu Linuxi distributsioonides ja pakendihaldurites.
1996Julian Seward annab välja bzip2 0.15, et asendada varasem bzipi vorming, millel oli patendiga seotud probleeme.

Peamised eelised

  • Ületab järjepidevalt klassikalist Gzipi 10% kuni 20% võrra lähtekoodi tar-arhiivide, süsteemilogide ja tekstipõhiste andmebaaside puhul.
  • Sõltumatu plokkarhitektuur (100k kuni 900k) sisaldab plokipõhiseid 32-bitiseid CRC-kontrollsummasid tugeva terviklikkuse kontrolli tagamiseks.
  • Universaalne olemuslik saadavus kõigis Linuxi, BSD ja macOS käsurea distributsioonides.

Tehnilised piirangud ja puudused

  • Märgatavalt aeglasemad tihendus- ja lahtipakkimiskiirused võrreldes kaasaegsete algoritmidega nagu Zstandard.
  • Ainult ühele failile mõeldud tihendus: nõuab sidumist TAR-iga (.tar.bz2), et pakendada mitu faili või kataloogi.
  • Suurem protsessorikasutus lahtipakkimisel võrreldes Gzipi või Zstd-ga.

Huvitavaid tehnilisi fakte

  • Maagilised baidid 'BZh' tähistavad fraasi 'Burrows-Wheeler Zip Huffman', millele järgneb number ('1' kuni '9'), mis tähistab ploki suurust sadades kilobaididena (nt 'BZh9' = 900 KB).
  • Linuxi tuuma lähtekoodi levitati üle kümne aasta eranditult vormingus .tar.bz2 enne versioonile .xz üleminekut.
  • Burrows-Wheeleri teisendus ei tihenda andmeid otse; see permuteerib märkide järjekorda nii, et identsed tähed koonduvad kokku, muutes need Huffman-kodeeringu abil hõlpsasti tihendatavaks.

Korduma kippuvad tehnilised küsimused

Mis vahe on .gz- ja .bz2-failidel?

.bz2 kasutab Burrowsi-Wheeleri teisendust, et saavutada .gz-st väiksem failimaht, kuid selle tihendamine ja lahtipakkimine võtab rohkem aega.

Miks on bzip2-l käsk "bzip2recover"?

Kuna bzip2 pakib andmeid sõltumatutesse 900 KB suurustesse plokkidesse, millest igaühel on oma CRC, suudab bzip2recover eraldada kahjustamata plokid isegi siis, kui osa failist on rikutud.

Kuidas ma saan .tar.bz2-faili lahti pakkida?

Saate .tar.bz2-failid otse oma veebibrauseris lahti pakkida rakenduse File2File.app abil, ilma et peaksite käsureatööriistu käivitama.