पर्चिव

From alpha
Jump to navigation Jump to search
Parchive
Filename extension
.par, .par2, .p??, (.par3 future)
Type of formatErasure code, archive file

पार्चिव (पैरिटी आर्काइव का एक सूटकेस, और औपचारिक रूप से पैरिटी वॉल्यूम सेट विशिष्टता के रूप में जाना जाता है[1][2]) एक मिटाने का कोड प्रणाली है जो डेटा अखंडता के अंततः, सत्यापन के लिए पार फ़ाइलें तैयार करती है, जिसमें डेटा पुनर्प्राप्ति संचालन करने की क्षमता होती है जो दूषित या गुम डेटा की मरम्मत या पुन: उत्पन्न कर सकती है।

पार्चिव मूल रूप से यूज़नेट पर विश्वसनीय फ़ाइल साझाकरण की समस्या को हल करने के लिए लिखा गया था,[3] लेकिन इसका उपयोग किसी भी प्रकार के डेटा को डेटा भ्रष्टाचार, डिस्क सड़न, डेटा गिरावट और आकस्मिक या दुर्भावनापूर्ण क्षति से बचाने के लिए किया जा सकता है। नाम के बावजूद, पार्चिव त्रुटि का पता लगाने और सुधार के सरल समता द्वियक तरीकों की तुलना में अधिक उन्नत तकनीकों (विशेष रूप से त्रुटि सुधार कोड) का उपयोग करता है।

2014 तक, PAR1 अप्रचलित है, PAR2 व्यापक उपयोग के लिए परिपक्व है, और PAR3 मल्टीपार लेखक युताका सवादा द्वारा विकसित एक बंद प्रयोगात्मक संस्करण है।[4][5][6][7] मूल सोर्सफोर्ज पार्चिव परियोजना 30 अप्रैल 2015 से निष्क्रिय है।[8] PAR2 विनिर्देश लेखक माइकल नाहास द्वारा 28 अप्रैल, 2019 से एक नए PAR3 विनिर्देश पर काम किया जा रहा है। PAR3 विनिर्देश का एक अल्फा संस्करण 29 जनवरी, 2022 को प्रकाशित किया गया है[9] जबकि कार्यक्रम स्वयं विकसित किया जा रहा है।

इतिहास

पार्चिव का उद्देश्य यूज़नेट समाचार समूहों के माध्यम से फ़ाइलों को स्थानांतरित करने की विश्वसनीयता बढ़ाना था। यूज़नेट मूल रूप से अनौपचारिक बातचीत के लिए डिज़ाइन किया गया था, और अंतर्निहित प्रोटोकॉल, एनएनटीपी को मनमाना बाइनरी डेटा प्रसारित करने के लिए डिज़ाइन नहीं किया गया था। एक और सीमा, जो बातचीत के लिए स्वीकार्य थी लेकिन फ़ाइलों के लिए नहीं, वह यह थी कि संदेश आम तौर पर लंबाई में काफी छोटे होते थे और 7-बिट ASCII टेक्स्ट तक सीमित होते थे।[10] यूज़नेट पर फ़ाइलें भेजने के लिए विभिन्न तकनीकें तैयार की गईं, जैसे uuencode और बेस64। बाद में यूज़नेट सॉफ़्टवेयर ने 8 बिट विस्तारित ASCII की अनुमति दी, जिसने yEnc जैसी नई तकनीकों की अनुमति दी। दूषित डाउनलोड के प्रभाव को कम करने के लिए बड़ी फ़ाइलों को तोड़ दिया गया, लेकिन यूज़नेट की अविश्वसनीय प्रकृति बनी रही।

पार्चिव की शुरूआत के साथ, समता फ़ाइलें बनाई जा सकती थीं जिन्हें मूल डेटा फ़ाइलों के साथ अपलोड किया गया था। यदि यूज़नेट सर्वर के बीच प्रसारित होने के दौरान कोई भी डेटा फ़ाइल क्षतिग्रस्त या खो गई थी, तो उपयोगकर्ता समता फ़ाइलें डाउनलोड कर सकते हैं और क्षतिग्रस्त या गुम फ़ाइलों को फिर से बनाने के लिए उनका उपयोग कर सकते हैं। पार्चिव में छोटी इंडेक्स फ़ाइलों (संस्करण 1 में *.par और संस्करण 2 में *.par2) का निर्माण शामिल था, जिसमें कोई पुनर्प्राप्ति डेटा नहीं होता है। इन इंडेक्स में हैश फंकशन होते हैं जिनका उपयोग लक्ष्य फ़ाइलों को तुरंत पहचानने और उनकी अखंडता को सत्यापित करने के लिए किया जा सकता है।

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

जुलाई 2001 में, टोबियास रीपर और स्टीफ़न वेहलस ने पैरिटी वॉल्यूम सेट विनिर्देश का प्रस्ताव रखा, और अन्य परियोजना सदस्यों की सहायता से, विनिर्देश का संस्करण 1.0 अक्टूबर 2001 में प्रकाशित किया गया था।[11] Par1 ने नई पुनर्प्राप्ति फ़ाइलें बनाने के लिए रीड-सोलोमन त्रुटि सुधार का उपयोग किया। किसी भी पुनर्प्राप्ति फ़ाइल का उपयोग अधूरे डाउनलोड से गायब फ़ाइल को फिर से बनाने के लिए किया जा सकता है।

संस्करण 1 यूज़नेट पर व्यापक रूप से उपयोग किया जाने लगा, लेकिन इसकी कुछ सीमाएँ थीं:

  • इसे अधिकतम 255 फाइलों को संभालने तक ही सीमित रखा गया था।
  • पुनर्प्राप्ति फ़ाइलें सबसे बड़ी इनपुट फ़ाइल के आकार की होनी चाहिए, इसलिए जब इनपुट फ़ाइलें विभिन्न आकारों की थीं तो यह अच्छी तरह से काम नहीं करती थी। (मालिकाना RAR संपीड़न उपकरण के साथ नहीं जोड़े जाने पर इसकी उपयोगिता सीमित हो गई।)
  • पुनर्प्राप्ति एल्गोरिदम में एक खामी के कारण एक बग था[12] अकादमिक पेपर में[13] जिस पर यह आधारित था.
  • यह यूज़नेट से मजबूती से जुड़ा हुआ था और यह महसूस किया गया कि अधिक सामान्य टूल का व्यापक दर्शक वर्ग हो सकता है।

जनवरी 2002 में, हॉवर्ड फुकाडा ने प्रस्तावित किया कि महत्वपूर्ण परिवर्तनों के साथ एक नया Par2 विनिर्देश तैयार किया जाना चाहिए, जिसमें डेटा सत्यापन और मरम्मत पूरी फ़ाइलों के बजाय डेटा के ब्लॉक पर काम करना चाहिए, और एल्गोरिदम को PAR1 द्वारा उपयोग किए जाने वाले 8 बिट नंबरों के बजाय 16 बिट नंबरों का उपयोग करने पर स्विच करना चाहिए। माइकल नाहास और पीटर क्लेमेंट्स ने पॉल नेटल और रयान गैलाघेर (जिन्होंने दोनों Par1 क्लाइंट लिखे थे) के अतिरिक्त इनपुट के साथ, जुलाई 2002 में इन विचारों को अपनाया। पार्चिव विनिर्देश का संस्करण 2.0 सितंबर 2002 में माइकल नाहास द्वारा प्रकाशित किया गया था।[14] इसके बाद पीटर क्लेमेंट्स ने पहले दो Par2 कार्यान्वयन, QuickPar और par2cmdline लिखे। 2004 से छोड़े गए, पॉल हौले ने par2cmdline को प्रतिस्थापित करने के लिए phpar2 बनाया। युताका सवादा ने क्विकपार का स्थान लेने के लिए मल्टीपार बनाया। मल्टीपार मल्टीपार के बैकएंड इंजन के रूप में उपयोग करने के लिए par2j.exe (जो आंशिक रूप से par2cmdline की अनुकूलन तकनीकों पर आधारित है) का उपयोग करता है।

संस्करण

फ़ाइल स्वरूप के संस्करण 1 और 2 असंगत हैं। (हालांकि, कई ग्राहक दोनों का समर्थन करते हैं।)

Par1

Par1 के लिए, फ़ाइलें f1, f2, ..., fn, Parchive में एक इंडेक्स फ़ाइल (f.par) होती है, जो CRC प्रकार की फ़ाइल होती है जिसमें कोई पुनर्प्राप्ति ब्लॉक नहीं होता है, और कई समता वॉल्यूम (f.p01, f.p02, आदि)। एक (उदाहरण के लिए, f2) को छोड़कर सभी मूल फ़ाइलों को देखते हुए, अन्य सभी मूल फ़ाइलों और समता खंडों में से किसी एक को देखते हुए लापता f2 बनाना संभव है। वैकल्पिक रूप से, किन्हीं दो समता खंडों आदि से दो गुम फ़ाइलों को फिर से बनाना संभव है।[15] Par1 कुल 256 स्रोत और पुनर्प्राप्ति फ़ाइलों का समर्थन करता है।

Par2

Par2 फ़ाइलें आम तौर पर इस नामकरण/विस्तार प्रणाली का उपयोग करती हैं: फ़ाइल नाम.vol000+01.PAR2, फ़ाइल नाम.vol001+02.PAR2, फ़ाइल नाम.vol003+04.PAR2, फ़ाइल नाम.vol007+06.PAR2, आदि। फ़ाइल नाम में + के बाद की संख्या इंगित करती है कि इसमें कितने ब्लॉक हैं, और वॉल्यूम के बाद की संख्या PAR2 फ़ाइल के भीतर पहले पुनर्प्राप्ति ब्लॉक की संख्या को इंगित करती है। यदि किसी डाउनलोड की इंडेक्स फ़ाइल बताती है कि 4 ब्लॉक गायब हैं, तो फ़ाइलों को सुधारने का सबसे आसान तरीका फ़ाइलनाम.vol003+04.PAR2 डाउनलोड करना होगा। हालाँकि, अतिरेक के कारण, filename.vol007+06.PAR2 भी स्वीकार्य है। एक इंडेक्स फ़ाइल फ़ाइलनाम.PAR2 भी है, यह PAR1 में प्रयुक्त छोटी इंडेक्स फ़ाइल के कार्य के समान है।

Par2 विनिर्देश 32,768 स्रोत ब्लॉक और 65,535 पुनर्प्राप्ति ब्लॉक तक का समर्थन करता है। इनपुट फ़ाइलों को कई समान आकार के ब्लॉकों में विभाजित किया जाता है ताकि पुनर्प्राप्ति फ़ाइलों को सबसे बड़े इनपुट फ़ाइल के आकार की आवश्यकता न हो।

हालाँकि PAR2 विनिर्देशन में एक विकल्प के रूप में यूनिकोड का उल्लेख किया गया है, अधिकांश PAR2 कार्यान्वयन यूनिकोड का समर्थन नहीं करते हैं।

निर्देशिका समर्थन PAR2 विनिर्देश में शामिल है, लेकिन अधिकांश या सभी कार्यान्वयन इसका समर्थन नहीं करते हैं।

Par3

Par3 विनिर्देश को मूल रूप से Par2 विनिर्देश के संवर्द्धन के रूप में प्रकाशित करने की योजना बनाई गई थी। हालाँकि, आज तक,[when?] यह विनिर्देशन स्वामी युताका सवादा द्वारा बंद स्रोत बना हुआ है।

29 जनवरी, 2019 को अनुरक्षित फोर्क Par2cmdline के GitHub अंक अनुभाग में एक नए प्रारूप पर चर्चा शुरू हुई। चर्चा से एक नया प्रारूप तैयार हुआ जिसे Par3 भी नाम दिया गया है। नए Par3 प्रारूप का विनिर्देशन GitHub पर प्रकाशित है, लेकिन 28 जनवरी, 2022 तक एक अल्फा ड्राफ्ट बना हुआ है। विनिर्देश Par2 विनिर्देश के लेखक माइकल नाहास द्वारा युताका सवादा, एनीमेटोशो और मलेयर की मदद से लिखा गया है।

नए प्रारूप में Par2 प्रारूप की तुलना में कई फायदे होने का दावा किया गया है, जिनमें शामिल हैं:

  • 2 से अधिक का समर्थन करता है16फ़ाइलें और 2 से अधिक16ब्लॉक.
  • छोटी फ़ाइलों को एक ब्लॉक में पैक करने का समर्थन करता है, साथ ही जब एक ब्लॉक कई फ़ाइलों में दिखाई देता है तो डुप्लिकेशन का समर्थन करता है।
  • UTF-8 फ़ाइल नाम, फ़ाइल अनुमतियाँ, हार्ड लिंक और सॉफ्ट लिंक का समर्थन करता है।
  • PAR डेटा को अन्य प्रारूपों, जैसे ZIP (फ़ाइल प्रारूप) या ऑप्टिक डिस्क छवि के अंदर एम्बेड करने का समर्थन करता है।
  • वृद्धिशील बैकअप का समर्थन करता है, जहां उपयोगकर्ता कुछ फ़ाइल या फ़ोल्डर के लिए पुनर्प्राप्ति फ़ाइलें बनाता है, कुछ डेटा बदलता है, और कुछ पुरानी फ़ाइलों का पुन: उपयोग करके नई पुनर्प्राप्ति फ़ाइलें बनाता है।
  • अधिक त्रुटि सुधार कोड एल्गोरिदम (जैसे एलडीपीसी और विरल यादृच्छिक मैट्रिक्स) का समर्थन करता है।
  • Par2 में MD5 हैश फ़ंक्शन को BLAKE3 से बदला गया।
  • खाली निर्देशिकाओं का समर्थन करता है।
  • फ़ाइल अनुमतियों का समर्थन करता है।
  • हार्ड लिंक और प्रतीकात्मक लिंक का समर्थन करता है।

सॉफ्टवेयर

मल्टी-प्लेटफ़ॉर्म

  • par2+tbb (GNU जनरल पब्लिक लाइसेंस) - थ्रेडिंग बिल्डिंग ब्लॉक्स का उपयोग करके par2cmdline 0.4 का एक समवर्ती (मल्टीथ्रेडेड) संस्करण। केवल x86 आधारित सीपीयू के साथ संगत। यह फ्रीबीएसडी पोर्ट्स सिस्टम में par2cmdline-tbb के रूप में उपलब्ध है।
  • मूल par2cmdline — (अप्रचलित)। फ्रीबीएसडी पोर्ट्स सिस्टम में par2cmdline के रूप में उपलब्ध है।
  • par2cmdline BlackIkeEagle द्वारा बनाए रखा गया कांटा।
  • par2cmdline-mt ओपनएमपी, जीएनयू जनरल पब्लिक लाइसेंस या बाद के संस्करण का उपयोग करके par2cmdline का एक और बहुप्रचारित संस्करण है। वर्तमान में BlackIkeEagle के फोर्क में विलय कर दिया गया है और वहीं बनाए रखा गया है।
  • ParPar (CC0) एक उच्च प्रदर्शन, मल्टीथ्रेडेड PAR2 क्लाइंट और Node.js लाइब्रेरी है। सत्यापन या मरम्मत का समर्थन नहीं करता, यह वर्तमान में केवल PAR2 संग्रह बना सकता है।
  • par2dep (कम GNU जनरल पब्लिक लाइसेंस|LGPL-3.0) - कमांड लाइन के साथ-साथ ग्राफिकल यूजर इंटरफेस की सहायता से, पुनरावर्ती रूप से par2 फ़ाइलों का निर्माण, सत्यापन और मरम्मत करें। यह पायथन पैकेज इंडेक्स सिस्टम में [1] के रूप में उपलब्ध है।

खिड़कियाँ

  • मल्टीपार (फ्रीवेयर) - क्विकपार की सुविधाओं और जीयूआई पर आधारित है, और PAR2 बैकएंड के रूप में युताका सवाडा के par2j.exe का उपयोग करता है। मल्टीपार यूनिकोड द्वारा कई भाषाओं का समर्थन करता है। मल्टीपार का नाम बहुभाषी PAR क्लाइंट से लिया गया था। मल्टीपार को ट्रूओएस और उबंटू के तहत वाइन (सॉफ़्टवेयर) के साथ काम करने के लिए भी सत्यापित किया गया है, और यह अन्य ऑपरेटिंग सिस्टम के साथ भी काम कर सकता है।[16][17] हालाँकि Par2 घटक खुले स्रोत हैं (या होंगे), उनके शीर्ष पर मल्टीपार GUI वर्तमान में खुला स्रोत नहीं है।[18]
  • क्विकपार (फ्रीवेयर) - 2004 से अनुरक्षित, मल्टीपार द्वारा प्रतिस्थापित।
  • phpar2 — मल्टीथ्रेडिंग और अत्यधिक अनुकूलित असेंबलरकोड के साथ उन्नत par2cmdline (क्विकपार 0.9.1 से लगभग 66% तेज)
  • मिरर—पहला PAR कार्यान्वयन, 2001 से अनुरक्षित।

मैक ओएस एक्स

पॉज़िक्स

POSIX अनुरूप ऑपरेटिंग सिस्टम के लिए सॉफ़्टवेयर:

यह भी देखें

  • फ़ाइल संग्रहकर्ताओं की तुलना - कुछ फ़ाइल संग्रहकर्ता त्रुटि का पता लगाने और सुधार के लिए समता डेटा को अपने प्रारूप में एकीकृत करने में सक्षम हैं:
  • RAID - RAID 5 और उससे ऊपर के RAID स्तर त्रुटियों का पता लगाने और उन्हें ठीक करने के लिए समता डेटा का उपयोग करते हैं।

संदर्भ

  1. Re: Correction to Parchive on Wikipedia, Archived 2014-10-14 at the Wayback Machine reply #3, by Yutaka Sawada: "Their formal title are "Parity Volume Set Specification 1.0" and "Parity Volume Set Specification 2.0."
  2. Re: Correction to Parchive on Wikipedia, reply #3, by Yutaka Sawada: "Their formal title are "Parity Volume Set Specification 1.0" and "Parity Volume Set Specification 2.0."
  3. "Parchive: Parity Archive Volume Set". Retrieved 2009-10-29. The original idea behind this project was to provide a tool to apply the data-recovery capability concepts of RAID-like systems to the posting and recovery of multi-part archives on Usenet.
  4. "possibility of new PAR3 file". Archived from the original on 2012-07-07. Retrieved 2012-07-01.
  5. "Question about your usage of PAR3". Archived from the original on 2014-03-09. Retrieved 2012-07-01.
  6. "अज्ञात इच्छित संशोधन का जोखिम". Archived from the original on 2014-03-09. Retrieved 2012-07-01.
  7. "PAR3 specification proposal not finished as of April 2011". Archived from the original on 2014-03-09. Retrieved 2012-07-01.
  8. "Parchive: Parity Archive Tool". Retrieved 2020-05-20.
  9. "Parity Volume Set Specification 3.0 [2022-01-28 ALPHA DRAFT]". Michael Nahas, Yutaka-Sawada, animetosho, and malaire.
  10. Kantor, Brian; Lapsley, Phil (February 1986). "Character Codes". Network News Transfer Protocol. IETF. p. 5. sec. 2.2. doi:10.17487/RFC0977. RFC 977. Retrieved 2009-10-29.
  11. Nahas, Michael (2001-10-14). "पैरिटी वॉल्यूम सेट विशिष्टता v1.0". Retrieved 2017-06-19.
  12. Plank, James S.; Ding, Ying (April 2003). "Note: Correction to the 1997 Tutorial on Reed-Solomon Coding". Retrieved 2009-10-29.
  13. Plank, James S. (September 1997). "A Tutorial on Reed-Solomon Coding for Fault-Tolerance in RAID-like Systems". Retrieved 2009-10-29.
  14. Nahas, Michael; Clements, Peter; Nettle, Paul; Gallagher, Ryan (2003-05-11). "Parity Volume Set Specification 2.0". Retrieved 2009-10-29.
  15. Wang, Wallace (2004-10-25). "Finding movies (or TV shows): Recovering missing RAR files with PAR and PAR2 files". Steal this File Sharing Book (1st ed.). San Francisco, California: No Starch Press. pp. 164–167. ISBN 978-1-59327-050-6. Retrieved 2009-09-24.
  16. "MultiPar works with PCBSD 9.0". Archived from the original on 2013-09-28. Retrieved 2012-02-27.
  17. Working on Ubuntu 18.04 via wine[dead link]
  18. "स्रोत कोड के बारे में पूछते हुए आपसे संपर्क किया". Archived from the original on 2013-09-26. Retrieved 2013-09-21.


बाहरी संबंध