BZIP2-arkisto (.bz2)

Bzip2 Standardi

Bzip2 (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:

Valitse tai pudota tiedostot tähän

100 % yksityinen selaimen sisäinen muunnos - tiedostot eivät poistu laitteeltasi

tai liitä Ctrl+V
Tietosuojatakuu: 0 % verkkosiirtoa 0 tavua ladattu ulkoisille palvelimille. Kaikki käsittely tapahtui paikallisesti selaimen hiekkalaatikossa.

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 68

ASCII-ESITYSTAPA: BZh

Standardointi: Bzip2 Open Source Standard

Tekniset tiedot

SäiliöarkkitehtuuriStream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC
PakkausBurrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding
Tavujärjestys (Endianness)Big-Endian bitstream framing
VäriavaruudetN/A (Byte Compression Stream)
Kanavat ja rakenneSingle-file compressed byte stream
Suurimmat mitatUnbounded stream length (supports arbitrary file sizes)
Läpinäkyvyys100% bit-exact lossless data preservation
Suoratoisto ja progressiivinen latausSequential block-by-block streaming with independent per-block CRC checksums

Tekninen vertailumatriisi: BZ2 vs. kilpailijat

Tekninen attribuuttiBZ2 (Nykyinen)GZXZZSTD
YdinalgoritmiBurrows - Wheeler-muunnos (BWT)Tyhjennys (LZ77 + Huffman)LZMA / LZMA2Äärellisen tilan entropia + LZ77
Pakkaus vs. Gzip10% - 20% pienempi kuin GzipPerustaso20% - 30% pienempi kuin Gzip10% - 20% pienempi kuin Gzip
PurkunopeusHidas (~30 - 50 Mt/s)Nopea (~300 Mt/s)Kohtalainen (~100 Mt/s)Erittäin nopea (>1,5 Gt/s)
Lohkon tarkistussummatLohkokohtainen 32-bittinen CRCYhden virran CRC32Virran CRC64Virran 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

2019Federico Mena Quintero nykyaikaistaa bzip2-lähdekoodin ylläpitoa bzip3- ja muiden avoimen lähdekoodin hankkeiden puitteissa.
2000Versio 1.0 julkaistaan, mikä vakiinnuttaa bzip2-muodon Linux-jakeluissa ja pakettienhallinnassa.
1996Julian Seward julkaisee bzip2 0.15:n korvaamaan varhaisemman bzip-muodon, johon liittyi patenttihuolia.

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öä.