Arsip BZIP2 (.bz2)
Standar StandarBzip2 (BZ2) adalah utilitas kompresi dan format file Unix klasik yang bebas paten dan dibuat oleh Julian Seward, menggunakan transformasi Burrows-Wheeler untuk mencapai kompresi yang jauh lebih efisien daripada Gzip klasik.
Pemeriksaan & Metadata
Sistem operasi dan penganalisis file mengenali file BZ2 dengan memeriksa urutan byte biner di bagian awal:
Tanda Tangan Header per Byte (Byte Penanda)
Sistem operasi dan penganalisis file mengenali file BZ2 dengan memeriksa urutan byte biner di bagian awal:
TANDA TANGAN HEX (OFFSET 0):
42 5A 68REPRESENTASI ASCII: BZh
Standardisasi: Standar sumber terbuka Bzip2
Spesifikasi Teknis
| Arsitektur Kontainer | Header aliran ('BZh' + digit ukuran blok 1-9), diikuti blok data terkompresi dan CRC 32-bit |
| Kompresi | Burrows-Wheeler Transform (BWT), transformasi Move-to-Front (MTF), dan pengodean Huffman |
| Urutan Byte | Pembingkaian bitstream Big-Endian |
| Ruang Warna | Tidak berlaku (aliran kompresi byte) |
| Saluran & Struktur | Aliran byte terkompresi untuk satu file |
| Dimensi Maksimum | Panjang aliran tanpa batas (mendukung ukuran file arbitrer) |
| Transparansi | Mempertahankan data secara lossless dan persis bit demi bit 100% |
| Streaming & Progresif | Streaming berurutan blok demi blok dengan checksum CRC tersendiri untuk setiap blok |
Perbandingan Teknis BZ2 dengan Pesaing
| Atribut Teknis | BZ2 (Saat Ini) | GZ | XZ | ZSTD |
|---|---|---|---|---|
| Algoritma Utama | Transformasi Burrows-Wheeler (BWT) | Deflate (LZ77 + Huffman) | LZMA / LZMA2 | Entropi Keadaan Hingga + LZ77 |
| Kompresi dibandingkan Gzip | 10% - 20% lebih kecil dari Gzip | Standar dasar | 20% - 30% lebih kecil dari Gzip | 10% - 20% lebih kecil dari Gzip |
| Kecepatan Dekompresi | Lambat (~30-50 MB/s) | Cepat (~300 MB/s) | Sedang (~100 MB/s) | Sangat cepat (>1.5 GB/s) |
| Checksum Blok | CRC 32-bit per blok | CRC32 aliran tunggal | Aliran CRC64 | Aliran xxHash64 |
Pola Kerusakan Umum dan Panduan Pemulihan Hex
Ekstraksi dibatalkan dengan pesan 'bzip2: Data integrity error when decompressing'.
Penyebab Utama: Bit terbalik pada blok terkompresi yang menyebabkan matriks permutasi invers BWT gagal dalam validasi CRC32.
Pemulihan: Gunakan utilitas 'bzip2recover' untuk menyelamatkan blok yang tidak rusak di sekitar sektor yang rusak.
Analisis Keamanan & Vektor Serangan Parser
Implementasi Bzip2 melibatkan pengurutan aliran bit yang rumit dan penguraian tabel Huffman yang secara historis mengalami kelemahan luapan bilangan bulat.
Vektor Serangan yang Diketahui
- Luapan bilangan bulat saat mengalokasikan larik pengurutan BWT (misalnya CVE-2016-3189).
- Penulisan di luar batas (out-of-bounds write) selama perakitan tabel penguraian Huffman.
- Penolakan layanan (DoS) melalui pola masukan ekstrem yang menyebabkan waktu pengurutan BWT terburuk yang bersifat kuadratik.
Praktik Terbaik Defensif: Dekode file BZ2 menggunakan dekoder WASM yang aman dari kesalahan pengelolaan memori dan memiliki batas memori yang diterapkan.
Asal-Usul & Tonggak Sejarah
Keunggulan & Kelebihan Utama
- Secara konsisten mengungguli Gzip klasik sebesar 10% hingga 20% pada tarball kode sumber, log sistem, dan database teks.
- Arsitektur blok independen (100k hingga 900k) menyertakan checksum CRC 32-bit per blok untuk pemeriksaan integritas yang kuat.
- Tersedia secara bawaan di banyak distribusi baris perintah Linux, BSD, dan macOS; penyertaannya bergantung pada distribusi.
Keterbatasan Teknis & Kekurangan
- Kecepatan kompresi dan dekompresi jauh lebih lambat dibandingkan dengan algoritma modern seperti Zstandard.
- Kompresi file tunggal saja: memerlukan TAR (.tar.bz2) untuk mengemas beberapa file atau direktori.
- Penggunaan CPU yang lebih tinggi selama dekompresi daripada Gzip atau Zstd.
Fakta Teknis Menarik
- Byte penanda 'BZh' adalah singkatan dari 'Burrows-Wheeler Zip Huffman', diikuti oleh digit ('1' hingga '9') yang menunjukkan ukuran blok dalam ratusan kilobyte (misalnya 'BZh9' = 900 KB).
- Kode sumber Kernel Linux didistribusikan secara eksklusif dalam format .tar.bz2 selama lebih dari satu dekade sebelum migrasi ke .xz.
- Transformasi Burrows-Wheeler tidak mengompresi data secara langsung; transformasi ini mengubah urutan karakter sehingga huruf yang sama menggumpal.
Pertanyaan Teknis yang Sering Diajukan
Apa perbedaan antara .gz dan .bz2?
.bz2 menggunakan transformasi Burrows-Wheeler untuk mencapai ukuran file yang lebih kecil daripada .gz, tetapi proses kompresi dan dekompresinya memakan waktu lebih lama.
Mengapa bzip2 memiliki perintah 'bzip2recover'?
Karena bzip2 mengompresi data dalam blok 900 KB independen yang masing-masing memiliki CRC sendiri, bzip2recover dapat mengekstrak blok yang tidak rusak meskipun sebagian file mengalami korupsi.
Bagaimana cara mengekstrak file .tar.bz2?
Anda dapat membongkar file .tar.bz2 langsung di peramban web Anda dengan File2File.app tanpa perlu menjalankan alat baris perintah.