BZIP2-arkisto (.bz2)
Bzip2 StandardiBzip2 (BZ2) on klassikkinen, patenttivapaa Unix-pakkaustyökalu ja tiedostomuoto, jonka loi Julian Seward. Se hyödyntää Burrows - Wheeler-muunnosta saavuttaakseen huomattavasti tiiviimmän pakkauksen kuin perinteinen Gzip.
Tarkastele ja metatiedot
Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat BZ2-tiedostot tarkistamalla tiedoston alun binäärisarjan:
Tavutason otsikon allekirjoitus (Magic Bytes)
Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat BZ2-tiedostot tarkistamalla tiedoston alun binäärisarjan:
HEX-ALLEKIRJOITUS (OFFSET 0):
42 5A 68ASCII-ESITYSTAPA: BZh
Standardointi: Bzip2 Open Source Standard
Tekniset tiedot
| Säiliöarkkitehtuuri | Stream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC |
| Pakkaus | Burrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding |
| Tavujärjestys (Endianness) | Big-Endian bitstream framing |
| Väriavaruudet | N/A (Byte Compression Stream) |
| Kanavat ja rakenne | Single-file compressed byte stream |
| Suurimmat mitat | Unbounded stream length (supports arbitrary file sizes) |
| Läpinäkyvyys | 100% bit-exact lossless data preservation |
| Suoratoisto ja progressiivinen lataus | Sequential block-by-block streaming with independent per-block CRC checksums |
Tekninen vertailumatriisi: BZ2 vs. kilpailijat
| Tekninen attribuutti | BZ2 (Nykyinen) | GZ | XZ | ZSTD |
|---|---|---|---|---|
| Ydinalgoritmi | Burrows - Wheeler-muunnos (BWT) | Tyhjennys (LZ77 + Huffman) | LZMA / LZMA2 | Äärellisen tilan entropia + LZ77 |
| Pakkaus vs. Gzip | 10% - 20% pienempi kuin Gzip | Perustaso | 20% - 30% pienempi kuin Gzip | 10% - 20% pienempi kuin Gzip |
| Purkunopeus | Hidas (~30 - 50 Mt/s) | Nopea (~300 Mt/s) | Kohtalainen (~100 Mt/s) | Erittäin nopea (>1,5 Gt/s) |
| Lohkon tarkistussummat | Lohkokohtainen 32-bittinen CRC | Yhden virran CRC32 | Virran CRC64 | Virran xxHash64 |
Yleiset korruptiotilat ja heksatietojehdotusopas
Purkaminen keskeytyy virheilmoitukseen 'bzip2: Data integrity error when decompressing'.
Perussyy: Kääntynyt bitti pakatussa lohkossa aiheuttaa BWT:n käänteispermutaatiomatriisin CRC32-varmennuksen epäonnistumisen.
Korjaus: Käytä 'bzip2recover'-työkalua vahingoittumattomien lohkojen pelastamiseen turmeltuneen sektorin ympäriltä.
Turvallisuusanalyysi ja jäsenninhyökkäysvektorit
Bzip2-toteutukset sisältävät monimutkaista bittivirran lajittelua ja Huffman-taulukoiden jäsennystä, joissa on historiallisesti esiintynyt kokonaislukujen ylivuotovikoja.
Tunnetut hyökkäysvektorit
- Kokonaisluvun ylivuoto BWT-lajittelutaulukon varauksessa (esim. CVE-2016-3189).
- Puskurin ulkopuolinen kirjoitus Huffman-purkutaulukon muodostuksen aikana.
- Palvelunestohyökkäys patologisten syötteiden kautta, jotka aiheuttavat pahimman tapauksen neliölliset BWT-lajitteluajat.
Parhaat puolustuskäytännöt:
Historia ja virstanpylväät
Tärkeimmät edut
- Alittaa johdonmukaisesti perinteisen Gzipin tulokset 10 - 20 % lähdekooditarhoissa, järjestelmälokeissa ja tekstitietokannoissa.
- Itsenäinen lohkoarkkitehtuuri (100k - 900k) sisältää lohkokohtaiset 32-bittiset CRC-tarkistussummat luotettavaa eheystarkistusta varten.
- Yleisesti saatavilla natiivisti kaikissa Linux-, BSD- ja macOS-komentorivijakeluissa.
Tekniset rajoitukset
- Merkittävästi hitaammat pakkaus- ja purkunopeudet verrattuna nykyaikaisiin algoritmeihin, kuten Zstandardiin.
- Vain yhden tiedoston pakkaus: edellyttää yhdistämistä TAR-tiedoston kanssa (.tar.bz2) useiden tiedostojen tai hakemistojen paketoimiseksi.
- Korkeampi suorittimen käyttöaste purun aikana kuin Gzipillä tai Zstd:llä.
Mielenkiintoisia teknisiä faktoja
- BZh-taikamerkit tulevat sanoista 'Burrows-Wheeler Zip Huffman', joita seuraa numero ('1' - '9'), joka ilmaisee lohkon koon sadoissa kilotavuissa (esim. 'BZh9' = 900 kt).
- Linux-ytimen lähdekoodia jaettiin yksinomaisesti .tar.bz2-muodossa yli vuosikymmenen ajan ennen siirtymistä .xz-muotoon.
- Burrows - Wheeler-muunnos ei pakkaa dataa suoraan; se järjestelee merkkien järjestyksen uudelleen niin, että samanlaiset kirjaimet kasaantuvat yhteen, mikä tekee niistä helposti pakattavia Huffman-koodauksella.
Usein kysytyt tekniset kysymykset
Mitä eroa on .gz- ja .bz2-tiedostoilla?
.bz2 käyttää Burrows–Wheeler-muunnosta saavuttaakseen .gz-tiedostoja pienemmän koon, mutta sen pakkaaminen ja purkaminen kestää kauemmin.
Miksi bzip2-ohjelmassa on 'bzip2recover'-komento?
Koska bzip2 pakkaa tietoa itsenäisissä 900 kt:n lohkoissa, joilla jokaisella on oma CRC-tarkistussummansa, bzip2recover pystyy poimimaan vahingoittumattomia lohkoja, vaikka osa tiedostosta olisi vioittunut.
Miten voin purkaa .tar.bz2-tiedoston?
Voit purkaa .tar.bz2-tiedostot suoraan verkkoselaimessasi File2File.app-palvelulla ilman komentorivityökalujen käyttöä.