यूजरस्पेस में फाइलसिस्टम

From Vigyanwiki

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

फ्यूज लिनक्स, फ्रीबीएसडी, ओपनबीएसडी, नेटबीएसडी (पुफ्फ्स (नेटबीएसडी) के रूप में), ओपनसोलारिस, मिनिक्स 3, मैक ओएस, और माइक्रोसॉफ़्ट विंडोज़ के लिए उपलब्ध है।[1] [2]

फ्यूज मुफ्त सॉफ्टवेयर है जो मूल रूप से जीएनयू जनरल पब्लिक लाइसेंस और जीएनयू लेसर जनरल पब्लिक लाइसेंस की नियम के तहत जारी किया गया है।

इतिहास

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

फ्यूज मूल रूप से जीएनयू जनरल पब्लिक लाइसेंस और जीएनयू लेसर जनरल पब्लिक लाइसेंस की नियम के तहत जारी किया गया था, जिसे बाद में फ्रीबीएसडी बेस प्रणाली के हिस्से के रूप में भी प्रयुक्त किया गया था।[4] और बीएसडी लाइसेंस या 2-क्लॉज लाइसेंस की नियम के तहत जारी किया गया। सिल्वेस्ट्रे गैलन द्वारा आईएससी लाइसेंस-लाइसेंस पुन: कार्यान्वयन मार्च 2013 में जारी किया गया था,[5] और जून 2013 में ओपनबीएसडी में सम्मिलित किया गया था।[6]

फ्यूज को कर्नेल संस्करण 2.6.14 में मुख्यधारा के लिनक्स कर्नेल ट्री में मिला दिया गया था।[7]

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

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

संचालन और उपयोग

फ्यूज कैसे कार्य करता है यह दर्शाने वाला फ़्लो-चार्ट डायग्राम: यूज़रस्पेस से सूची फ़ाइलों के लिए अनुरोध (ls -l /tmp/फ्यूज) कर्नेल द्वारा वीएफएस के माध्यम से फ्यूज को पुनर्निर्देशित किया जाता है। फ्यूज तब पंजीकृत हैंडलर प्रोग्राम (./hello) को निष्पादित करता है और इसे अनुरोध (ls -l /tmp/फ्यूज) पास करता है। हैंडलर प्रोग्राम फ्यूज को वापस प्रतिक्रिया देता है जिसे बाद में यूजरस्पेस प्रोग्राम पर रीडायरेक्ट किया जाता है जिसने मूल रूप से अनुरोध किया था।

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

के साथ एक फ्यूज-आधारित फाइलसिस्टम को अनमाउंट करना फ्यूजrmount आज्ञा

वर्चुअल फाइलसिस्टम लिखने के लिए फ्यूज विशेष रूप से उपयोगी है। पारंपरिक फाइलसिस्टम के विपरीत जो अनिवार्य रूप से मास संचयन पर डेटा के साथ काम करते हैं, वर्चुअल फाइलसिस्टम वास्तव में खुद डेटा संचय नहीं करते हैं। वे उपस्थित फाइलसिस्टम या संचयन उपकरण के दृश्य या अनुवाद के रूप में कार्य करते हैं।

सिद्धांत रूप में, फ्यूज कार्यान्वयन के लिए उपलब्ध किसी भी संसाधन को फाइलसिस्टम के रूप में निर्यात किया जा सकता है।

अनुप्रयोग

ऑन-डिस्क फाइलसिस्टम

पारंपरिक ऑन-डिस्क फाइलसिस्टम को फ्यूज के साथ यूजर स्पेस में प्रयुक्त किया जा सकता है, उदा। संगतता या लाइसेंसिंग कारणों के लिए।

  • रैखिक टेप फाइलसिस्टम: डिस्क या रिमूवेबल फ्लैश ड्राइव की तरह मैग्नेटिक टेप पर संग्रहित फाइलों तक उसी तरह पहुंच की अनुमति देता है।
  • एनटीएफएस-3जी और कैप्टिव एनटीएफएस, एनटीएफएस फ़ाइल प्रणाली तक पहुँच की अनुमति देता है।
  • रेट्रो-फ्यूज: रेट्रो-फ्यूज यूजर-स्पेस फाइलसिस्टम है जो आधुनिक OSes पर प्राचीन यूनिक्स प्रणाली द्वारा बनाए गए फाइलसिस्टम को माउंट करने का एक विधि प्रदान करता है। रेट्रो-फ्यूज का वर्तमान संस्करण बीटीएल से रिसर्च यूनिक्स के पांचवें, छठे और सातवें संस्करण के साथ-साथ 2.9बीएसडी और 2.11बीएसडी आधारित प्रणाली द्वारा बनाए गए बढ़ते फाइलसिस्टम का समर्थन करता है।

लेयरिंग फाइलसिस्टम

फ्यूज फाइलप्रणाली एक अंतर्निहित फाइलसिस्टम का दृश्य बना सकता है, फाइलों को किसी तरह से रूपांतरित कर सकता है।

  • इएनसीएफएस: डिस्क एन्क्रिप्शन
  • फ्यूजकॉम्प्रेस, जीज़िप्फ्स, फ्यूज-जिप, कॉमफ्यूजड: कंप्रेस्ड वर्चुअल फ़ाइल प्रणाली
  • संग्रह फ़ाइल प्रणाली भी यह कार्य कर सकता है

संग्रह और बैकअप फाइलसिस्टम

फ्यूज फाइलप्रणाली अभिलेखागार या बैकअप सेट की सामग्री को पहले निकाले बिना उजागर कर सकता है।

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

दूरस्थ/वितरित फ़ाइल प्रणाली क्लाइंट

  • सर्नवीएम-एफएस: डिस्ट्रीब्यूटेड रीड-ओनली सॉफ्टवेयर डिस्ट्रीब्यूशन प्रणाली, जिसे एचटीटीपी ट्रांसपोर्ट का इस्तेमाल करते हुए यूजर स्पेस (फ्यूज) में पॉज़िक्स फाइलसिस्टम के रूप में प्रयुक्त किया गया है, ताकि वैश्विक स्तर पर तेजी से और विश्वसनीय विधि से सॉफ्टवेयर डिलीवर किया जा सके।
  • क्लाउडसंचयन (पूर्व में, कॉसमॉस फाइलप्रणाली): फ्यूज के माध्यम से बढ़ते हुए, उपस्थित लिनक्स उपयोगिताएं क्लाउडसंचयन के साथ इंटरैक्ट कर सकती हैं
  • एक्स्पनड्राइव: फ्यूज का उपयोग करके एसएफटीपी/फटीपी/एस3/स्विफ्ट को प्रयुक्त करने वाला वाणिज्यिक फ़ाइल प्रणाली है
  • एफटीपीएफएस
  • ग्लस्टरएफएस: क्लस्टर्ड डिस्ट्रीब्यूटेड फाइलप्रणाली जिसमें कई पेटाबाइट्स तक स्केल करने की क्षमता है।
  • गूफीस : फ्यूज फाइलप्रणाली जो प्रदर्शन पर जोर देने के साथ अमेज़ॅन एस3/माइक्रोसॉफ्ट एज़्योर संचयन तक पहुंच की अनुमति देता है।
  • गूगल-ड्राइव-ओकमlफ्यूज गूगल ड्राइव के लिए फ्यूज फ़ाइल प्रणाली है, जिसे ओकैमल में लिखा गया है। यह आपको अपने गूगल ड्राइव को लिनक्स पर माउंट करने देता है।
  • इंटरप्लेनेटरी_फाइल_प्रणाली: पीयर-टू-पीयर डिस्ट्रिब्यूटेड फाइलसिस्टम जो सभी कंप्यूटिंग उपकरण को फाइल के समान प्रणाली से संपर्क करना चाहता है।
  • जूस फाइलसिस्टम: रेडिस और एस3 के शीर्ष पर निर्मित एक वितरित पॉज़िक्स फाइलसिस्टम है।
  • कीबेस: एंड-टू-एंड एन्क्रिप्शन के साथ वितरित फ़ाइल प्रणाली और कीबेस पर आधारित वैश्विक नामस्थान। कीयबेस.आईओ सेवा जो क्रिप्टोग्राफ़िक रूप से सुरक्षित फ़ाइल माउंट बनाने के लिए फ्यूज का उपयोग करती है।
  • लस्टर (फाइलसिस्टम) चमक (फाइलसिस्टम) इसे यूजरस्पेस में चलाने की अनुमति देने के लिए फ्यूज का उपयोग करेगा, ताकि फ्रीबीएसडी पोर्ट संभव हो सके।[10] चूंकि, लस्टर का जेडएफएस-लिनक्स पोर्ट यूज़रस्पेस में जेडएफएस की डीएमयु (डेटा प्रबंधन इकाई) चलाएगा।[11]
  • मिनियो या मिनएफएस: अमेज़ॅन एस3 संगत ऑब्जेक्ट संचयन सर्वर के लिए मिनएफएस एक फ़्यूज़ ड्राइवर है। मिनएफएस[12] आपको दूरस्थ बकेट माउंट करने देता है (एक एस3 संगत ऑब्जेक्ट संचय से), जैसे कि यह स्थानीय निर्देशिका थी।
  • मूस फाइलसिस्टम: फ्यूज कार्यान्वयन (लिनक्स, फ्रीबीएसडी, नेटबीएसडी, ओपनसोलारिस, ओएस X) के साथ प्रत्येक ओएस पर उपलब्ध ओपन सोर्स डिस्ट्रीब्यूटेड फॉल्ट-टॉलरेंट फाइलसिस्टम, एक संसाधन के रूप में दिखाई देने वाले कई सर्वरों पर फैले डेटा के पेटाबाइट्स को संचय करने में सक्षम है।
  • नेक्सफ्स: व्यावसायिक लिनक्स फाइलसिस्टम जो ब्लॉक, फाइल और एस3 संगत क्लाउड और ऑब्जेक्ट संचयन को पॉज़िक्स संगत संचयन के पूल में जोड़ता है।
  • ऑब्जेक्टिवएफएस: फ्यूज का उपयोग करके ऑब्जेक्ट संचय बैकएंड (अमेज़ॅन एस3, गूगल क्लाउड संचयन या एस3-संगत ऑब्जेक्ट संचयन) के साथ वितरित फ़ाइल प्रणाली
  • आरक्लोन फ्यूज के साथ विभिन्न प्रकार के रिमोट / क्लाउड संचयन को माउंट कर सकता है।
  • एस3fs: एस3 बकेट को माउंट करने की क्षमता देता है जैसे कि यह एक स्थानीय फ़ाइल प्रणाली हो।
  • सेक्टर/क्षेत्र: सेक्टर एक वितरित फ़ाइल प्रणाली है जिसे बड़ी मात्रा में कमोडिटी कंप्यूटरों के लिए डिज़ाइन किया गया है। माउंटेबल लोकल फाइलसिस्टम इंटरफेस प्रदान करने के लिए सेक्टर फ्यूज का उपयोग करता है।
  • एसएसएचएफएस: सुरक्षित खोल के माध्यम से रिमोट फाइलसिस्टम तक पहुंच प्रदान करता है।
  • संचारित: वाणिज्यिक एफ़टीपी क्लाइंट जो मैकफ्यूस के माध्यम से फाइंडर में डिस्क के रूप में वेबडीवी, एसएफटीपी, एफ़टीपी और अमेज़ॅन एस3 सर्वर को माउंट करने की क्षमता भी जोड़ता है।
  • वेबड्राइव: वाणिज्यिक फ़ाइल प्रणाली जो वेबडेव, एसएफटीपी, एफटीपी, एफटीपीएस और अमेज़ॅन एस3 को प्रयुक्त करता है
  • विकिपीडियाएफएस: विकिपीडिया लेखों को इस तरह देखें और संपादित करें जैसे कि वे वास्तविक फाइलें हों
  • बहुत खूब: मल्टी-प्लेटफ़ॉर्म, जावा-आधारित पूरी तरह से ओएस एकीकृत वितरित फ़ाइल प्रणाली था। फ़ाइल प्रणाली एकीकरण के लिए क्रमशः फ्यूज, मैकफ्यूज औरसीबीएफएस जोड़ने का उपयोग करना, किसी भी जावा-सक्षम वेब ब्राउज़र से सुलभ जावा-आधारित ऐप के अलावा (सेवा 2015 में बंद कर दी गई)।
  • इंडेक्सएफएस: वितरित फ़ाइलों के लिए पारदर्शी कर्ल एक्सेस के साथ वितरित फ़ाइल एकत्रित फ़ाइल प्रणाली है।

अन्य

  • जीवीएफएस: गनोम डेस्कटॉप के लिए वर्चुअल फ़ाइल प्रणाली है।
  • रिवॉल्ट: एक बार के पासवर्ड (ओटीपी) प्रमाणीकरण के साथ लिफाफा एन्क्रिप्शन का उपयोग करके गुप्त और छोटे दस्तावेज़ों के लिए सुरक्षित और प्रमाणित संचयन। यह फाइलसिस्टम के रूप में वॉल्ट को एक्सपोज करने के लिए फ्यूज का उपयोग करता है।

यह भी देखें

संदर्भ

  1. "Home - FUSE for OS X".
  2. Zissimopoulos, Bill (2021-02-14), billziss-gh/winfsp, retrieved 2021-02-16
  3. "Some technical advantages of the Hurd". May 15, 2011. Retrieved March 28, 2016.
  4. "WhatsNew/FreeBSD10 - FreeBSD Wiki".
  5. "openbsd dev - tech - Fuse (and sshfs) support for OpenBSD". Archived from the original on 2020-10-26. Retrieved 2013-07-14.
  6. "'CVS: cvs.openbsd.org: src' - MARC".
  7. "file-systems.fuse.devel - FUSE merged to 2.6.14! - msg#00021 - Recent Discussion OSDir.com". Archived from the original on 2016-04-20.
  8. "libfuse/libfuse, the reference implementation of the Linux FUSE (Filesystem in Userspace) interface". libfuse. 9 January 2020. Retrieved 9 January 2020.
  9. "libfuse3 ChangeLog". GitHub. Retrieved 9 January 2020.
  10. "Lustre FreeBSD". Archived from the original on 2008-03-12. Retrieved 2008-03-02.
  11. "Architecture ZFS for Lustre". Sun Microsystems. Archived from the original on 2009-01-22. Retrieved 2008-03-02.
  12. "minio/minfs". GitHub. Retrieved 12 April 2018.


बाहरी संबंध