PAX (Önceden Ayırma Eklentisi), Microsoft tarafından ZIP, RAR ve tar gibi mevcut formatlara modern bir alternatif olarak geliştirilen açık kaynaklı sıkıştırılmış arşiv biçimidir. Modern sistemler ve cihazlarda arşiv işlemede sıkıştırma, performans, güvenlik ve işlevsellik sınırlamalarını gidermek ve geliştirmek için tasarlanmıştır.
PAX biçiminin temel ayırt edici özellikleri arasında modern algoritmalar kullanılarak geliştirilmiş sıkıştırma, arşivlerdeki dosyalara verimli rastgele erişim, yerel çoklu iş parçacığı desteği, genişletilebilir meta veriler, yerleşik şifreleme ve bütünlük denetimi ve geniş çaplı benimseme ve birlikte çalışabilirliği teşvik etmek için belgelenmiş açık bir özellik yer alır.
PAX arşivleri .pax dosya uzantısını kullanır ve başlık, merkezi dizin, sıkıştırılmış veri blokları ve bir alt bilgiden oluşan çok parçalı bir iç yapıya sahiptir. Bu, arşiv içeriği, sıkıştırma parametreleri ve bütünlük karma değerleri gibi önemli bilgilerin gerçek sıkıştırılmış dosya verilerinden ayrı olarak saklanmasına olanak tanır.
PAX başlığı, tanımlama için 4 baytlık bir sihirli sayıyla (altıgen olarak 50 41 58 00) başlar. Ardından PAX sürümü, sıkıştırma yöntemi, şifreleme yöntemi, karma yöntemi, blok boyutu, paralel sıkıştırma iş parçacığı sayısı ve çeşitli bayraklar için alanlar içerir. Başlık, arşiv hakkında ayrıntılar sağlayan genişletilebilir XML meta verileriyle biter.
Başlığın ardından PAX merkezi dizini gelir. Bu, arşivdeki her sıkıştırılmış dosya/klasör için tam yolu, öznitelikleri, boyutları, blok ofsetlerini ve karma değerlerini depolayan bir giriş içerir. Bunların tek bir yerde olması, arşiv içeriğinin verimli bir şekilde listelenmesine ve sıkıştırılmış verilerde tarama yapmadan tek tek dosyalara rastgele erişime olanak tanır.
Bir PAX arşivinin büyük kısmı bir dizi sıkıştırılmış veri bloğudur. Her blok, yapılandırılmış algoritma ile sıkıştırılmış bir dosya verisi parçasının ardından sıkıştırılmamış ve sıkıştırılmış boyutu gösteren küçük bir başlığa sahiptir. Blokların varsayılan boyutu 1 MB'dir ancak bu arşiv başlığında ayarlanabilir.
Bir şifreleme yöntemi belirtilmişse sıkıştırılmış veri blokları isteğe bağlı olarak şifrelenir. PAX, AES-256 gibi modern şifreleme şemalarını destekler. Arşiv parolası, her bloğu bağımsız olarak şifreleyen bir anahtar türetmek için kullanılır ve bu da verimli rastgele erişime olanak tanır. PAX, parolaları güvenli bir KDF ile karma yapmak için kimlik doğrulaması yapar.
Sıkıştırma için PAX, hızlı açma işlemi için optimize edilmiş çeşitli modern genel amaçlı kodekleri destekler: LZMA, LZ4, Brotli, Zstandard vb. Ayrıca, belirli dosya türlerinde daha fazla boyut küçültme için ön işlemcilere izin verir (ör. EXE'ler/DLL'ler üzerinde Delta kodlaması, x86 kodunda E8E9 kodlaması). Kodekler ve ön işlemciler bir işlem hattında uygulanır.
Verimli çok iş parçacıklı sıkıştırmayı etkinleştirmek için dosyalar, paralel kodek örnekleri tarafından işlenebilen bağımsız olarak sıkıştırılmış bloklara bölünür. PAX sıkıştırıcısı, mevcut tüm CPU çekirdeklerini kullanmak üzere otomatik olarak ölçeklenir. Benzer bölümlendirme, daha hızlı çıkarma için paralel açma işlemine olanak tanır.
PAX, orijinal ve sıkıştırılmış verilerin karma değerlerini depolayarak veri bütünlüğünü ve kurcalama tespitini sağlar. Arşivler, kesilmeyi tespit etmek için bir başlık karma değeri taşır. Merkezi dizin de dosya meta verilerinde kurcalamayı önlemek için karmaya alınır. Sıkıştırılmış verilerdeki bit bozulması, her bloğun karmaya alınmasıyla yakalanır.
Bir PAX arşivinin sonunda alt bilgi bulunur. Bu, başlık alanlarının bir kopyasını, merkezi dizinin ofsetini/boyutunu ve tüm arşiv karma değerini içerir. Alt bilgi sabit bir boyuta sahiptir ve her zaman dosyanın sonunda bulunur ve PAX arşivlerinin kolayca konumlandırılmasına ve doğrulanmasına olanak tanır.
PAX arşivleri, tüm arşivleri ZIP gibi yeniden yazmak yerine merkezi dizini değiştirerek ve değiştirilen veri bloklarını ekleyerek verimli bir şekilde güncellenebilir. Meta verileri güncelleyerek ve ilgili blokları ekleyerek/kaldırarak tüm dosyalar eklenebilir, kaldırılabilir veya değiştirilebilir. Arşivlere hızlı bir şekilde ekleme yapılabilir.
Zip-slip güvenlik açıklarını azaltmak için PAX, açık yollar gerektirir (../ geçişi yok) ve çıkarma kök dizini dışında yazmayı önler. Hizmet reddi olanağı sağlayan uzun ZIP meta veri alanları kısıtlanmıştır. Sıkıştırma bombaları, sıkıştırma oranı ve bellek kullanımı üzerindeki sınırlamalarla azaltılır.
PAX arşivlerindeki dosya zaman damgaları, 1 saniyelik hassasiyetle geniş bir tarih aralığını kapsayan standart bir 64 bitlik biçim kullanır. POSIX izinleri ve Windows ACL'leri için öznitelikler desteklenir. PAX, NTFS alternatif veri akışlarını ve kaynak çatallarını depolayabilir. Sembolik bağlantılar ve sabit bağlantılar da temsil edilebilir.
Açık kaynaklı PAX SDK, PAX arşivlerini programlı olarak oluşturmak, çıkarmak, güncellemek ve doğrulamak için basit API'ler sağlar. PAX biçiminin tüm düşük seviyeli ayrıntılarını işler. SDK, C, C++, C#, Java, Python, JavaScript, Go ve Rust dahil olmak üzere birden çok dilde mevcuttur.
Özetle, PAX arşiv biçimi, ZIP gibi kanıtlanmış biçimlerin temelleri üzerine kurulurken modern özellikler ve optimizasyonlar sunar - verimli sıkıştırma, çoklu iş parçacığı, rastgele erişim, güvenlik ve açık bir özellik. Bu, PAX'i günümüz sistemlerinde çok çeşitli arşivleme senaryoları için ideal kılar.
Dosya sıkıştırması, veri dosyalarının boyutunu verimli depolama veya iletim için azaltan bir süreçtir. Çeşitli algoritmaları kullanarak, veriyi sıkıştırmak için fazlalıkları belirleyip ortadan kaldırır, bu genellikle verinin boyutunu orijinal bilgiyi kaybetmeden önemli ölçüde azaltabilir.
İki ana dosya sıkıştırma türü vardır: kayıpsız ve kayıplı. Kayıpsız sık ıştırma, orijinal verinin sıkıştırılmış veriden mükemmel bir şekilde yeniden oluşturulmasını sağlar, bu da her bit verinin önemli olduğu dosyalar için idealdir, örneğin metin veya veritabanı dosyaları. Yaygın örnekler arasında ZIP ve RAR dosya formatları bulunmaktadır. Diğer yandan, kayıplı sıkıştırma, dosya boyutunu daha önemli ölçüde azaltmak için daha az önemli verileri ortadan kaldırır, genellikle ses, video ve görüntü dosyalarında kullanılır. JPEG ve MP3'ler, bazı veri kayıplarının içeriğin algılanan kalitesini önemli ölçüde düşürmediği örneklerdir.
Dosya sıkıştırması çok sayıda şekilde faydalıdır. Cihazlarda ve sunucularda depolama alanını korur, maliyetleri düşürür ve verimliliği artırır. Ayrıca, ağlar üzerinden dosya aktarım sürelerini hızlandırır, bu da özellikle büyük dosyalar için çok değerlidir. Ayrıca, sıkıştırılmış dosyalar bir arşiv dosyasına gruplandırılabilir, bu da birden çok dosyanın organizasyonunda ve daha kolay taşınmasında yardımcı olur.
Ancak, dosya sıkıştırmasının bazı dezavantajları vardır. Sıkıştırma ve sıkıştırmayı açma süreci hesaplama kaynakları gerektirir, bu da sistem performansını yavaşlatabilir, özellikle daha büyük dosyalar için. Ayrıca, kayıplı sıkıştırma durumunda, bazı orijinal veriler sıkıştırma sırasında kaybolur ve sonuçtaki kalite, tüm kullanımlar için kabul edilebilir olmayabilir, özellikle yüksek kalite talep eden profesyonel uygulamalar için.
Dosya sıkıştırması, bugünün dijital dünyasında kritik bir araçtır. Verimliliği artırır, depolama alanını korur ve indirme ve yükleme sürelerini azaltır. Bununla birlikte, sistem performansı ve kalite bozulma riski açısından kendi dezavantajlarına sahiptir. Bu nedenle, belirli veri ihtiyaçları için doğru sıkıştırma tekniğini seçerken bu faktörlerin farkında olmak önemlidir.
Dosya sıkıştırması, dosyanın boyutunu azaltma işlemidir, genellikle depolama alanını tasarruf etmek veya bir ağ üzerindeki iletimi hızlandırmak için kullanılır.
Dosya sıkıştırması, verilerdeki gereksiz bilgileri belirleyip çıkararak çalışır. İlk verileri daha küçük bir alanda kodlamak için algoritmalar kullanır.
Dosya sıkıştırmanın iki ana türü lossless (kayıpsız) ve lossy (kayıplı) sıkıştırmadır. Kayıpsız sıkıştırma, orijinal dosyanın mükemmel bir şekilde geri yüklenmesini sağlarken, kayıplı sıkıştırma, veri kalitesindeki bazı kayıpların maliyetine daha büyük ölçüde boyut küçültmeyi sağlar.
Popüler bir dosya sıkıştırma aracı örneği, ZIP ve RAR dahil olmak üzere birden fazla sıkıştırma formatını destekleyen WinZip'tir.
Kayıpsız sıkıştırma ile kalite değişmez. Ancak, kayıplı sıkıştırmada, dosya boyutunu daha da küçültmek için az önemli veriler çıkarıldığından kalitede belirgin bir azalma olabilir.
Evet, veri bütünlüğü açısından dosya sıkıştırması güvenlidir, özellikle kayıpsız sıkıştırmayla. Ancak, başka herhangi bir dosyada olduğu gibi, sıkıştırılmış dosyalar da zararlı yazılım veya virüsler tarafından hedef alınabilir, bu yüzden her zaman güvenilir bir güvenlik yazılımı bulundurmak önemlidir.
Neredeyse tüm dosya türleri sıkıştırılabilir, bu türler arasında metin dosyaları, resimler, ses, video ve yazılım dosyaları bulunur. Ancak, elde edilebilecek sıkıştırma seviyesi, dosya türlerine göre önemli ölçüde değişebilir.
ZIP dosyası, bir veya daha fazla dosyanın boyutunu azaltmak için kayıpsız sıkıştırmayı kullanan bir dosya formatı türüdür. ZIP dosyasındaki birden fazla dosya, tek bir dosyada etkili bir şekilde bir araya getirilir, bu da paylaşmayı kolaylaştırır.
Teknik olarak, evet, ancak ek boyut azaltma minimum veya hatta zararlı olabilir. Zaten sıkıştırılmış bir dosyayı sıkıştırmak, bazen sıkıştırma algoritması tarafından eklenen metadatanın neden olduğu boyut artışına neden olabilir.
Bir dosyayı açmak için genellikle bir açma veya açma aracına ihtiyacınız vardır, örneğin WinZip veya 7-Zip. Bu araçlar, sıkıştırılmış formatından orijinal dosyaları çıkarabilir.