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

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

FUSE Linux, FreeBSD, OpenBSD, NetBSD (PUFFS (NetBSD) के रूप में), OpenSolaris, Minix 3, macOS, के लिए उपलब्ध है। और माइक्रोसॉफ़्ट विंडोज़। FUSE मुफ्त सॉफ्टवेयर है जो मूल रूप से जीएनयू जनरल पब्लिक लाइसेंस और जीएनयू लेसर जनरल पब्लिक लाइसेंस की शर्तों के तहत जारी किया गया है।

इतिहास
FUSE सिस्टम मूल रूप से AVFS (एक वर्चुअल फाइलसिस्टम) का हिस्सा था, एक फाइलसिस्टम कार्यान्वयन जो GNU हर्ड की अनुवादक अवधारणा से काफी प्रभावित था। इसने लिनक्स यूजरलैंड फाइलसिस्टम का स्थान ले लिया और एक ट्रांसलेशनल इंटरफेस प्रदान किया lufis libfuse1.

FUSE मूल रूप से GNU जनरल पब्लिक लाइसेंस और GNU लेसर जनरल पब्लिक लाइसेंस की शर्तों के तहत जारी किया गया था, जिसे बाद में FreeBSD बेस सिस्टम के हिस्से के रूप में भी लागू किया गया था। और बीएसडी लाइसेंस # 2-क्लॉज लाइसेंस की शर्तों के तहत जारी किया गया। सिल्वेस्ट्रे गैलन द्वारा एक आईएससी लाइसेंस-लाइसेंस पुन: कार्यान्वयन मार्च 2013 में जारी किया गया था, और जून 2013 में OpenBSD में शामिल किया गया। FUSE को कर्नेल संस्करण 2.6.14 में मुख्यधारा के Linux कर्नेल ट्री में मिला दिया गया था। FUSE का यूजरस्पेस पक्ष, द पुस्तकालय, आमतौर पर बीएसडी वंशजों के साथ सर्वोत्तम प्रयास संगतता बनाए रखते हुए लिनक्स कर्नेल विकास की गति का पालन करता है। यह संभव है क्योंकि कर्नेल FUSE अपने स्वयं के फीचर स्तरों या संस्करणों की रिपोर्ट करता है। MacOS, OSXFUSE के लिए FUSE फोर्क अपवाद है, जिसमें लाइब्रेरी साझा करने के लिए बहुत अधिक अंतर हैं। libfuse इतिहास में एक विराम libfuse3 है, जिसमें रखरखाव मोड के अंतर्गत पुराने libfuse2 की तुलना में इंटरफ़ेस और प्रदर्शन में कुछ असंगत सुधार शामिल हैं। चूंकि FUSE का कर्नेल-यूज़रस्पेस प्रोटोकॉल संस्करणित और सार्वजनिक है, एक प्रोग्रामर इसके स्थान पर कोड के एक अलग टुकड़े का उपयोग करना चुन सकता है और अभी भी कर्नेल की FUSE सुविधाओं के साथ संचार करता है। वहीं दूसरी ओर,  और इसके कई पोर्ट एक पोर्टेबल उच्च-स्तरीय इंटरफ़ेस प्रदान करते हैं जिसे किसी FUSE सुविधा के बिना सिस्टम पर लागू किया जा सकता है।

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

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

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

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


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

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


 * EncFS: डिस्क एन्क्रिप्शन
 * FuseCompress, gzipfs, Fuse-ZIP, CompFUSEd: कंप्रेस्ड वर्चुअल फ़ाइल सिस्टम
 * संग्रह फ़ाइल सिस्टम भी यह कार्य कर सकता है

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


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

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

 * CernVM-FS: एक डिस्ट्रीब्यूटेड रीड-ओनली सॉफ्टवेयर डिस्ट्रीब्यूशन सिस्टम, जिसे HTTP ट्रांसपोर्ट का इस्तेमाल करते हुए यूजर स्पेस (FUSE) में POSIX फाइल सिस्टम के रूप में लागू किया गया है, ताकि सॉफ्टवेयर डिलीवर किया जा सके। वैश्विक स्तर पर तेज और विश्वसनीय फैशन।
 * CloudStore (पूर्व में, Kosmos फाइलसिस्टम): FUSE के माध्यम से बढ़ते हुए, मौजूदा Linux उपयोगिताएं CloudStore के साथ इंटरैक्ट कर सकती हैं
 * ExpanDrive: FUSE का उपयोग करके SFTP/FTP/S3/Swift को लागू करने वाला एक वाणिज्यिक फ़ाइल सिस्टम
 * एफटीपीएफएस
 * GlusterFS: क्लस्टर्ड डिस्ट्रीब्यूटेड फाइलसिस्टम जिसमें कई पेटाबाइट्स तक स्केल करने की क्षमता है।
 * goofys: एक FUSE फाइलसिस्टम जो प्रदर्शन पर जोर देने के साथ Amazon S3/Microsoft Azure स्टोरेज तक पहुंच की अनुमति देता है।
 * google-drive-ocamlfuse Google ड्राइव के लिए एक FUSE फ़ाइल सिस्टम है, जिसे OCaml में लिखा गया है। यह आपको अपने Google ड्राइव को Linux पर माउंट करने देता है।
 * इंटरप्लेनेटरी_फाइल_सिस्टम: एक पीयर-टू-पीयर डिस्ट्रिब्यूटेड फाइल सिस्टम जो सभी कंप्यूटिंग डिवाइस को फाइल के समान सिस्टम से कनेक्ट करना चाहता है।
 * जूस फाइल सिस्टम: Redis और S3 के शीर्ष पर निर्मित एक वितरित POSIX फाइल सिस्टम।
 * कीबेस: एंड-टू-एंड एन्क्रिप्शन के साथ एक वितरित फ़ाइल सिस्टम और कीबेस पर आधारित एक वैश्विक नामस्थान। Keybase.io सेवा जो क्रिप्टोग्राफ़िक रूप से सुरक्षित फ़ाइल माउंट बनाने के लिए FUSE का उपयोग करती है।
 * लस्टर (फाइल सिस्टम) चमक (फाइल सिस्टम) इसे यूजरस्पेस में चलाने की अनुमति देने के लिए FUSE का उपयोग करेगा, ताकि एक FreeBSD पोर्ट संभव हो सके। हालाँकि, Luster का ZFS-Linux पोर्ट यूज़रस्पेस में ZFS की DMU (डेटा मैनेजमेंट यूनिट) चलाएगा।
 * Minio#MinFS: Amazon S3 संगत ऑब्जेक्ट स्टोरेज सर्वर के लिए MinFS एक फ़्यूज़ ड्राइवर है। मिनएफएस आपको एक दूरस्थ बकेट माउंट करने देता है (एक S3 संगत ऑब्जेक्ट स्टोर से), जैसे कि यह एक स्थानीय निर्देशिका थी।
 * मूस फाइल सिस्टम: FUSE कार्यान्वयन (Linux, FreeBSD, NetBSD, OpenSolaris, OS X) के साथ प्रत्येक OS पर उपलब्ध एक ओपन सोर्स डिस्ट्रीब्यूटेड फॉल्ट-टॉलरेंट फाइल सिस्टम, एक संसाधन के रूप में दिखाई देने वाले कई सर्वरों पर फैले डेटा के पेटाबाइट्स को स्टोर करने में सक्षम है।
 * Nexfs: एक व्यावसायिक लिनक्स फाइल सिस्टम जो ब्लॉक, फाइल और S3 संगत क्लाउड और ऑब्जेक्ट स्टोरेज को POSIX संगत स्टोरेज के एक पूल में जोड़ता है।
 * ObjectiveFS: FUSE का उपयोग करके ऑब्जेक्ट स्टोर बैकएंड (Amazon S3, Google क्लाउड स्टोरेज या S3-संगत ऑब्जेक्ट स्टोर) के साथ वितरित फ़ाइल सिस्टम
 * Rclone FUSE के साथ विभिन्न प्रकार के रिमोट / क्लाउड स्टोरेज को माउंट कर सकता है।
 * s3fs: S3 बकेट को माउंट करने की क्षमता देता है जैसे कि यह एक स्थानीय फ़ाइल सिस्टम हो।
 * सेक्टर/क्षेत्र: सेक्टर एक वितरित फ़ाइल सिस्टम है जिसे बड़ी मात्रा में कमोडिटी कंप्यूटरों के लिए डिज़ाइन किया गया है। माउंटेबल लोकल फाइल सिस्टम इंटरफेस प्रदान करने के लिए सेक्टर FUSE का उपयोग करता है।
 * SSHFS: सुरक्षित खोल के माध्यम से रिमोट फाइल सिस्टम तक पहुंच प्रदान करता है।
 * संचारित: एक वाणिज्यिक एफ़टीपी क्लाइंट जो मैकफ्यूस के माध्यम से फाइंडर में डिस्क के रूप में वेबडीवी, एसएफटीपी, एफ़टीपी और अमेज़ॅन एस3 सर्वर को माउंट करने की क्षमता भी जोड़ता है।
 * वेबड्राइव: एक वाणिज्यिक फ़ाइल सिस्टम जो WebDAV, SFTP, FTP, FTPS और Amazon S3 को लागू करता है
 * विकिपीडियाएफएस: विकिपीडिया लेखों को इस तरह देखें और संपादित करें जैसे कि वे वास्तविक फाइलें हों
 * बहुत खूब: एक मल्टी-प्लेटफ़ॉर्म, जावा-आधारित पूरी तरह से OS एकीकृत वितरित फ़ाइल सिस्टम था। फ़ाइल सिस्टम एकीकरण के लिए क्रमशः FUSE, MacFUSE और CBFS Connect का उपयोग करना, किसी भी जावा-सक्षम वेब ब्राउज़र से सुलभ जावा-आधारित ऐप के अलावा (सेवा 2015 में बंद कर दी गई)।
 * IndexFS: वितरित फ़ाइलों के लिए पारदर्शी CURL एक्सेस के साथ एक दूरस्थ फ़ाइल एकत्रित फ़ाइल सिस्टम।

अन्य

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

यह भी देखें

 * PUFFS (NetBSD), FUSE संगतता के साथ एक समान रूपरेखा
 * 9P (प्रोटोकॉल)
 * इंस्टाल करने योग्य फाइल सिस्टम
 * दुकान पुस्तकालय FUSE विंडोज अनुकूलता
 * Windows अनुमानित फ़ाइल सिस्टम (ProjFS)

बाहरी संबंध

 * Develop your own filesystem with FUSE by Sumit Singh
 * List of FUSE filesystems
 * Documentation/filesystems/fuse.txt documentation in Linux source tree
 * WinFSP, a FUSE-like system for Windows (a FUSE compatibility layer is provided for Cygwin)
 * Crossmeta FUSE, Port of FUSE to Windows (commercial software)
 * Crossmeta FUSE, Port of FUSE to Windows (commercial software)