BZIP2 arhīvs (.bz2)

Bzip2 Standarts

Bzip2 (BZ2) ir klasiska, no patentiem brīva Unix saspiešanas utilīta un failu formāts, ko izveidojis Džulians Sevards (Julian Seward) un kas izmanto Burrows-Wheeler transformāciju, lai panāktu ievērojami blīvāku saspiešanu nekā klasiskais Gzip.

Pārbaudīt un metadati

Operētājsistēmas un failu analizatori identificē BZ2 failus, pārbaudot sākotnējo bināro baitu secību:

Atlasiet vai velciet failus šeit

100% privāta konvertēšana pārlūkprogrammā - faili nekad neatstāj jūsu ierīci

vai ielīmējiet Ctrl+V
Privātuma garantija bez datu pārraides tīklā: 0 baitu augšupielādēti ārējos serveros. Visa apstrāde notika lokāli jūsu pārlūkprogrammas smilškastē.

Baitu līmeņa galvenes paraksts (maģiskie baiti)

Operētājsistēmas un failu analizatori identificē BZ2 failus, pārbaudot sākotnējo bināro baitu secību:

HEKSADECIMĀLAIS PARAKSTS (NOBĪDE 0):

42 5A 68

ASCII ATTEIOLOJUMS: BZh

Standartizācija: Bzip2 Open Source Standard

Tehniskās specifikācijas

Konteinera arhitektūraStream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC
SaspiešanaBurrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding
Baitu secībaBig-Endian bitstream framing
Krāsu telpasN/A (Byte Compression Stream)
Kanāli un struktūraSingle-file compressed byte stream
Maks. izmēriUnbounded stream length (supports arbitrary file sizes)
Caurspīdīgums100% bit-exact lossless data preservation
Straumēšana un progresīvā ielādeSequential block-by-block streaming with independent per-block CRC checksums

Tehniskā salīdzinājuma matrica: BZ2 pret konkurentiem

Tehniskais atribūtsBZ2 (Pašreizējais)GZXZZSTD
Galvenais algoritmsBurrows-Wheeler transformācija (BWT)Deflate (LZ77 + Hofmanis)LZMA / LZMA2Galīgo stāvokļu entropija + LZ77
Saspiešana salīdzinājumā ar GzipPar 10% - 20% mazāks nekā GzipBāzes standartsPar 20% - 30% mazāks nekā GzipPar 10% - 20% mazāks nekā Gzip
Atkausēšanas ātrumsLēns (~30-50 MB/s)Ātrs (~300 MB/s)Mērens (~100 MB/s)Ļoti ātrs (>1,5 GB/s)
Bloku kontroles summas32 bitu CRC katram blokamVienas straumes CRC32Straumes CRC64Straumes xxHash64

Biežākie bojājumu veidi un heksadecimālās atkopšanas ceļvedis

Izvilkšana tiek pārtraukta ar paziņojumu 'bzip2: Data integrity error when decompressing'.

Pamatcēlonis: Apgriezts bits saspiestajā blokā, kura dēļ BWT inversās permutācijas matrica neiztur CRC32 validāciju.

Atkopšana: Izmantojiet 'bzip2recover' utilītu, lai glābtu veselos blokus ap bojāto sektoru.

Drošības analīze un parsētāja uzbrukuma vektori

Bzip2 implementācijas ietver sarežģītu bitu straumju kārtošanu un Hofmaņa tabulu parsēšanu, kurās agrāk ir konstatētas veselu skaitļu pārpildes kļūdas.

Zināmie uzbrukuma vektori

  • Veselu skaitļu pārpilde BWT kārtošanas masīva piešķiršanā (piem., CVE-2016-3189).
  • Ārpus robežu rakstīšana Hofmaņa dekodēšanas tabulas montāžas laikā.
  • Pakalpojuma atteice, izmantojot patoloģiskus ievades modeļus, kas izraisa sliktākā gadījumā kvadrātiskus BWT kārtošanas laikus.

Aizsardzības labākā prakse:

Vēsturiskā izcelsme un pavērsieni

2019Federiko Mena Kintero (Federico Mena Quintero) modernizē bzip2 koda bāzes uzturēšanu bzip3 un moderno atvērtā pirmkoda iniciatīvu ietvaros.
2000Tiek izlaista 1.0 versija, kas stabilizē bzip2 formātu Linux izplatījumos un pakotņu pārvaldniekos.
1996Džulians Sevards izlaiž bzip2 0.15, lai aizstātu agrāko bzip formātu, kam bija ar patentiem saistītas problēmas.

Galvenās priekšrocības un plusi

  • Konsekventi pārspēj klasisko Gzip par 10% līdz 20% pirmkoda tarball failos, sistēmas žurnālos un teksta datubāzēs.
  • Neatkarīga bloku arhitektūra (100k līdz 900k) ietver katra bloka 32 bitu CRC kontroles summas drošai integritātes pārbaudei.
  • Universāla vietējā pieejamība visos Linux, BSD un macOS komandrindas izplatījumos.

Tehniskie ierobežojumi un mīnusi

  • Ievērojami lēnāks saspiešanas un atkausēšanas ātrums salīdzinājumā ar tādiem mūsdienu algoritmiem kā Zstandard.
  • Tikai viena faila saspiešana: lai iepakotu vairākus failus vai direktorijus, nepieciešams apvienojums ar TAR (.tar.bz2).
  • Lielāks procesora noslodze atkausēšanas laikā nekā Gzip vai Zstd.

Interesanti tehniski fakti

  • Maģiskie baiti 'BZh' apzīmē 'Burrows-Wheeler Zip Huffman', kam seko cipars (no '1' līdz '9'), kas norāda bloka izmēru simtos kilobaitu (piem., 'BZh9' = 900 KB).
  • Linux kodola pirmkods vairāk nekā desmitgadi tika izplatīts tikai .tar.bz2 formātā, pirms tas pārgāja uz .xz.
  • Burrows-Wheeler transformācija nesaspiež datus tieši; tā pārkārto rakstzīmju secību tā, lai identiski burti saplūstu kopā, padarot tos viegli saspiežamus ar Hofmaņa kodēšanu.

Bieži uzdotie tehniskie jautājumi

Kāda ir atšķirība starp .gz un .bz2?

.bz2 izmanto Burrows-Wheeler transformāciju, lai iegūtu mazākus failu izmērus nekā .gz, taču tā saspiešana un atspiešana prasa vairāk laika.

Kāpēc bzip2 ir komanda 'bzip2recover'?

Tā kā bzip2 saspiež datus neatkarīgos 900 KB blokos, katram ar savu CRC, bzip2recover var izvilkt nebojātus blokus pat tad, ja daļa faila ir bojāta.

Kā es varu atpakot .tar.bz2 failu?

Jūs varat atpakot .tar.bz2 failus tieši savā tīmekļa pārlūkprogrammā ar File2File.app, neizmantojot komandrindas rīkus.