LZ Arşiv Formatı

LZ, öncelikle depolama alanının azaltılmasının ve veri aktarımının optimize edilmesinin kritik olduğu ortamlarda kullanılan, verimli veri sıkıştırma için tasarlanmış bir arşiv formatıdır. Lempel-Ziv (LZ) sıkıştırma algoritmasından yararlanan bu format, büyük hacimli verileri hız ve kaynak verimliliğine odaklanarak sıkıştırma yeteneğiyle bilinir. LZ arşivleri, hızlı sıkıştırma ve açma döngüleri gerektiren senaryolarda özellikle popülerdir; bu da onları hem yazılım dağıtımı hem de gerçek zamanlı veri işleme için uygun kılar.

Genel LZ Arşiv Bilgileri

LZ arşivleri, birincil sıkıştırma yöntemi olarak Lempel-Ziv algoritmasını kullanan sıkıştırılmış dosya biçimleridir. Hızları ve basitlikleri ile tanınan LZ arşivleri, maksimum sıkıştırma oranlarından ziyade verimli sıkıştırmaya öncelik verir. Bu, onları gerçek zamanlı veri işleme veya gömülü sistemler gibi hızlı sıkıştırma ve açma gerektiren uygulamalar için uygun kılar. .lz uzantısı, LZ sıkıştırılmış dosyalar için en yaygın uzantıdır. Hile LZ arşivleri hızlı sıkıştırma sunar; sıkıştırma oranı ve meta veriler açısından sınırlamaları, onları büyük veri kümelerinin arşivlenmesi veya dosya niteliklerinin korunması için daha az uygun hale getirir. ZIP, gzip ve XZ gibi modern sıkıştırma formatları, gelişmiş özellikleri ve performansları nedeniyle birçok uygulamada LZ’nin yerini almıştır.

LZ Arşivleri Geçmişi

  • 1977: LZ sıkıştırmasının temeli, LZ77 algoritmasını tanıtan İsrailli bilgisayar bilimciler Abraham Lempel ve Jacob Ziv tarafından atıldı. Bu, tekrarlanan veri modellerini sıkıştırmak için kayan bir pencere kullanan, kayıpsız veri sıkıştırma için yaygın olarak benimsenen ilk algoritmaydı.
  • 1978: Lempel ve Ziv, LZ77’ye göre bir gelişme olan ve sözlük tabanlı bir yaklaşım kullanan LZ78 algoritmasını tanıttı. Bu algoritma, sıkıştırma verimliliğini daha da artırdı ve daha sonraki birçok sıkıştırma tekniğine ilham verdi.
  • 1984: Terry Welch, Unix sıkıştırma komutu ve GIF görüntü formatında kullanımıyla popüler hale gelen LZW’yi (Lempel-Ziv-Welch) geliştirmek için LZ78 algoritmasını temel aldı. LZW, ticari uygulamalarda yaygın olarak kullanılan ilk sıkıştırma algoritmalarından biriydi.
  • 1990’lar: LZ algoritmasının çeşitleri gelişmeye devam etti ve bu da 7z ve XZ gibi formatlarda kullanılan LZMA (Lempel-Ziv-Markov zincir algoritması) gibi daha gelişmiş sıkıştırma yöntemlerinin geliştirilmesine yol açtı. daha yüksek sıkıştırma oranları sunar.
  • 2000’ler: LZ tabanlı sıkıştırma teknikleri, özellikle de LZW, birçok dosya formatı ve protokolüne entegre edildi, ancak GIF gibi bazıları, kullanımlarını etkileyen patentle ilgili sorunlarla karşılaştı.
  • 2010’lar: LZ tabanlı algoritmalar, özellikle LZMA ve çeşitleri, yüksek sıkıştırma verimliliğini makul performansla dengeleyerek modern sıkıştırma yazılımının temelini oluşturmaya devam ediyor. Yazılım dağıtımı, arşivleme ve veri depolamada yaygın olarak kullanılmaya devam ediyorlar.
  • 2020’ler: LZ formatı, özellikle hız ve basitliğin ön planda olduğu ortamlarda sıkıştırma için güvenilir ve verimli bir seçim olmaya devam ediyor.

LZ arşivinin özellikleri

LZ arşiv formatı basit bir yapıya bağlı kalarak kapsamlı özellikler yerine hızı ön planda tutar. Burada LZ arşivinin temel yapısı, eski sıkıştırılmış dosyalarla çalışmak ve sıkıştırma teknolojilerinin gelişimini değerlendirmek açısından önemlidir.

  • Tek Dosya Sıkıştırma: Genellikle tek bir dosyayı .lz arşivine sıkıştırır.
  • LZW Algoritması: Lempel-Ziv-Welch sıkıştırma yöntemini kullanır.
  • Meta Veri Eksikliği: Arşivde orijinal dosyayla ilgili sınırlı sayıda meta veri saklanır veya hiç depolanmaz.
  • Basitlik: Formatın basit yapısı, hızlı sıkıştırma ve açma hızlarına katkıda bulunur.

LZ Arşivleri Sıkıştırma Yöntemleri

LZ arşiv formatı, basitliği ve hızıyla tanınan Lempel-Ziv (LZ) algoritmasını kullanır ve bu da onu hızlı sıkıştırma ve açmanın kritik olduğu senaryolarda tercih edilen bir seçim haline getirir. Aşağıda LZ ile ilişkili sıkıştırma yöntemlerine genel bir bakış bulunmaktadır:

  1. Lempel-Ziv Algoritması: LZ arşiv formatının özü, tekrarlanan dizileri daha kısa kodlarla değiştirerek verilerdeki fazlalığı tanımlayan ve ortadan kaldıran kayıpsız bir sıkıştırma yöntemi olan LZ algoritmasına dayanır. LZ algoritması, verileri işlerken bir dizi sözlüğü oluşturarak çalışır ve büyük ve tekrarlayan veri kümelerinin verimli bir şekilde sıkıştırılmasına olanak tanır. Bu yöntem özellikle veri modellerinin tutarlı ve öngörülebilir olduğu senaryolarda etkilidir.
  2. Kayan Pencere Tekniği: LZ algoritması tipik olarak sabit boyutlu bir pencerenin tekrarlanan dizileri bulmak için giriş veri akışı üzerinde hareket ettiği kayan pencere mekanizmasını kullanır. Bu yaklaşım, algoritmanın önemli bir sıkıştırma elde ederken yönetilebilir bir sözlük boyutunu korumasına olanak tanır. Kayan pencere, sıkıştırma verimliliğini bellek kullanımıyla dengelemede etkili olup, LZ yöntemini sınırlı kaynaklara sahip sistemler için uygun hale getirir.
  3. Sağlama Toplamı ve Hata Tespiti: LZ formatı sıkıştırmaya odaklanırken, sıkıştırılmış verilerin bütünlüğünü sağlamak için CRC32 gibi temel sağlama toplamı mekanizmalarını da içerebilir. Bu sağlama toplamları, depolama veya iletim sırasında oluşabilecek hataların tespit edilmesine yardımcı olarak sıkıştırılmış verilerin doğru ve bozulmadan kalmasını sağlar.
  4. İsteğe Bağlı Geliştirmeler: Bazı uygulamalarda, LZ sıkıştırma yöntemi, sıkıştırılmış verinin boyutunu daha da azaltabilen çalışma uzunluğu kodlaması (RLE) veya delta kodlaması gibi ek tekniklerle geliştirilebilir. Bu isteğe bağlı geliştirmeler arşivdeki belirli veri türlerine uygulanarak görüntüler veya yürütülebilir kod gibi belirli içerik türlerinin daha verimli sıkıştırılmasına olanak tanır.

.lz Desteklenen İşlemler

Aspose.Zip, .lz arşivleriyle çalışmak için kapsamlı destek sunarak sıkıştırılmış dosyaları yönetmeyi kolaylaştırır. İşte yapabilecekleriniz:

  • Tam Çıkarma: Orijinal içeriğin bütünlüğünü ve yapısını koruyarak, bir .lz arşivindeki tüm dosyaları kolayca çıkarın.
  • Seçici Çıkarma: Bir .lz arşivindeki belirli dosyaları hedefleyerek, dosya adlarına veya diğer kriterlere göre hassas veri kurtarmaya veya seçici açmaya olanak tanır.
  • Veri Sıkıştırma: Dosya boyutlarını önemli ölçüde azaltmak için verimli LZMA2 sıkıştırma yöntemini kullanarak dosyalardan ve dizinlerden .lz arşivleri oluşturun.
  • Özel Sıkıştırma Ayarları: Sıkıştırma hızını ve dosya boyutunu dengelemek için sıkıştırma düzeylerini ve diğer parametreleri ayarlayarak süreci özel ihtiyaçlarınıza göre uyarlayın.

.LZ Dosyasının Yapısı

Lzip arşiv formatı, hızlı sıkıştırma ve açmayı kolaylaştıran katmanlı bir yapı kullanılarak verimlilik ve hıza odaklanılarak tasarlanmıştır. Lzip arşivi, arşivde tek tek saklanan bir veya birkaç üyeden oluşur. Bir Lzip üyesinin yapısı aşağıdaki bileşenleri içerir:

  1. Blok Başlığı:

    • Sihirli Numara: Lzip arşivinin başlangıcını işaret eden ve dosyanın geçerli bir Lzip formatı olarak tanınmasını sağlayan benzersiz bir tanımlayıcı.
    • Sürüm Bilgisi: Kullanılan Lzip sürümünü belirtir; bu, farklı açma araçlarıyla daha fazla uyumluluğun sağlanmasına yardımcı olur. Artık “1” değerine sahiptir.
    • Sözlük Boyutu: Bu alan, gelecek veri bloğu için kullanılan LZMA sıkıştırmasının ayrıntıları hakkında bilgi sağlar.
  2. Sıkıştırılmış Veri Bloğu:

    • Sıkıştırılmış Yük: LZ arşivinin çekirdeği olan bu bölüm, sıkıştırılmış veri akışını içerir. Lempel-Ziv-Markov zincir algoritması, orijinal verileri tekrarlanan dizileri temsil eden bir dizi kod halinde işleyerek dosya boyutunu önemli ölçüde azaltır. Aynı sıkıştırma algoritması xz ve 7z formatlarında desteklenmektedir.
  3. Blok Alt Bilgisi:

    • Sağlama Toplamı/Karma: Sıkıştırılmış verilerin bütünlüğünü doğrulamak için bir sağlama toplamı (CRC32 gibi) veya kriptografik karma (SHA-256 gibi) eklenir. Bu, arşivin iletim veya depolama sırasında tahrif edilmemesini veya bozulmamasını sağlar.
    • Veri Boyutu: Bu blokta sıkıştırılmış orijinal dosyanın bir parçasının boyutu.
    • Memder Size: blokların bağımsız olarak çıkarılmasına olanak tanıyan sıkıştırılmış boyut ve ofset ile dağıtılmış indeksin bir parçası.

Lzip formatı birden fazla dosyayı sıkıştırmadığından ve meta verilerini saklamadığından, sıklıkla tar yardımcı programıyla birlikte kullanılır.

.LZ Dosyasının Yapısı

LZ Formatının Popülerliği

Lempel-Ziv sıkıştırma algoritmasını temel alan LZ arşiv formatı, veri sıkıştırma dünyasında temel bir teknoloji olmuştur. Yaygın olarak benimsenmesi, basitliğine, verimliliğine ve özellikle yinelenen desenlere sahip veriler için önemli sıkıştırma oranlarına ulaşma becerisine atfedilir. LZ tabanlı sıkıştırma yöntemleri çeşitli dosya formatlarına ve sıkıştırma araçlarına dahil edilmiş olup, LZ formatını veri depolama, iletim ve arşivleme süreçlerinde çok yönlü ve temel bir bileşen haline getirmektedir. LZMA ve Brotli gibi daha yeni sıkıştırma algoritmaları ortaya çıkmış olsa da LZ formatı, sıkıştırma hızı ve etkililiği arasındaki denge nedeniyle geçerliliğini koruyor.
UNIX ve Linux ortamlarında, LZ sıkıştırması genellikle tar, tar gibi diğer araçlarla birlikte kullanılır. yazılım dağıtımı ve veri yedekleme için sıkıştırılmış arşivler oluşturmak. Çok sayıda sıkıştırma yardımcı programına entegrasyonu, Windows ve macOS dahil olmak üzere çeşitli platformlarda sürekli kullanımını sağlamıştır. LZ formatı, ZIP veya GZIP gibi diğer sıkıştırma formatları kadar yaygın olarak tanınmasa da, veri sıkıştırma teknolojisi üzerindeki etkisi yadsınamaz ve hızlı, güvenilir sıkıştırmanın gerekli olduğu çeşitli senaryolarda kullanılmaya devam etmektedir.

LZ Arşivlerini Kullanma Örnekleri

Bu bölümde LZ arşivlerinin C#, Java ve Python.NET kullanılarak nasıl sıkıştırılıp açılacağını gösteren kod örnekleri sağlanmaktadır. Bu örnekler, LZ dosyalarını yönetmek için LzipArchive gibi kitaplıkları ve sınıfları kullanır ve modern programlama ortamlarında LZ sıkıştırmasının pratik kullanımını gösterir.

Compresses a file into .LZ archive using the LzipArchive class in C#.

    using (LzipArchive archive = new LzipArchive())
    {
        archive.SetSource("data.bin");
        archive.Save("data.bin.lz");
    }

Extract LZip Archive using C#

    using (FileStream sourceLzipFile = File.Open("data.bin.lz", FileMode.Open))
    {
        using (FileStream extractedFile = File.Open("data.bin", FileMode.Create))
        {
            using (LzipArchive archive = new LzipArchive(sourceLzipFile))
            {
                archive.Extract(extractedFile);
            }
        }
    }

Compresses a file into .LZ archive using the LzipArchive class in Java.

    try (LzipArchive archive = new LzipArchive()) {
        archive.setSource("data.bin");
        archive.save("data.bin.lz");
    }

Extract LZip Archive using Java

    try (FileInputStream sourceLzipFile = new FileInputStream("data.bin.lz")) {
        try (FileOutputStream extractedFile = new FileOutputStream("data.bin")) {
            try (LzipArchive archive = new LzipArchive(sourceLzipFile)) {
                archive.extract(extractedFile);
            }
        }
    } catch (IOException ex) {
    }

Compresses a file into .LZ archive using the LzipArchive class using Python.Net

    with aspose.zip.lzip.LzipArchive() as archive:
        archive.set_source("data.bin")
        archive.save("data.bin.lz")

Extract Lzip Archive using Python.Net

    with io.FileIO("data.bin.lz", "rb") as source_lzip_file:
        with io.FileIO("data.bin", "x") as extracted_file:
            with aspose.zip.lzip.LzipArchive(source_lzip_file) as archive:
                archive.extract(extracted_file)

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

Ek Bilgiler

İnsanlar soruyor

1. LZ arşiv formatı tüm işletim sistemlerinde destekleniyor mu?

LZ arşiv formatı UNIX, Linux, Windows ve macOS dahil olmak üzere birden fazla platformda desteklenir. En yaygın olarak UNIX benzeri ortamlarla ilişkilendirilse de, LZ arşivlerini işleyen araçlar ve kütüphaneler tüm önemli işletim sistemleri için mevcuttur.

2. LZ arşivlerini kullanmanın avantajları nelerdir?

LZ arşivleri, tekrarlanan desenlere sahip verileri sıkıştırmadaki verimlilikleriyle bilinir ve sıkıştırma hızı ile dosya boyutunun küçültülmesi arasında iyi bir denge sunar. Uygulamaları kolaydır; bu da onları özellikle yazılım dağıtımı, veri yedekleme ve ağ iletiminde hızlı veri sıkıştırma ihtiyaçları için güvenilir bir seçim haline getirir.

3. Birden fazla dosyayı tek bir LZ arşivine sıkıştırabilir miyim?

LZ formatı genellikle tek dosyaları sıkıştırmak için kullanılır. Birden fazla dosyayı sıkıştırmak için, öncelikle bunları bir arşivde birleştirmeniz (örneğin, tar kullanan bir tarball) ve ardından ortaya çıkan arşiv dosyasını LZ sıkıştırmasıyla sıkıştırmanız gerekir. Bu işlem UNIX ve Linux ortamlarında yaygındır.