BZIP2 Arşivi (.bz2)
Bzip2 StandartBzip2 (BZ2), Julian Seward tarafından oluşturulan, klasik Gzip'e kıyasla önemli ölçüde daha yüksek sıkıştırma oranı elde etmek için Burrows-Wheeler dönüşümünü kullanan, patent içermeyen klasik bir Unix sıkıştırma aracı ve dosya formatıdır.
İncele & Meta Veriler
İşletim sistemleri ve dosya çözümleyicileri, BZ2 dosyalarını başlangıçtaki ikili bayt dizisini inceleyerek tanımlar:
Bayt Düzeyinde Başlık İmzası (Magic Bytes)
İşletim sistemleri ve dosya çözümleyicileri, BZ2 dosyalarını başlangıçtaki ikili bayt dizisini inceleyerek tanımlar:
HEX İMZASI (OFSET 0):
42 5A 68ASCII GÖSTERİMİ: BZh
Standardizasyon: Bzip2 Open Source Standard
Teknik Özellikler
| Konteyner Mimarisi | Stream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC |
| Sıkıştırma | Burrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding |
| Bayt Düzeni (Endianness) | Big-Endian bitstream framing |
| Renk Uzayları | N/A (Byte Compression Stream) |
| Kanallar ve Yapı | Single-file compressed byte stream |
| Maksimum Boyutlar | Unbounded stream length (supports arbitrary file sizes) |
| Şeffaflık | 100% bit-exact lossless data preservation |
| Akış ve Aşamalı (Streaming & Progressive) | Sequential block-by-block streaming with independent per-block CRC checksums |
Teknik Karşılaştırma Matrisi: BZ2 ve Rakipleri
| Teknik Nitelik | BZ2 (Güncel) | GZ | XZ | ZSTD |
|---|---|---|---|---|
| Çekirdek Algoritma | Burrows-Wheeler Dönüşümü (BWT) | Deflate (LZ77 + Huffman) | LZMA / LZMA2 | Sonlu Durum Entropisi + LZ77 |
| Gzip ile Sıkıştırma Karşılaştırması | Gzip'ten %10 - %20 daha küçük | Temel standart | Gzip'ten %20 - %30 daha küçük | Gzip'ten %10 - %20 daha küçük |
| Dosya Açma Hızı | Yavaş (~30-50 MB/s) | Hızlı (~300 MB/s) | Orta (~100 MB/s) | Çok Hızlı (>1.5 GB/s) |
| Blok Sağlama Toplamları | Blok başına 32-bit CRC | Tek akışlı CRC32 | Akış CRC64 | Akış xxHash64 |
Yaygın Bozulma Modları ve Hex Kurtarma Kılavuzu
Çıkarma işlemi 'bzip2: Data integrity error when decompressing' hatasıyla iptal ediliyor.
Kök Neden: Sıkıştırılmış bloktaki ters çevrilmiş bir bit, BWT ters permütasyon matrisinin CRC32 doğrulamasından geçememesine neden oluyor.
Kurtarma: Bozuk sektörün etrafındaki hasar görmemiş blokları kurtarmak için 'bzip2recover' aracını kullanın.
Güvenlik Analizi ve Ayrıştırıcı Saldırı Vektörleri
Bzip2 uygulamaları, geçmişte tamsayı taşması (integer overflow) kusurları yaşamış karmaşık bit akışı sıralaması ve Huffman tablosu ayrıştırması içerir.
Bilinen Saldırı Vektörleri
- BWT sıralama dizisi tahsisinde tamsayı taşması (örn. CVE-2016-3189).
- Huffman kod çözme tablosu oluşturulması sırasında sınır dışı (out-of-bounds) yazma.
- En kötü durum kuadratik BWT sıralama sürelerine neden olan patolojik girdi kalıpları aracılığıyla hizmet reddi (DoS).
Savunmacı En İyi Uygulamalar:
Tarihsel Kökenler ve Kilometre Taşları
Temel Avantajlar ve Artılar
- Kaynak kodu tarball'ları, sistem günlükleri ve metin veritabanlarında klasik Gzip'i tutarlı bir şekilde %10 ila %20 oranında geride bırakır.
- Bağımsız blok mimarisi (100k ila 900k), sağlam bütünlük kontrolü için blok başına 32-bit CRC sağlama toplamları içerir.
- Tüm Linux, BSD ve macOS komut satırı dağıtımlarında evrensel yerel kullanılabilirlik.
Teknik Kısıtlamalar ve Eksiler
- Zstandard gibi modern algoritmalara kıyasla önemli ölçüde daha yavaş sıkıştırma ve açma hızları.
- Yalnızca tek dosya sıkıştırma: birden fazla dosyayı veya dizini paketlemek için TAR (.tar.bz2) ile eşleştirilmesini gerektirir.
- Gzip veya Zstd'ye göre dosya açma sırasında daha yüksek CPU kullanımı.
İlginç Teknik Bilgiler
- 'BZh' sihirli baytları 'Burrows-Wheeler Zip Huffman' anlamına gelir ve bunu kilobayt cinsinden blok boyutunu belirten bir rakam ('1' ile '9' arası) takip eder (örn. 'BZh9' = 900 KB).
- Linux Kernel kaynak kodu, .xz'ye geçmeden önce on yıldan uzun süre yalnızca .tar.bz2 formatında dağıtıldı.
- Burrows-Wheeler dönüşümü verileri doğrudan sıkıştırmaz; aynı harflerin bir araya gelmesi için karakterlerin sırasını değiştirerek Huffman kodlaması ile kolayca sıkıştırılabilmelerini sağlar.
Sıkça Sorulan Teknik Sorular
.gz ve .bz2 arasındaki fark nedir?
.bz2, .gz'ye göre daha küçük dosya boyutları elde etmek için Burrows-Wheeler dönüşümünü kullanır, ancak sıkıştırmak ve sıkıştırmayı açmak daha uzun sürer.
bzip2 neden 'bzip2recover' komutuna sahiptir?
bzip2, verileri her biri kendi CRC'sine sahip bağımsız 900 KB'lık bloklar halinde sıkıştırdığı için, dosyanın bir kısmı bozulmuş olsa bile bzip2recover zarar görmemiş blokları çıkartabilir.
Bir .tar.bz2 dosyasını nasıl çıkartabilirim?
Komut satırı araçları çalıştırmanıza gerek kalmadan, File2File.app ile .tar.bz2 dosyalarını doğrudan web tarayıcınızda açabilirsiniz.