GZIP Arşiv Formatı
GZIP, dosya sıkıştırma ve açma için kullanılan popüler bir dosya formatı ve yazılım uygulamasıdır. 1990’ların başında Jean-Loup Gailly ve Mark Adler tarafından ücretsiz ve açık kaynaklı bir sıkıştırma algoritması olarak geliştirildi. “GZIP” adı GNU ZIP anlamına gelir ve GNU Projesi ile ilişkisini gösterir.
GZIP sıkıştırması, dosyaların boyutunu azaltarak, bunların ağ üzerinden aktarılmasını veya diskte saklanmasını kolaylaştırarak çalışır. Tekrarlanan veri dizilerini referanslarla değiştirerek sıkıştırmayı başarır, böylece artıklığı ve genel dosya boyutunu azaltır. GZIP özellikle HTML, CSS, JavaScript, XML ve JSON gibi metin tabanlı dosyaları sıkıştırmak için etkilidir ancak diğer dosya türlerini sıkıştırmak için de kullanılabilir.
GZIP Arşiv Bilgileri Hakkında
GZIP arşiv bilgileri, GZIP sıkıştırma algoritması kullanılarak sıkıştırılmış bir dosyanın içerdiği meta verileri ve verileri ifade eder. GZIP arşivleri genellikle dosya öznitelikleri, zaman damgaları, sıkıştırma yöntemi gibi bilgileri ve sıkıştırmayı açma ve dosya geri yüklemesi için gerekli diğer ilgili verileri içerir. Bu meta veriler, sıkıştırılmış dosyaların doğru şekilde tanımlanması ve işlenmesi için çok önemlidir.
Ayrıca GZIP arşiv bilgileri, sıkıştırma düzeyi, sağlama toplamları ve sıkıştırma sırasında kullanılan ek işaretler veya seçenekler gibi sıkıştırma işleminin kendisiyle ilgili ayrıntıları da içerebilir. Bu bilgi, sıkıştırılmış verinin sıkıştırmasını açarken bütünlüğünü ve doğruluğunu sağlamak için gereklidir. Genel olarak GZIP arşiv bilgilerini anlamak, veri depolama, ağlar üzerinden iletim veya arşivleme amacıyla sıkıştırılmış dosyaları etkili bir şekilde yönetmek ve bunlarla çalışmak için hayati öneme sahiptir.
GZIP Arşiv Formatının Gelişimi
GZIP arşiv formatının kökleri, Jean-loup Gailly ve Mark Adler’in GNU projesinin bir parçası olarak GZIP sıkıştırma algoritmasını geliştirdiği 1980’lerin sonuna dayanmaktadır. GZIP, GNU projesi içindeki kökenlerini yansıtan GNU ZIP anlamına gelir. Amaç, farklı bilgisayar sistemleri arasındaki uyumluluğu korurken dosyaların boyutunu verimli bir şekilde azaltabilecek bir sıkıştırma aracı oluşturmaktı.
Jean-loup Gailly ve Mark Adler, programı ilk Unix sistemlerinde bulunan sıkıştırma yardımcı programına ücretsiz bir alternatif olarak geliştirdiler. GNU projesinin bir parçası olacak şekilde tasarlandı, dolayısıyla gzip’teki “g”. İlk sürüm olan sürüm 0.1, 31 Ekim 1992’de halka sunuldu ve bunu Şubat 1993’te sürüm 1.0 izledi.
GZIP Yapısı
GZIP, LZ77 ve Huffman kodlama tekniklerini birleştiren DEFLATE algoritmasını kullanır. DEFLATE, LZW’nin ve o dönemde yaygın olan sıkıştırma ve benzeri arşivleme yardımcı programlarının etkinliğini kısıtlayan, patentlerle engellenen diğer sıkıştırma algoritmalarının yerini almak üzere geliştirildi. GZIP dosya formatı üç ana bölümden oluşan iyi tanımlanmış bir yapıyı takip eder:
- Başlık (10 bayt): Bu bölümde arşiv ve içeriği hakkında temel bilgiler verilmektedir. İşte başlık verilerinin bir dökümü
- Sihirli Numara (4 bayt): Bu, dosyayı bir GZIP arşivi olarak tanımlar. Sıkıştırmayı açma araçlarının tanıdığı belirli bir onaltılık değere (1f 8b) sahiptir.
- Sıkıştırma Yöntemi (1 bayt): Bu bayt genellikle GZIP tarafından kullanılan DEFLATE sıkıştırma algoritmasını belirten 8 değerini tutar.
- Başlık Bayrakları (1 bayt): Bu bayraklar, dosya adı kodlaması veya bir yorumun varlığı gibi sıkıştırmayı açmanın belirli yönlerini kontrol eder.
- Oluşturulma Zamanı (4 bayt): Bu bölüm, arşivin oluşturulduğu zamanı belirten bir Unix zaman damgasını saklar.
- CRC-32 (4 bayt): Bu Döngüsel Artıklık Denetimi değeri, sıkıştırmayı açma sırasında hata tespiti için kullanılır. Sıkıştırılmamış verilere göre hesaplanır ve sıkıştırmayı açma yazılımının çıkarılan dosyaların bütünlüğünü doğrulamasını sağlar.
Bu formatın faydaları
- Kayıpsız Sıkıştırma: GZIP, verileri herhangi bir bilgi kaybı olmadan sıkıştırır. Bazı sıkıştırma tekniklerinden farklı olarak orijinal dosyalar, sıkıştırmanın açılmasından sonra mükemmel bir şekilde yeniden oluşturulabilir. Bu, veri bütünlüğünün korunmasının önemli olduğu önemli belgeler, resimler veya kodlar için çok önemlidir.
- Geniş Uyumluluk: GZIP’in en güçlü yönlerinden biri yaygın olarak benimsenmesidir. Çoğu işletim sistemi, arşiv yardımcı programı (WinRAR, 7-Zip) ve web sunucuları tarafından desteklenir. Bu, GZIP dosyalarını belirli bir yazılıma ihtiyaç duymadan çeşitli platformlarda kolayca açabilmenizi sağlar. Ayrıca GZIP, Unix tabanlı sistemler, Linux, Windows ve macOS dahil olmak üzere çeşitli işletim sistemlerinde yaygın olarak desteklenir. Bu platformlar arası uyumluluk, GZIP ile sıkıştırılmış dosyaların farklı ortamlarda sorunsuz bir şekilde oluşturulabilmesini ve sıkıştırılmış dosyaların açılabilmesini sağlar.
- Yayınlanabilir Sıkıştırma: GZIP, akış sıkıştırmayı destekleyerek, tüm dosyanın işlenmesini beklemeye gerek kalmadan dosyaların anında sıkıştırılmasına veya sıkıştırılmış dosyaların açılmasına olanak tanır. Bu, ağ iletişimi ve veri yedekleme işlemleri gibi verilerin sürekli olarak üretildiği veya iletildiği senaryolar için uygun olmasını sağlar.
- Açık Standart: GZIP, dosya sıkıştırmaya yönelik açık ve yaygın olarak benimsenen bir standarttır ve özellikleri kamuya açıktır. Bu açıklık, farklı yazılım uygulamaları ve sistemleri arasında birlikte çalışabilirliği ve uyumluluğu teşvik ederek, GZIP sıkıştırılmış dosyalarla çalışmaya yönelik canlı bir araç ve kitaplık ekosistemini teşvik eder. GZIP’i kullanmak genellikle basittir. Birçok araç ve yazılım, dosyaları bu formatta otomatik olarak sıkıştırır veya açar. Ek olarak, açma işlemi verimlidir ve minimum düzeyde kaynak gerektirir.
GZIP Arşivi Desteklenen İşlemler
Aspose.ZIP , kullanıcının belirli bir girişi veya arşivin tamamını çıkarmasına olanak tanır. Aspose.ZIP for .NET için GzipArchiveClass’ı kullanarak .gz dosyasını açabilir ve ardından girişlerini yineleyerek bunları istediğiniz konuma çıkarabilirsiniz. Aspose.ZIP for Java için .gz dosyasını açmak ve girdileri çıkarmak için GzipArchive’ı kullanan benzer yaklaşım.
GZIP dosyası - İç Yapı
GZIP arşivi düzgünce sarılmış bir paket gibidir. Formatı ve sıkıştırma yöntemini tanıtan 10 baytlık bir başlıkla başlar. İşin özü, akıllı algoritmalar kullanılarak küçültülmüş sıkıştırılmış veri bölümünde yatıyor. Son olarak, 8 baytlık bir altbilgi, sağlama toplamlarıyla veri bütünlüğünü doğrulayarak dosyalarınızın sıkıştırmanın açılmasından sonra güvenli bir şekilde ulaşmasını sağlar.
İç Arşiv Yapısı
- Dosya Meta Verileri - Tar arşivine benzer şekilde, her dosya, değişiklik zamanı ve izinler gibi temel bilgileri saklar. Ancak bu bölüm esnektir ve ihtiyaçlarınıza göre erişim kontrol listeleri (ACL’ler) veya genişletilmiş özellikler (EA’lar) gibi ek ayrıntıların çıkarılmasına veya eklenmesine izin verir. Veri bütünlüğünü sağlamak amacıyla normal dosyalar için güçlü bir karma işlevinin (SHA1 gibi) eklenmesi önerilir.
- Birden Fazla İçerik Akışı - Geleneksel arşivlerden farklı olarak dosyalar, iç veri dosyasında birden fazla veri akışına sahip olabilir. Bu, dosyayla ilişkili genişletilmiş öznitelikleri veya kaynak çatallarını depolamak için kullanışlıdır.
- Başlıklar - İç dizin dosyası, iç veri dosyasına dağılmış olanları yansıtan dosya başlıklarını içerir. Ancak, ayrı olarak depolandığında, dizin başlıkları, veri dosyası içindeki karşılık gelen verilerin başlangıç konumuna referans vermelidir. Ek olarak, indeksteki dizin girişleri, içerdikleri dosyaları ve iç dosya indeksindeki karşılık gelen uzaklıkları listeler.
- Yinelenen Meta Verilerin Gerekçesi - Bu tasarım seçimi, hem verimli veri akışı/kod çözme hem de rastgele dosya erişimi sağlar. Ek olarak, meta veriler iyi bir şekilde sıkıştırılarak depolama yükünün minimuma indirilmesi sağlanır. Testler, meta verilerin genellikle depolama alanının %0,3’ünden daha azını kapladığını ve bu da takası değerli kıldığını gösteriyor.
- Blok Başlıkları - Dış dosyaya benzer şekilde blok başlıkları, blok boyutu bilgilerini ve benzersiz bir tanımlayıcı diziyi içerir.
GZIP Kullanma Örnekleri
Aspose.ZIP API, başka herhangi bir 3. parti uygulamaya ihtiyaç duymadan uygulamalarınızdaki arşivleri çıkarmanıza olanak tanır. Aspose.ZIP API, GzipArchive sınıfının GZIP arşivleriyle çalışmasını sağlar.
GZIP with compress only single source via C#
Such archives like GZIP, LZ, BZIP2, XZ, Z do not support entries and can compress only single source. See samples with such a compression.
using (FileStream source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
{
using (GzipArchive archive = new GzipArchive())
{
archive.SetSource(source);
archive.Save(«archive.gz”);
}
}
GZIP arşivleri hakkında ek bilgi
İnsanlar soruyor
1. GZIP nedir?
GZIP (GNU sıkıştırılmış arşiv), daha kolay depolama ve iletim için dosyaların boyutunu küçülten popüler bir dosya formatıdır.
2. GZIP sıkıştırması ZIP gibi diğer formatlarla karşılaştırıldığında nasıldır?
GZIP, özellikle metin tabanlı dosyaları sıkıştırırken genellikle ZIP’e kıyasla daha yüksek sıkıştırma oranları sunar. Ancak, ZIP arşivleri genellikle birden fazla dosya ve dizin desteği içerir, bu da onları birden fazla dosyayı bir arada paketleme konusunda daha çok yönlü hale getirir .
3. GZIP birden fazla dosyayı tek bir arşive sıkıştırabilir mi?
GZIP, birden fazla dosya veya dizini değil, tek bir dosyayı sıkıştırmak için tasarlanmıştır. Ancak, bir tarball tar archive oluşturmak için tar gibi araçları GZIP ile birlikte kullanmak yaygındır ve ardından tek bir sıkıştırılmış dosya oluşturmak için GZIP kullanarak sıkıştırın.