BZIP2 Arşivi (.bz2)

Bzip2 Standart

Bzip2 (BZ2), Julian Seward tarafından geliştirilen, patentsiz klasik bir Unix sıkıştırma aracı ve dosya biçimidir. Klasik Gzip'e kıyasla çok daha yüksek sıkıştırma oranı elde etmek için Burrows-Wheeler dönüşümünü kullanır.

İncele ve Meta Veriler

İşletim sistemleri ve dosya çözümleyicileri, BZ2 dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:

Dosyaları buraya seç veya bırak

Özel - dosyalar cihazınızdan asla ayrılmaz

veya yapıştır Ctrl+V
Sıfır Ağ Aktarımı Gizlilik Garantisi: Harici sunuculara 0 bayt yüklendi. Tüm işlemler tarayıcındaki korumalı alanda (sandbox) yerel olarak gerçekleştirildi.

Bayt düzeyinde başlık imzası (sihirli baytlar)

İşletim sistemleri ve dosya çözümleyicileri, BZ2 dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:

HEX İMZASI (OFSET 0):

42 5A 68

ASCII GÖSTERİMİ: BZh

Standartlaştırma: Bzip2 Open Source Standard

Teknik Özellikler

Kapsayıcı mimarisiArdından sıkıştırılmış veri blokları ve 32 bit CRC gelen akış üstbilgisi ('BZh' + 1-9 blok boyutu rakamı)
SıkıştırmaBurrows-Wheeler Dönüşümü (BWT), Öne Taşıma (MTF) dönüşümü ve Huffman kodlaması
Bayt Düzeni (Endianness)Büyük uçlu bit akışı çerçevelemesi
Renk UzaylarıN/A (Byte Compression Stream)
Kanallar ve YapıTek dosyalık sıkıştırılmış bayt akışı
Maksimum BoyutlarSınırsız akış uzunluğu (her boyutta dosyayı destekler)
ŞeffaflıkVerilerin bit düzeyinde %100 tam ve kayıpsız korunması
Akış ve Aşamalı İşlemeHer blok için bağımsız CRC sağlama toplamlarıyla blok blok sıralı akış

Teknik karşılaştırma matrisi: BZ2 ve rakipleri

Teknik NitelikBZ2 (Güncel)GZXZZSTD
Çekirdek AlgoritmaBurrows-Wheeler Dönüşümü (BWT)Deflate (LZ77 + Huffman)LZMA / LZMA2Sonlu Durum Entropisi + LZ77
Gzip ile Sıkıştırma KarşılaştırmasıGzip'e kıyasla %10 - %20 daha küçük dosyalarTemel standartGzip'e kıyasla %20 - %30 daha küçük dosyalarGzip'e kıyasla %10 - %20 daha küçük dosyalar
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 CRCTek akışlı CRC32Akış CRC64Akış 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 bir bitin değerinin değişmesi, BWT ters permütasyon matrisinin CRC32 doğrulamasından geçememesine neden oluyor.

Kurtarma: Bozuk bölümün çevresindeki hasar görmemiş blokları kurtarmak için 'bzip2recover' aracını kullan.

Güvenlik Analizi ve Ayrıştırıcı Saldırı Vektörleri

Bzip2 uygulamaları, geçmişte tamsayı taşması kusurları görülmüş karmaşık bit akışı sıralama ve Huffman tablosu ayrıştırma işlemleri içerir.

Bilinen Saldırı Vektörleri

  • BWT sıralama dizisi tahsisinde tamsayı taşması (örn. CVE-2016-3189).
  • Huffman kod çözme tablosu oluşturulurken sınırların dışına yazma.
  • En kötü durum kuadratik BWT sıralama sürelerine neden olan patolojik girdi kalıpları aracılığıyla hizmet reddi (DoS).

Savunmaya yönelik en iyi uygulamalar: Bellek sınırları uygulanan, bellek açısından güvenli WASM kod çözücüleriyle BZ2 dosyalarının kodunu çöz.

Tarihsel kökenler ve önemli dönüm noktaları

2019Federico Mena Quintero, bzip3 ve modern açık kaynak girişimleri kapsamında bzip2 kod tabanının bakımını modernleştiriyor.
2000Sürüm 1.0 yayınlandı ve bz2 formatı Linux dağıtımları ile paket yöneticileri arasında kararlı hale getirildi.
1996Julian Seward, patent sorunları olan daha önceki bzip formatının yerini almak üzere bzip2 0.15 sürümünü yayınladı.

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.
  • Birçok Linux, BSD ve macOS komut satırı dağıtımında yerleşik olarak bulunur; dahil edilmesi dağıtıma göre değişir.

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 yüz 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; karakterlerin sırasını değiştirerek aynı harfleri bir araya toplar; böylece veriler Huffman kodlamasıyla kolayca sıkıştırılabilir.

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 hâlinde sıkıştırır. Bu sayede dosyanın bir bölümü bozulsa bile bzip2recover sağlam blokları çıkarabilir.

Bir .tar.bz2 dosyasını nasıl çıkartabilirim?

Komut satırı araçlarını çalıştırmadan .tar.bz2 dosyalarını File2File.app ile doğrudan web tarayıcında açabilirsin.