XZ पुरालेख प्रारूप

XZ एक उच्च-संपीड़न संग्रह प्रारूप है जिसका उपयोग मुख्य रूप से एकल फ़ाइलों को संपीड़ित करने के लिए किया जाता है, जो बेहतर संपीड़न दक्षता और ओपन-सोर्स अनुकूलता प्रदान करता है। XZ यूटिल्स के हिस्से के रूप में विकसित, यह प्रारूप LZMA2 संपीड़न एल्गोरिथ्म के उपयोग के लिए जाना जाता है, जो उचित डीकंप्रेसन गति को बनाए रखते हुए उच्च संपीड़न अनुपात प्राप्त करता है। XZ अभिलेखागार का व्यापक रूप से सॉफ़्टवेयर पैकेजों के वितरण में उपयोग किया जाता है, विशेष रूप से लिनक्स जैसे यूनिक्स-जैसे ऑपरेटिंग सिस्टम में।

सामान्य XZ पुरालेख सूचना

XZ अभिलेखागार को भंडारण और वितरण के लिए फ़ाइल आकार को कम करने पर ध्यान देने के साथ कुशल संपीड़न प्रदान करने के लिए डिज़ाइन किया गया है। प्रारूप LZMA2 एल्गोरिथ्म का उपयोग करता है, जो शब्दकोश संपीड़न और एन्ट्रापी कोडिंग को जोड़ता है, जिससे यह बड़ी फ़ाइलों को संपीड़ित करने के लिए अत्यधिक प्रभावी हो जाता है। XZ अभिलेखागार में आम तौर पर एक संपीड़ित फ़ाइल होती है, लेकिन उन्हें संपूर्ण निर्देशिकाओं को संपीड़ित करने के लिए टार जैसे अन्य टूल के साथ जोड़ा जा सकता है। XZ प्रारूप का उपयोग अक्सर सॉफ्टवेयर वितरण, डेटा बैकअप और संग्रह में किया जाता है, विशेष रूप से लिनक्स पारिस्थितिकी तंत्र में, जहां यह पैकेजिंग सॉफ्टवेयर और सिस्टम अपडेट के लिए एक मानक बन गया है।

XZ इतिहास की जानकारी

  • 2005: XZ यूटिल्स प्रोजेक्ट के हिस्से के रूप में XZ प्रारूप का विकास शुरू हुआ, जिसका उद्देश्य पुराने LZMA प्रारूप का अधिक कुशल उत्तराधिकारी बनाना था।
  • 2009: XZ यूटिल्स को आधिकारिक तौर पर जारी किया गया, जिसमें XZ प्रारूप को उच्च-संपीड़न आवश्यकताओं के लिए एक नए मानक के रूप में पेश किया गया।
  • 2010: XZ ने लिनक्स समुदाय में लोकप्रियता हासिल करना शुरू कर दिया, और तेजी से सॉफ्टवेयर पैकेज और सिस्टम अभिलेखागार को संपीड़ित करने के लिए पसंदीदा प्रारूप बन गया।
  • 2011: डेबियन और आर्क लिनक्स सहित प्रमुख लिनक्स वितरणों ने अपने पैकेज रिपॉजिटरी के लिए XZ को डिफ़ॉल्ट संपीड़न प्रारूप के रूप में अपनाना शुरू कर दिया।
  • 2014: XZ का उपयोग लिनक्स से आगे बढ़ गया, क्रॉस-प्लेटफ़ॉर्म सॉफ़्टवेयर वितरण के लिए लोकप्रिय हो गया, विशेष रूप से उच्च संपीड़न अनुपात की आवश्यकता वाले अनुप्रयोगों के लिए।
  • 2020: सॉफ्टवेयर पैकेजिंग, डेटा स्टोरेज और वितरण में XZ का व्यापक रूप से उपयोग किया जाता है, खासकर ऐसे वातावरण में जहां कुशल संपीड़न महत्वपूर्ण है।

XZ संग्रह की संरचना

XZ संग्रह प्रारूप एकल-फ़ाइल संपीड़न के लिए डिज़ाइन किया गया है और उच्च संपीड़न अनुपात प्राप्त करने के लिए एक सीधी संरचना का उपयोग करता है। यहां XZ संग्रह की संरचना का अवलोकन दिया गया है:

  1. हेडर: हेडर में XZ संग्रह के बारे में मेटाडेटा शामिल है, जिसमें प्रारूप संस्करण, झंडे और उपयोग किए गए किसी भी वैकल्पिक एक्सटेंशन शामिल हैं। यह डेटा अखंडता के लिए चेकसम की उपस्थिति को भी इंगित करता है।
  2. संपीड़ित डेटा स्ट्रीम: XZ संग्रह का मूल संपीड़ित डेटा स्ट्रीम है। इस अनुभाग में LZMA2 एल्गोरिदम का उपयोग करके संपीड़ित वास्तविक फ़ाइल डेटा शामिल है। डेटा स्ट्रीम को ब्लॉकों में विभाजित किया गया है, जिससे कुशल संपीड़न और डीकंप्रेसन की अनुमति मिलती है। प्रत्येक ब्लॉक को स्वतंत्र रूप से डीकंप्रेस किया जा सकता है, जो संग्रह आंशिक रूप से दूषित होने पर भी डेटा को पुनर्प्राप्त करने में मदद करता है।
  3. पाद लेख: पाद लेख में एक CRC32 चेकसम शामिल है जो संग्रह की अखंडता की पुष्टि करता है। यह संपीड़ित डेटा स्ट्रीम के अंत को भी चिह्नित करता है और इसमें त्वरित पहुंच के लिए ब्लॉकों के सूचकांक जैसी अतिरिक्त जानकारी शामिल हो सकती है।

XZ संपीड़न विधियाँ

XZ प्रारूप मुख्य रूप से LZMA2 संपीड़न एल्गोरिथ्म पर निर्भर करता है, जो अपने उच्च संपीड़न अनुपात और उचित डीकंप्रेसन गति के लिए जाना जाता है। यहां XZ से जुड़ी संपीड़न विधियों पर करीब से नज़र डाली गई है:

  1. LZMA2: यह XZ अभिलेखागार द्वारा उपयोग की जाने वाली डिफ़ॉल्ट और एकमात्र संपीड़न विधि है। LZMA2 LZ77 एल्गोरिदम पर आधारित है और इसमें उन्नत एन्ट्रॉपी कोडिंग शामिल है, जो इसे बड़ी फ़ाइलों को संपीड़ित करने में अत्यधिक कुशल बनाती है। यह समायोज्य संपीड़न सेटिंग्स प्रदान करता है, जिससे उपयोगकर्ता अपनी आवश्यकताओं के आधार पर संपीड़न गति या अनुपात को प्राथमिकता दे सकते हैं।
  2. फ़िल्टर: LZMA2 के अलावा, XZ विभिन्न वैकल्पिक फ़िल्टर का समर्थन करता है जिन्हें फ़ाइल आकार को और कम करने के लिए संपीड़न से पहले लागू किया जा सकता है। इनमें डेल्टा एन्कोडिंग शामिल है, जो छोटे, बार-बार परिवर्तन वाले डेटा को संपीड़ित करने के लिए उपयोगी है, और बीसीजे (ब्रांच/कॉल/जंप), जो कुछ निर्देशों को अधिक संपीड़ित रूपों में परिवर्तित करके निष्पादन योग्य कोड के संपीड़न को अनुकूलित करता है।
  3. सीआरसी32 और एसएचए-256 चेकसम: हालांकि संपीड़न विधियां नहीं हैं, एक्सजेड अभिलेखागार अखंडता जांच के लिए सीआरसी32 चेकसम का उपयोग करते हैं और उन्नत डेटा सत्यापन के लिए वैकल्पिक रूप से एसएचए-256 का समर्थन करते हैं, यह सुनिश्चित करते हुए कि संपीड़ित डेटा दूषित या छेड़छाड़ नहीं किया गया है।

.xz समर्थित संचालन

Aspose.Zip .xz अभिलेखागार के साथ काम करने के लिए व्यापक समर्थन प्रदान करता है, जिससे संपीड़ित फ़ाइलों को प्रबंधित करना आसान हो जाता है। यहाँ आप क्या कर सकते हैं:

  • पूर्ण निष्कर्षण: मूल सामग्री की अखंडता और संरचना को संरक्षित करते हुए, .xz संग्रह से सभी फ़ाइलें आसानी से निकालें।
  • चयनात्मक निष्कर्षण: एक .xz संग्रह के भीतर विशिष्ट फ़ाइलों को लक्षित करें, जो फ़ाइल नाम या अन्य मानदंडों के आधार पर सटीक डेटा पुनर्प्राप्ति या चयनात्मक डीकंप्रेसन की अनुमति देता है।
  • डेटा संपीड़न: फ़ाइल आकार को महत्वपूर्ण रूप से कम करने के लिए कुशल LZMA2 संपीड़न विधि का उपयोग करके फ़ाइलों और निर्देशिकाओं से .xz संग्रह बनाएं।
  • कस्टम संपीड़न सेटिंग्स: संपीड़न गति और फ़ाइल आकार के बीच संतुलन बनाने के लिए संपीड़न स्तर और अन्य मापदंडों को समायोजित करें, प्रक्रिया को अपनी विशिष्ट आवश्यकताओं के अनुरूप बनाएं।

.XZ फ़ाइल की संरचना

.xz फ़ाइल स्वरूप का उपयोग मुख्य रूप से डेटा के संपीड़न और पैकेजिंग के लिए किया जाता है। यह उच्च संपीड़न अनुपात प्राप्त करने के लिए LZMA2 एल्गोरिथ्म को नियोजित करता है। यहां .xz संग्रह की संरचना का अवलोकन दिया गया है:

  1. स्ट्रीम हेडर:

    • मैजिक बाइट्स: पहले 6 बाइट्स (एफडी 37 7ए 58 5ए 00) फ़ाइल को .xz संग्रह के रूप में पहचानते हैं।
    • स्ट्रीम फ़्लैग: इसमें ब्लॉक आकार और संपीड़न विकल्प जैसे विवरण शामिल हैं।
  2. ब्लॉक हेडर:

    • ब्लॉक आकार: आने वाले ब्लॉक के आकार को इंगित करता है।
    • संपीड़न विधि: उपयोग किए गए एल्गोरिदम को निर्दिष्ट करता है (आमतौर पर LZMA2)।
    • फ़िल्टर चेन: संपीड़न से पहले या बाद में लागू किए गए किसी भी अतिरिक्त फ़िल्टर का विवरण।
  3. संपीड़ित डेटा ब्लॉक:

    • डेटा: LZMA2 एल्गोरिथ्म का उपयोग करके संपीड़ित वास्तविक डेटा।
    • CRC32: संपीड़ित डेटा की अखंडता को सत्यापित करने के लिए उपयोग किया जाने वाला एक चेकसम।
  4. सूचकांक अनुभाग:

    • इंडेक्स डेटा: प्रत्येक ब्लॉक और असम्पीडित आकार को ऑफसेट प्रदान करता है, जिससे संपीड़ित स्ट्रीम के भीतर यादृच्छिक पहुंच की अनुमति मिलती है।
    • सूचकांक सीआरसी32: सूचकांक अनुभाग की अखंडता सुनिश्चित करता है।
  5. स्ट्रीम फ़ुटर:

    • स्ट्रीम फ़्लैग: सत्यापन उद्देश्यों के लिए हेडर से स्ट्रीम फ़्लैग को दोहराता है।
    • पिछड़ा आकार: सूचकांक अनुभाग का आकार, फ़ाइल के रिवर्स ट्रैवर्सल को सक्षम करना।
    • मैजिक बाइट्स: फ़ाइल .xz संग्रह के अंत को इंगित करने के लिए 2-बाइट अनुक्रम (59 5A) के साथ समाप्त होती है।
  6. वैकल्पिक मेटाडेटा:

    • कुछ .xz अभिलेखों में विशेष सुविधाओं या विस्तारित कार्यक्षमता के लिए अतिरिक्त मेटाडेटा शामिल हो सकता है, जैसे कस्टम फ़िल्टर या एन्क्रिप्शन।

.XZ फ़ाइल की संरचना

XZ प्रारूप की लोकप्रियता

.xz फ़ाइल प्रारूप ने अपने उच्च संपीड़न अनुपात और संसाधनों के कुशल उपयोग के कारण, विशेष रूप से लिनक्स और ओपन-सोर्स समुदायों में महत्वपूर्ण लोकप्रियता हासिल की है। इसका व्यापक रूप से सॉफ़्टवेयर पैकेजों को संपीड़ित करने, स्रोत कोड वितरित करने और बड़े डेटासेट संग्रहीत करने के लिए उपयोग किया जाता है। XZ यूटिल्स टूलसेट Linux, macOS और Windows सहित विभिन्न प्लेटफार्मों पर .xz फ़ाइलें बनाने, निकालने और प्रबंधित करने के लिए मजबूत समर्थन प्रदान करता है। यद्यपि विंडोज़ वातावरण में ज़िप या सीएबी के रूप में व्यापक रूप से अपनाया नहीं गया है, .xz को संपीड़न प्रभावशीलता और प्रदर्शन के बीच संतुलन के लिए सराहा जाता है, जिससे यह डेवलपर्स और सिस्टम प्रशासकों के लिए एक पसंदीदा विकल्प बन जाता है। इसके अतिरिक्त, .xz को कई पैकेज प्रबंधन प्रणालियों में एकीकृत किया गया है, जैसे कि डेबियन का एपीटी और आर्क लिनक्स का पैकमैन, जो सॉफ्टवेयर वितरण पारिस्थितिकी तंत्र में अपनी भूमिका को और मजबूत करता है।

XZ अभिलेखागार का उपयोग करने के उदाहरण

यह अनुभाग कोड उदाहरण प्रदान करता है जो दर्शाता है कि C# और Java का उपयोग करके XZ अभिलेखागार को कैसे संपीड़ित और डीकंप्रेस किया जाए। ये उदाहरण XZ फ़ाइलों के साथ इंटरैक्ट करने के लिए C# के लिए Aspose.Zip और अंतर्निहित XzArchive क्लास (जावा वातावरण के आधार पर) जैसी लाइब्रेरी का उपयोग करते हैं।

Compress XZ File via C#

    using (FileStream xzFile = File.Open("data.bin.xz", FileMode.Create))
    {
        using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
        {
            using (var archive = new XzArchive(Aspose.Zip.Xz.Settings.XzArchiveSettings.FastestSpeed))
            {
                archive.SetSource(source);
                archive.Save(xzFile);
            }
        }
    }

Open XZ Archive via C#

    using (var archive = new XzArchive("data.bin.xz"))
    {
        archive.Extract("data.bin");
    }

Compress XZ File via C#

    try (FileOutputStream xzFile = new FileOutputStream("data.bin.xz")) {
        try (FileInputStream source = new FileInputStream("data.bin")) {
            try (XzArchive archive = new XzArchive(XzArchiveSettings.getFastestSpeed())) {
                archive.setSource(source);
                archive.save(xzFile);
            }
        }
    } catch (IOException ex) {
    }

Open XZ Archive via Java

    try (XzArchive archive = new XzArchive("data.bin.xz")) {
        archive.extract("data.bin");
    }

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

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

अतिरिक्त जानकारी

लोग पूछ रहे हैं

1. क्या .xz सभी ऑपरेटिंग सिस्टम पर समर्थित है?

जबकि .xz का उपयोग आमतौर पर लिनक्स वातावरण में किया जाता है, यह सभी प्रमुख ऑपरेटिंग सिस्टम पर समर्थित है। XZ Utils जैसे टूल Windows और macOS के लिए उपलब्ध हैं, और क्रॉस-प्लेटफ़ॉर्म टूल जैसे 7-Zip भी सपोर्ट करते हैं .xz फ़ाइलें.

2. XZ फ़ाइलों का उपयोग करने के क्या फायदे हैं?

XZ फ़ाइलें उच्च संपीड़न अनुपात, सिस्टम संसाधनों का कुशल उपयोग और क्रॉस-प्लेटफ़ॉर्म संगतता सहित कई लाभ प्रदान करती हैं। इनका उपयोग आमतौर पर बड़े डेटासेट को संग्रहीत करने, सॉफ़्टवेयर पैकेज वितरित करने और डेटा का बैकअप लेने के लिए किया जाता है।

3. क्या मैं एकाधिक फ़ाइलों को एक ही .xz संग्रह में संपीड़ित कर सकता हूँ?

ZIP या जैसे प्रारूपों के विपरीत TAR , .xz का उपयोग आमतौर पर किसी एकल फ़ाइल को संपीड़ित करने के लिए किया जाता है। यदि आप एकाधिक फ़ाइलों को संपीड़ित करना चाहते हैं, तो आपको पहले उन्हें एक एकल फ़ाइल में संग्रहित करना होगा Aspose.Zip API का उपयोग करके एक .tar फ़ाइल बनाएं और फिर .xz का उपयोग करके संग्रह को संपीड़ित करें, जिसके परिणामस्वरूप एक .tar.xz फ़ाइल बनेगी।