यूनिक्स फाइल सिस्टम: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 28: Line 28:
}}
}}


[[यूनिक्स]] [[फाइल सिस्टम]] (यूएफएस) कई यूनिक्स और यूनिक्स जैसे ऑपरेटिंग सिस्टम द्वारा समर्थित फाइल सिस्टम का एक परिवार है। यह [[संस्करण 7 यूनिक्स]] द्वारा उपयोग की जाने वाली मूल फ़ाइल प्रणाली का दूर का वंशज है।
[[यूनिक्स]] [[फाइल सिस्टम]] (यूएफएस) कई यूनिक्स और यूनिक्स जैसे ऑपरेटिंग सिस्टम द्वारा समर्थित फाइल सिस्टम का एक वर्ग है। यह [[संस्करण 7 यूनिक्स]] द्वारा उपयोग की जाने वाली मूल फ़ाइल प्रणाली का दूर का वंशज है।


== डिजाइन ==
== डिजाइन ==
Line 34: Line 34:
एक यूएफएस वॉल्यूम निम्नलिखित भागों से बना होता है:
एक यूएफएस वॉल्यूम निम्नलिखित भागों से बना होता है:


* [[बूटस्ट्रैपिंग (कंप्यूटिंग)]] के लिए आरक्षित विभाजन की शुरुआत में कुछ ब्लॉक (जिन्हें फाइल सिस्टम से अलग से इनिशियलाइज़ किया जाना चाहिए)
* [[बूटस्ट्रैपिंग (कंप्यूटिंग)]] के लिए आरक्षित विभाजन की प्रारंभ में कुछ ब्लॉक (जिन्हें फाइल सिस्टम से अलग से इनिशियलाइज़ किया जाना चाहिए)
* एक सुपरब्लॉक, जिसमें एक [[ जादू संख्या (प्रोग्रामिंग) ]] होता है, जो इसे यूएफएस फाइलसिस्टम के रूप में पहचानता है, और कुछ अन्य महत्वपूर्ण संख्याएं इस फाइलसिस्टम की ज्यामिति और सांख्यिकी और व्यवहार ट्यूनिंग मापदंडों का वर्णन करती हैं।
* एक सुपरब्लॉक जिसमें एक [[ जादू संख्या (प्रोग्रामिंग) | मैजिक संख्या (प्रोग्रामिंग)]] होता है जो इसे यूएफएस फाइलसिस्टम के रूप में पहचानता है और कुछ अन्य महत्वपूर्ण संख्याएं इस फाइलसिस्टम की ज्यामिति और सांख्यिकी और व्यवहार ट्यूनिंग मापदंडों का वर्णन करती हैं।
* सिलेंडर समूहों का संग्रह। प्रत्येक सिलेंडर समूह में निम्नलिखित घटक होते हैं:
* सिलेंडर समूहों का संग्रह प्रत्येक सिलेंडर समूह में निम्नलिखित घटक होते हैं:
** सुपरब्लॉक की बैकअप प्रति
** सुपरब्लॉक की बैकअप प्रति
** सुपरब्लॉक के समान इस सिलेंडर समूह के बारे में आंकड़ों, मुफ्त सूचियों आदि के साथ एक सिलेंडर समूह हेडर
** सुपरब्लॉक के समान इस सिलेंडर समूह के बारे में आंकड़ों मुफ्त सूचियों आदि के साथ एक सिलेंडर समूह हेडर
** कई [[इनोड]]्स, प्रत्येक में फ़ाइल विशेषताएँ होती हैं
** कई [[इनोड|इनोड्स]] प्रत्येक में फ़ाइल विशेषताएँ होती हैं
** कई [[ब्लॉक (डेटा संग्रहण)]]
** कई [[ब्लॉक (डेटा संग्रहण)]]


इनोड्स को क्रमिक रूप से क्रमांकित किया जाता है, 0 से शुरू होता है। इनोड 0 असंबद्ध निर्देशिका प्रविष्टियों के लिए आरक्षित है, इनोड 1 ऐतिहासिक यूनिक्स संस्करणों में खराब ब्लॉक फ़ाइल का इनोड था, इसके बाद [[ मूल निर्देशिका ]] के लिए इनोड होता है, जो हमेशा इनोड 2 और इनोड होता है। खोई हुई + मिली निर्देशिका के लिए जो इनोड 3 है।
इनोड्स को क्रमिक रूप से 0 से प्रारंभ किया जाता है। इनोड 0 असंबद्ध निर्देशिका प्रविष्टियों के लिए आरक्षित है। इनोड 1 ऐतिहासिक यूनिक्स संस्करणों में खराब ब्लॉक फ़ाइल का इनोड था इसके बाद रूट [[ मूल निर्देशिका | मूल निर्देशिका]]के लिए इनोड होता है जो सदैव इनोड 2 होता है और खोए हुए के लिए इनोड होता है। + मिली निर्देशिका जो इनोड 3 है।


निर्देशिका फ़ाइलों में केवल निर्देशिका में फ़ाइल नामों की सूची और प्रत्येक फ़ाइल से जुड़े इनोड होते हैं। सभी फ़ाइल [[मेटाडेटा (कंप्यूटिंग)]] को इनोड में रखा जाता है।
निर्देशिका फ़ाइलों में केवल निर्देशिका में फ़ाइल नामों की सूची और प्रत्येक फ़ाइल से जुड़े इनोड होते हैं। सभी फ़ाइल [[मेटाडेटा (कंप्यूटिंग)]] को इनोड में रखा जाता है।
Line 48: Line 48:
== इतिहास और विकास ==
== इतिहास और विकास ==


आरंभिक यूनिक्स फाइल सिस्टम को केवल FS के रूप में संदर्भित किया जाता था। FS में केवल बूट ब्लॉक, सुपरब्लॉक, इनोड्स का एक समूह और डेटा ब्लॉक शामिल थे। शुरुआती यूनिक्स के लिए डिजाइन किए गए छोटे डिस्क के लिए यह अच्छी तरह से काम करता था, लेकिन जैसे-जैसे तकनीक उन्नत होती गई और डिस्क बड़ी होती गई, सिर को इनोड्स के समूह और डेटा ब्लॉक के बीच आगे-पीछे करने से हार्ड डिस्क ड्राइव प्रदर्शन विशेषताओं का कारण बना #समय की तलाश करें। [[Kirk McKusick]], तत्कालीन कैलिफ़ोर्निया विश्वविद्यालय, बर्कले स्नातक छात्र, ने V7 FS लेआउट को 4.2BSD बनाने के लिए अनुकूलित किया | BSD 4.2 का FFS (फास्ट फाइल सिस्टम) सिलेंडर समूहों का आविष्कार करके, जो प्रत्येक समूह के साथ डिस्क को छोटे टुकड़ों में तोड़ देता है। इसके अपने इनोड और डेटा ब्लॉक हैं।<ref>{{cite web |title=Open Sources: Voices from the Open Source Revolution |date=29 March 1999 |url=https://www.oreilly.com/openbook/opensources/book/kirkmck.html}}</ref><ref>{{cite journal |last1=McKusick |first1=K M |last2=Joy |first2=W |last3=Leffler |first3=S |last4=Fabry |first4=R |title=UNIX के लिए एक तेज़ फ़ाइल सिस्टम|journal=ACM Transactions on Computer Systems |date=August 1984 |volume=2 |issue=3 |pages=181–197 | url = https://www.cs.cornell.edu/Courses/cs614/2003SP/papers/KJL84.pdf | doi = 10.1145/989.990 | s2cid = 222285164 | access-date = 2013-04-08}}</ref>
आरंभिक यूनिक्स फाइल सिस्टम को केवल एफएस के रूप में संदर्भित किया जाता था। एफएस में केवल बूट ब्लॉक, सुपरब्लॉक, इनोड्स का एक समूह और डेटा ब्लॉक सम्मिलित थे। प्रारंभिक यूनिक्स के लिए डिजाइन किए गए छोटे डिस्क के लिए यह अच्छी तरह से काम करता था किन्तु जैसे-जैसे विधि उन्नत होती गई और डिस्क बड़ी होती गई, हेड को इनोड्स के समूह और डेटा ब्लॉक के बीच आगे-पीछे करने से हार्ड डिस्क ड्राइव प्रदर्शन विशेषताओं का कारण बना या समय की खोज करें। किर्क मैककुसिक तत्कालीन कैलिफ़ोर्निया विश्वविद्यालय, बर्कले स्नातक छात्र, ने V7 एफएस लेआउट को 4.2BSD बनाने के लिए अनुकूलित किया | बीएसडी 4.2 का एफएफएस (फास्ट फाइल सिस्टम) सिलेंडर समूहों का आविष्कार करके जो प्रत्येक समूह के साथ डिस्क को छोटे टुकड़ों में तोड़ देता है। इसके अपने इनोड और डेटा ब्लॉक हैं।<ref>{{cite web |title=Open Sources: Voices from the Open Source Revolution |date=29 March 1999 |url=https://www.oreilly.com/openbook/opensources/book/kirkmck.html}}</ref><ref>{{cite journal |last1=McKusick |first1=K M |last2=Joy |first2=W |last3=Leffler |first3=S |last4=Fabry |first4=R |title=UNIX के लिए एक तेज़ फ़ाइल सिस्टम|journal=ACM Transactions on Computer Systems |date=August 1984 |volume=2 |issue=3 |pages=181–197 | url = https://www.cs.cornell.edu/Courses/cs614/2003SP/papers/KJL84.pdf | doi = 10.1145/989.990 | s2cid = 222285164 | access-date = 2013-04-08}}</ref>
बीएसडी एफएफएस का इरादा एक ही सिलेंडर समूह में संबंधित डेटा ब्लॉक और मेटाडेटा को स्थानीयकृत करने का प्रयास करना है, और आदर्श रूप से, एक ही या आस-पास के सिलेंडर समूह में निर्देशिका की सभी सामग्री (सभी फाइलों के लिए डेटा और मेटाडेटा दोनों) संपूर्ण डिस्क पर निर्देशिका की सामग्री को बिखेरने के कारण [[फ़ाइल सिस्टम विखंडन]] को कम करना।


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


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


बड़ा डिस्क आकार भी संभव है, क्योंकि ब्लॉक की अधिकतम संख्या निश्चित बिट-चौड़ाई ब्लॉक संख्या द्वारा सीमित है। हालाँकि, बड़े ब्लॉक आकार के साथ, कई छोटी फ़ाइलों के साथ डिस्क जगह बर्बाद कर देगी, क्योंकि प्रत्येक फ़ाइल को कम से कम एक ब्लॉक पर कब्जा करना चाहिए। इस वजह से, बीएसडी ने ब्लॉक-स्तरीय विखंडन को जोड़ा, जिसे ब्लॉक सबलोकेशन भी कहा जाता है। .<ref>{{cite web | url = http://ws.edu.isoc.org/workshops/2005/ccTLD-Nairobi/day1/freebsd/intro-freebsd-additional-topics-1up.pdf | title = UFS2 and Soft Updates make for a powerful combination | last = Allen | first = Hervey | work = Introduction to FreeBSD, PacNOG I Workshop, Additional Topics | publisher = Network Startup Resource Center | date = 2005-06-20 | page = 23 | access-date = 2013-04-08 }}</ref>
जैसे-जैसे डिस्क बड़ी और बड़ी होती गई सेक्टर-लेवल ऑप्टिमाइज़ेशन अप्रचलित हो गया (विशेषकर डिस्क के साथ जो रैखिक सेक्टर नंबरिंग और वेरिएबल सेक्टर प्रति ट्रैक का उपयोग करता था)। बड़ी डिस्क और बड़ी फ़ाइलों के साथ खंडित पढ़ना एक समस्या बन गया। इससे निपटने के लिए बीएसडी ने मूल रूप से 4.0 बीएसडी में फ़ाइल सिस्टम ब्लॉक आकार को एक सेक्टर से बढ़ाकर 1K कर दिया; और, एफएफएस में, फ़ाइल सिस्टम ब्लॉक आकार को 1K से बढ़ाकर 8 K कर दिया। इसके कई प्रभाव हैं। किसी फ़ाइल के सेक्टरों के सन्निहित होने की संभावना बहुत अधिक होती है। फ़ाइल के ब्लॉकों को सूचीबद्ध करने के लिए ओवरहेड की मात्रा कम हो जाती है, जबकि ब्लॉकों की किसी भी संख्या द्वारा प्रतिनिधित्व योग्य बाइट्स की संख्या बढ़ जाती है।
बर्कले एफएफएस पर काम अन्य यूनिक्स विक्रेताओं द्वारा व्यापक रूप से अपनाया गया था, और इससे प्राप्त फाइल सिस्टम के परिवार को सामूहिक रूप से यूएफएस के रूप में जाना जाता है।
 
बड़ा डिस्क आकार भी संभव है क्योंकि ब्लॉक की अधिकतम संख्या निश्चित बिट-चौड़ाई ब्लॉक संख्या द्वारा सीमित है। चूँकि बड़े ब्लॉक आकार के साथ, कई छोटी फ़ाइलों के साथ डिस्क जगह व्यर्थ  कर देगी क्योंकि प्रत्येक फ़ाइल को कम से कम एक ब्लॉक पर अधिकृत  करना चाहिए। इस वजह से, बीएसडी ने ब्लॉक-स्तरीय विखंडन को जोड़ा जिसे ब्लॉक सबलोकेशन भी कहा जाता है। .<ref>{{cite web | url = http://ws.edu.isoc.org/workshops/2005/ccTLD-Nairobi/day1/freebsd/intro-freebsd-additional-topics-1up.pdf | title = UFS2 and Soft Updates make for a powerful combination | last = Allen | first = Hervey | work = Introduction to FreeBSD, PacNOG I Workshop, Additional Topics | publisher = Network Startup Resource Center | date = 2005-06-20 | page = 23 | access-date = 2013-04-08 }}</ref>
 
बर्कले एफएफएस पर काम अन्य यूनिक्स विक्रेताओं द्वारा व्यापक रूप से अपनाया गया था और इससे प्राप्त फाइल सिस्टम के वर्ग को सामूहिक रूप से यूएफएस के रूप में जाना जाता है।


== कार्यान्वयन ==
== कार्यान्वयन ==


[[SunOS]] / Solaris (ऑपरेटिंग सिस्टम), [[सिस्टम V रिलीज़ 4]], [[HP-UX]], और [[Tru64 UNIX]] जैसे कुछ मालिकाना यूनिक्स सिस्टम के विक्रेता, और ओपन यूनिक्स व्युत्पन्न सिस्टम जैसे इलुमोस, ने यूएफएस को अपनाया है। उनमें से अधिकांश ने यूएफएस को अपने स्वयं के उपयोगों के लिए अनुकूलित किया, मालिकाना एक्सटेंशन जोड़ते हुए जो कि यूनिक्स के अन्य विक्रेताओं के संस्करणों द्वारा मान्यता प्राप्त नहीं हो सकते हैं। अनेक{{Which|date=March 2015}} ने मूल ब्लॉक आकार और डेटा फ़ील्ड चौड़ाई को मूल यूएफएस के रूप में उपयोग करना जारी रखा है, इसलिए कुछ हद तक पठन संगतता सभी प्लेटफ़ॉर्म पर बनी हुई है।{{Which|date=January 2017}}{{Citation needed|date=March 2015}}{{According to whom|date=June 2017}} समग्र रूप से कार्यान्वयन के बीच अनुकूलता सबसे अच्छी है।{{According to whom|date=March 2015}}
[[SunOS]] / Solaris (ऑपरेटिंग सिस्टम), [[सिस्टम V रिलीज़ 4]], [[HP-UX]], और [[Tru64 UNIX]] जैसे कुछ मालिकाना यूनिक्स सिस्टम के विक्रेता, और ओपन यूनिक्स व्युत्पन्न सिस्टम जैसे इलुमोस, ने यूएफएस को अपनाया है। उनमें से अधिकांश ने यूएफएस को अपने स्वयं के उपयोगों के लिए अनुकूलित किया, स्वामित्व विस्तार जोड़ते हुए जो कि यूनिक्स के अन्य विक्रेताओं के संस्करणों द्वारा मान्यता प्राप्त नहीं हो सकते हैं। अनेक{{Which|date=March 2015}} ने मूल ब्लॉक आकार और डेटा क्षेत्र  चौड़ाई को मूल यूएफएस के रूप में उपयोग करना जारी रखा है, इसलिए कुछ सीमा तक पठन संगतता सभी प्लेटफ़ॉर्म पर बनी हुई है।{{Which|date=January 2017}}{{Citation needed|date=March 2015}}{{According to whom|date=June 2017}} समग्र रूप से कार्यान्वयन के बीच अनुकूलता सबसे अच्छी है।{{According to whom|date=March 2015}}
 
 
सनोस/सोलारिस, सिस्टम वी रिलीज 4, एचपी-यूएक्स, और ट्रू64 यूनिक्स जैसे कुछ स्वामित्व वाली यूनिक्स प्रणालियों के विक्रेताओं और इलुमोस जैसी विवर्त यूनिक्स व्युत्पन्न प्रणालियों ने यूएफएस को अपनाया है। उनमें से अधिकांश ने यूएफएस को अपने स्वयं के उपयोगों के लिए अनुकूलित किया, मालिकाना विस्तार जोड़ते हुए जो कि यूनिक्स के अन्य विक्रेताओं के संस्करणों द्वारा मान्यता प्राप्त नहीं हो सकते हैं। कई  ने मूल ब्लॉक आकार और डेटा क्षेत्र  चौड़ाई को मूल यूएफएस के रूप में उपयोग करना जारी रखा है इसलिए कुछ सीमा तक पठन संगतता प्लेटफार्मों में बनी हुई है। समग्र रूप से कार्यान्वयन के बीच अनुकूलता सबसे अच्छी है।
 
 
[[सोलारिस 7]] के रूप में, [[सन माइक्रोसिस्टम्स]] में यूएफएस लॉगिंग सम्मिलित है, जो [[जर्नलिंग फाइल सिस्टम]] को यूएफएस में लाया, जो अभी भी सोलारिस और इलुमोस के वर्तमान संस्करणों में उपलब्ध है।<ref>{{Cite web |url=https://docs.oracle.com/cd/E19253-01/817-5093/fsoverview-43/index.html |title=यूएफएस लॉगिंग|access-date=2022-09-27 |website=Oracle Documentation}}</ref> [[सोलारिस 7|सोलारिस]] यूएफएस में बड़ी फ़ाइलों और बड़ी डिस्कों और अन्य सुविधाओं के लिए विस्तार भी हैं।


[[सोलारिस 7]] के रूप में, [[सन माइक्रोसिस्टम्स]] में यूएफएस लॉगिंग शामिल है, जो [[जर्नलिंग फाइल सिस्टम]] को यूएफएस में लाया, जो अभी भी सोलारिस और इलुमोस के वर्तमान संस्करणों में उपलब्ध है।<ref>{{Cite web |url=https://docs.oracle.com/cd/E19253-01/817-5093/fsoverview-43/index.html |title=यूएफएस लॉगिंग|access-date=2022-09-27 |website=Oracle Documentation}}</ref> Solaris यूएफएस में बड़ी फ़ाइलों और बड़ी डिस्कों और अन्य सुविधाओं के लिए एक्सटेंशन भी हैं।
4.4बीएसडी और [[ बर्कले सॉफ्टवेयर वितरण | बर्कले सॉफ्टवेयर वितरण]] यूनिक्स सिस्टम में इससे व्युत्पन्न, जैसे कि फ्रीबीएसडी, [[नेटबीएसडी]], [[ओपनबीएसडी]], और [[DragonFlyBSD]], यूएफएस1 और यूएफएस2 के कार्यान्वयन को दो परतों में विभाजित किया गया है: एक ऊपरी परत जो निर्देशिका संरचना प्रदान करती है और मेटाडेटा (अनुमति, अनुमतियां) का समर्थन करती है। स्वामित्व, आदि) इनोड संरचना में और निचली परतें जो इनोड्स के रूप में कार्यान्वित डेटा कंटेनर प्रदान करती हैं। यह सामान्य कार्यों के लिए साझा कोड के साथ पारंपरिक एफएफएस और [[लॉग-संरचित फाइल सिस्टम (बीएसडी)]]बीएसडी) लॉग-स्ट्रक्चर्ड फाइल सिस्टम दोनों का समर्थन करने के लिए किया गया था। ऊपरी परत को यूएफएस कहा जाता है, और निचली परतों को एफएफएस और एलएफएस कहा जाता है। उनमें से कुछ प्रणालियों में एफएफएस शब्द का उपयोग एफएफएस निचली परत और यूएफएस ऊपरी परत के संयोजन के लिए किया जाता है, और एलएफएस शब्द का उपयोग एलएफएस निचली परत और यूएफएस ऊपरी परत के संयोजन के लिए किया जाता है।


4.4बीएसडी और [[ बर्कले सॉफ्टवेयर वितरण ]] यूनिक्स सिस्टम में इससे व्युत्पन्न, जैसे कि फ्रीबीएसडी, [[नेटबीएसडी]], [[ओपनबीएसडी]], और [[DragonFlyBSD]], यूएफएस1 और यूएफएस2 के कार्यान्वयन को दो परतों में विभाजित किया गया है: एक ऊपरी परत जो निर्देशिका संरचना प्रदान करती है और मेटाडेटा (अनुमति, अनुमतियां) का समर्थन करती है। स्वामित्व, आदि) इनोड संरचना में, और निचली परतें जो इनोड्स के रूप में कार्यान्वित डेटा कंटेनर प्रदान करती हैं। यह सामान्य कार्यों के लिए साझा कोड के साथ पारंपरिक एफएफएस और [[लॉग-संरचित फाइल सिस्टम (बीएसडी)]]बीएसडी) लॉग-स्ट्रक्चर्ड फाइल सिस्टम दोनों का समर्थन करने के लिए किया गया था। ऊपरी परत को यूएफएस कहा जाता है, और निचली परतों को एफएफएस और एलएफएस कहा जाता है। उनमें से कुछ प्रणालियों में, FFS शब्द का उपयोग FFS निचली परत और यूएफएस ऊपरी परत के संयोजन के लिए किया जाता है, और LFS शब्द का उपयोग LFS निचली परत और यूएफएस ऊपरी परत के संयोजन के लिए किया जाता है।
किर्क मैककुसिक ने खंड पुनर्आवंटन प्रयुक्त किया एक ऐसी विधि जो विखंडन को कम करने और फ़ाइल सिस्टम उम्र बढ़ने को नियंत्रित करने के लिए लिखने से ठीक पहले फ़ाइल सिस्टम में ब्लॉक को फिर से व्यवस्थित करती है। उन्होंने [[सॉफ्ट अपडेट|सॉफ्ट अपडेट्स]] को भी प्रयुक्त किया एक ऐसा तंत्र जो पारंपरिक सिंक मोड के प्रदर्शन को सीमित किए बिना फ़ाइल सिस्टम की निरंतरता को बनाए रखता है। क्रैश या पावर विफलता के बाद फाइल सिस्टम जांच की आवश्यकता को कम करने का इसका दुष्प्रभाव होता है। विफलता के बाद शेष मुद्दों को दूर करने के लिए, एक पृष्ठभूमि ऍफ़एससीके उपयोगिता प्रारंभ की गई थी।


Kirk McKusick ने खंड पुनर्आवंटन लागू किया, एक ऐसी तकनीक जो विखंडन को कम करने और फ़ाइल सिस्टम उम्र बढ़ने को नियंत्रित करने के लिए लिखने से ठीक पहले फ़ाइल सिस्टम में ब्लॉक को फिर से व्यवस्थित करती है। उन्होंने [[सॉफ्ट अपडेट]]्स को भी लागू किया, एक ऐसा तंत्र जो पारंपरिक सिंक मोड के प्रदर्शन को सीमित किए बिना फ़ाइल सिस्टम की निरंतरता को बनाए रखता है। क्रैश या पावर विफलता के बाद फाइल सिस्टम जांच की आवश्यकता को कम करने का इसका दुष्प्रभाव होता है। विफलता के बाद शेष मुद्दों को दूर करने के लिए, एक पृष्ठभूमि fsck उपयोगिता शुरू की गई थी।
यूएफएस2  में, किर्क मैककुसिक और [[Poul-Henning Kamp|पॉल-हेनिंग कैंप]] ने फ्रीबीएसडी एफएफएस और यूएफएस परत  को 64-बिट ब्लॉक पॉइंटर्स (वॉल्यूम को 8 ज़ेबिबाइट्स तक बढ़ने की अनुमति), चर-आकार के ब्लॉक (सीमा (फ़ाइल सिस्टम) के समान) जोड़ने के लिए बढ़ाया, बढ़ाया ध्वज क्षेत्र, अतिरिक्त 'जन्म समय' टिकटें विस्तारित विशेषता समर्थन और पॉज़िक्स1.ई एसीएल यूएफएस2 फ्रीबीएसडी 5.0 ​​के साथ प्रारंभ होकर समर्थित यूएफएस संस्करण बन गया। फ्रीबीएसडी ने सॉफ्ट अपडेट और यूएफएस1 और यूएफएस2 दोनों के लिए फाइल सिस्टम [[ स्नैपशॉट (कंप्यूटर भंडारण) | स्नैपशॉट (कंप्यूटर संचयन)]] बनाने की क्षमता भी प्रस्तुत की इसके बाद से इन्हें नेटबीएसडी में पोर्ट कर दिया गया है, किन्तु अंततः सॉफ्ट अपडेट्स (नेटबीएसडी में सॉफ्ट डिपेंडेंसी कहा जाता है) को नेटबीएसडी 6.0 से [[WAPBL|डब्ल्यूएपीबीएल]] (जिसे लॉगिंग भी कहा जाता है) नामक कम जटिल फ़ाइल सिस्टम जर्नलिंग मैकेनिज्म के पक्ष में हटा दिया गया था, जिसे नेटबीएसडी में एफएफएस में जोड़ा गया था। 5.0। ओपनबीएसडी ने संस्करण 2.9 के बाद से सॉफ्ट अपडेट का समर्थन किया है<ref>{{cite web | url = http://www.openbsd.org/29.html | title = OpenBSD 2.9 Release | date = 2001-06-01 | publisher = [[OpenBSD]] | access-date = 2013-04-08}}</ref> और संस्करण 4.2 के बाद से यूएफएस2 (एफएफएस2) समर्थन (कोई एसीएल नहीं) है।<ref>{{cite web | url = http://www.openbsd.org/42.html | title = OpenBSD 4.2 Release | date = 2007-11-01 | publisher = OpenBSD | access-date = 2013-04-08}}</ref> ओपनबीएसडी ने अब यूएफएस2 को डिफ़ॉल्ट यूएफएस संस्करण बना दिया है और इसे 6.7 रिलीज के साथ सम्मिलित किया जाएगा।<ref>{{cite web | url = https://marc.info/?l=openbsd-cvs&m=158609976014693&w=2 | title = Make FFS2 the default filesystem | date = 2020-04-05 | publisher = OpenBSD | access-date = 2020-04-07}}</ref> फ्रीबीएसडी 7.0 के बाद से, यूएफएस भी जर्नल [[GEOM|जीओएम]] प्रदाता का उपयोग करके जर्नलिंग फ़ाइल सिस्टम का समर्थन करता है। फ्रीबीएसडी 9.0 सॉफ्ट अपडेट्स (SU+J) के शीर्ष पर लाइटवेट जर्नलिंग के लिए समर्थन जोड़ता है, जो बैकग्राउंड ऍफ़एससीके और एनएफएसवी4 एसीएल की आवश्यकता को बहुत कम कर देता है।


UFS2 में, Kirk McKusick और [[Poul-Henning Kamp]] ने [[FreeBSD]] FFS और यूएफएस लेयर्स को 64-बिट ब्लॉक पॉइंटर्स (वॉल्यूम को 8 ज़ेबिबाइट्स तक बढ़ने की अनुमति), चर-आकार के ब्लॉक (सीमा (फ़ाइल सिस्टम) के समान) जोड़ने के लिए बढ़ाया, बढ़ाया ध्वज क्षेत्र, अतिरिक्त 'जन्म समय' टिकटें, विस्तारित विशेषता समर्थन और POSIX1.e ACL। UFS2 FreeBSD 5.0 ​​के साथ शुरू होकर समर्थित यूएफएस संस्करण बन गया। FreeBSD ने सॉफ्ट अपडेट और UFS1 और UFS2 दोनों के लिए फाइल सिस्टम [[ स्नैपशॉट (कंप्यूटर भंडारण) ]] बनाने की क्षमता भी पेश की। इसके बाद से इन्हें NetBSD में पोर्ट कर दिया गया है, लेकिन अंततः सॉफ्ट अपडेट्स (NetBSD में सॉफ्ट डिपेंडेंसी कहा जाता है) को NetBSD 6.0 से [[WAPBL]] (जिसे लॉगिंग भी कहा जाता है) नामक कम जटिल फ़ाइल सिस्टम जर्नलिंग मैकेनिज्म के पक्ष में हटा दिया गया था, जिसे NetBSD में FFS में जोड़ा गया था। 5.0। OpenBSD ने संस्करण 2.9 के बाद से सॉफ्ट अपडेट का समर्थन किया है<ref>{{cite web | url = http://www.openbsd.org/29.html | title = OpenBSD 2.9 Release | date = 2001-06-01 | publisher = [[OpenBSD]] | access-date = 2013-04-08}}</ref> और संस्करण 4.2 के बाद से UFS2 (FFS2) समर्थन (कोई ACL नहीं) है।<ref>{{cite web | url = http://www.openbsd.org/42.html | title = OpenBSD 4.2 Release | date = 2007-11-01 | publisher = OpenBSD | access-date = 2013-04-08}}</ref> OpenBSD ने अब UFS2 को डिफ़ॉल्ट यूएफएस संस्करण बना दिया है और इसे 6.7 रिलीज के साथ शामिल किया जाएगा।<ref>{{cite web | url = https://marc.info/?l=openbsd-cvs&m=158609976014693&w=2 | title = Make FFS2 the default filesystem | date = 2020-04-05 | publisher = OpenBSD | access-date = 2020-04-07}}</ref> FreeBSD 7.0 के बाद से, यूएफएस भी gjournal [[GEOM]] प्रदाता का उपयोग करके जर्नलिंग फ़ाइल सिस्टम का समर्थन करता है। FreeBSD 9.0 सॉफ्ट अपडेट्स (SU+J) के शीर्ष पर लाइटवेट जर्नलिंग के लिए समर्थन जोड़ता है, जो बैकग्राउंड fsck और NFSv4 ACLs की आवश्यकता को बहुत कम कर देता है।
फ्रीबीएसडी, नेटबीएसडी, ओपनबीएसडी, और ड्रेगनफ्लाई बीएसडी में इयान डोसे द्वारा विकसित दिरश प्रणाली भी सम्मिलित है। यह सिस्टम डायरेक्टरी लुकअप को गति देने के लिए इन-मेमोरी हैश टेबल का रखरखाव करता है। [[Dirhash|दिरहाश]] यूएफएस में बड़ी निर्देशिकाओं से जुड़ी कई प्रदर्शन समस्याओं को दूर करता है।


FreeBSD, NetBSD, OpenBSD, और DragonFly BSD में इयान डोसे द्वारा विकसित दिरश प्रणाली भी शामिल है। यह सिस्टम डायरेक्टरी लुकअप को गति देने के लिए इन-मेमोरी हैश टेबल का रखरखाव करता है। [[Dirhash]] यूएफएस में बड़ी निर्देशिकाओं से जुड़ी कई प्रदर्शन समस्याओं को दूर करता है।
[[लिनक्स]] में अन्य यूनिक्स के साथ पढ़ने के स्तर पर बाइनरी संगतता के लिए एक यूएफएस कार्यान्वयन सम्मिलित है, किन्तु चूंकि यूएफएस के विक्रेता विस्तार के लिए कोई मानक कार्यान्वयन नहीं है, लिनक्स के पास यूएफएस को लिखने के लिए पूर्ण समर्थन नहीं है। देशी लिनक्स [[ext2]] फ़ाइल सिस्टम यूएफएस1 से प्रेरित था किन्तु यह टुकड़ों का समर्थन नहीं करता है और सॉफ्ट अपडेट को प्रयुक्त करने की कोई योजना नहीं है। (कुछ 4.4BSD-व्युत्पन्न प्रणालियों में, यूएफएस परत कंटेनर परत के रूप में एक ext2 परत का उपयोग कर सकती है, जैसे कि यह एफएफएस और एलएफएस का उपयोग कर सकती है।)


[[लिनक्स]] में अन्य यूनिक्स के साथ पढ़ने के स्तर पर बाइनरी संगतता के लिए एक यूएफएस कार्यान्वयन शामिल है, लेकिन चूंकि यूएफएस के विक्रेता एक्सटेंशन के लिए कोई मानक कार्यान्वयन नहीं है, लिनक्स के पास यूएफएस को लिखने के लिए पूर्ण समर्थन नहीं है। देशी Linux [[ext2]] फ़ाइल सिस्टम UFS1 से प्रेरित था लेकिन यह टुकड़ों का समर्थन नहीं करता है और सॉफ्ट अपडेट को लागू करने की कोई योजना नहीं है।{{Citation needed|date=March 2015}} (कुछ 4.4BSD-व्युत्पन्न प्रणालियों में, यूएफएस परत कंटेनर परत के रूप में एक ext2 परत का उपयोग कर सकती है, जैसे कि यह FFS और LFS का उपयोग कर सकती है।)
नेक्स्टस्टेप, जो कि बीएसडी-व्युत्पन्न था, ने भी यूएफएस के एक संस्करण का उपयोग किया। एप्पल Inc. के मैक ओएसमें, यह एचएफएस प्लस एचएफएस +, उनके मालिकाना फ़ाइल सिस्टम के विकल्प के रूप में उपलब्ध था। चूँकि ,मैक ओएस एक्स लेपर्ड के रूप में, मैक ओएस एक्स को यूएफएस-प्रारूपित वॉल्यूम पर स्थापित करना अब संभव नहीं था। इसके अतिरिक्त यूएफएस-प्रारूपित वॉल्यूम पर स्थापित [[मैक ओएस]] एक्स के पुराने संस्करणों को लेपर्ड में अपग्रेड नहीं किया जा सकता है; उन्नयन के लिए स्टार्टअप वॉल्यूम को पुन: स्वरूपित करने की आवश्यकता है।<ref>{{cite web | url = https://support.apple.com/kb/HT2316 | title = Archived&nbsp;— Mac OS X 10.5 Leopard: Installing on a UFS-formatted volume | publisher = [[Apple, Inc]] | date = 2012-06-12 | access-date = 2013-04-08}}</ref> Mac OS X में यूएफएस के रूप में स्वरूपित डिस्क के लिए 4GB फ़ाइल सीमा थी। [[Mac OS X Lion|मैक ओएस एक्स लायन]] के रूप में यूएफएस समर्थन पूरी तरह से हटा दिया गया था।<ref>{{cite web | url = https://discussions.apple.com/message/15668353 | title = लायन बिल्ट-इन यूटिलिटी या डिस्क यूटिलिटी के साथ किसी भी डिस्क इमेज को माउंट नहीं करेगा| work = Apple Support Communities | publisher = [[Apple, Inc]] | date = 2011-08-05 | access-date = 2013-12-24}}</ref>


[[NeXTStep]], जो कि BSD-व्युत्पन्न था, ने भी यूएफएस के एक संस्करण का उपयोग किया। Apple Inc. के macOS में, यह [[HFS Plus]]|HFS+, उनके मालिकाना फ़ाइल सिस्टम के विकल्प के रूप में उपलब्ध था। हालाँकि, [[Mac OS X Leopard]] के रूप में, Mac OS X को UFS-प्रारूपित वॉल्यूम पर स्थापित करना अब संभव नहीं था। इसके अलावा, यूएफएस-प्रारूपित वॉल्यूम पर स्थापित [[मैक ओएस]] एक्स के पुराने संस्करणों को तेंदुए में अपग्रेड नहीं किया जा सकता है; उन्नयन के लिए स्टार्टअप वॉल्यूम को पुन: स्वरूपित करने की आवश्यकता है।<ref>{{cite web | url = https://support.apple.com/kb/HT2316 | title = Archived&nbsp;— Mac OS X 10.5 Leopard: Installing on a UFS-formatted volume | publisher = [[Apple, Inc]] | date = 2012-06-12 | access-date = 2013-04-08}}</ref> Mac OS X में यूएफएस के रूप में स्वरूपित डिस्क के लिए 4GB फ़ाइल सीमा थी। [[Mac OS X Lion]] के रूप में, यूएफएस समर्थन पूरी तरह से हटा दिया गया था।<ref>{{cite web | url = https://discussions.apple.com/message/15668353 | title = लायन बिल्ट-इन यूटिलिटी या डिस्क यूटिलिटी के साथ किसी भी डिस्क इमेज को माउंट नहीं करेगा| work = Apple Support Communities | publisher = [[Apple, Inc]] | date = 2011-08-05 | access-date = 2013-12-24}}</ref>




Line 106: Line 113:
* {{cite web | url = http://www.tldp.org/HOWTO/Filesystems-HOWTO-9.html#ss9.29 | title = Filesystems HOWTO: Other filesystems | publisher = [[The Linux Documentation Project]] | date = 2007-01-27 }}
* {{cite web | url = http://www.tldp.org/HOWTO/Filesystems-HOWTO-9.html#ss9.29 | title = Filesystems HOWTO: Other filesystems | publisher = [[The Linux Documentation Project]] | date = 2007-01-27 }}
* [https://www.informit.com/articles/article.aspx?p=605371&seqNum=2 The Solaris यूएफएस File System], see also [http://ptgmedia.pearsoncmg.com/images/0131482092/samplechapter/mcdougall_ch15.pdf]
* [https://www.informit.com/articles/article.aspx?p=605371&seqNum=2 The Solaris यूएफएस File System], see also [http://ptgmedia.pearsoncmg.com/images/0131482092/samplechapter/mcdougall_ch15.pdf]
* [http://alter.org.ua/docs/fbsd/ufs/#sb USF(sic)/UFS2 format]
* [http://alter.org.ua/docs/fbsd/ufs/#sb USF(sic)/यूएफएस2 format]
* [http://pages.cs.wisc.edu/~remzi/OSTEP/file-ffs.pdf Locality and The Fast File System]
* [http://pages.cs.wisc.edu/~remzi/OSTEP/file-ffs.pdf Locality and The Fast File System]
* [https://iboysoft.com/wiki/apfs.html Apple File System]
* [https://iboysoft.com/wiki/apfs.html Apple File System]

Revision as of 18:33, 13 June 2023

UFS
Developer(s)CSRG
Full nameUNIX file system
Introducedwith 4.2BSD
Structures
Directory contentstables
Limits
Max. volume size273 bytes (8 ZiB)
Max. file size273 bytes (8 ZiB)
Max. filename length255 bytes
Features
Dates recordedUFS1 and UFS2: last access time (atime), last modified time (mtime), last inode change time (ctime), UFS2: inode creation time (birthtime)[1]
Date rangeUFS1: December 14, 1901–January 18, 2038, UFS2: 64-bit signed integer offset from epoch[1]
Date resolutionUFS1 and UFS2: Nanosecond[1]
Other
Supported operating systemsA/UX, DragonFly BSD, FreeBSD, FreeNAS, NAS4Free, HP-UX, NetBSD, NeXTSTEP, Linux, OpenBSD, illumos, Solaris, SunOS, Tru64 UNIX, UNIX System V, Orbis OS, and others

यूनिक्स फाइल सिस्टम (यूएफएस) कई यूनिक्स और यूनिक्स जैसे ऑपरेटिंग सिस्टम द्वारा समर्थित फाइल सिस्टम का एक वर्ग है। यह संस्करण 7 यूनिक्स द्वारा उपयोग की जाने वाली मूल फ़ाइल प्रणाली का दूर का वंशज है।

डिजाइन

एक यूएफएस वॉल्यूम निम्नलिखित भागों से बना होता है:

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

इनोड्स को क्रमिक रूप से 0 से प्रारंभ किया जाता है। इनोड 0 असंबद्ध निर्देशिका प्रविष्टियों के लिए आरक्षित है। इनोड 1 ऐतिहासिक यूनिक्स संस्करणों में खराब ब्लॉक फ़ाइल का इनोड था इसके बाद रूट मूल निर्देशिकाके लिए इनोड होता है जो सदैव इनोड 2 होता है और खोए हुए के लिए इनोड होता है। + मिली निर्देशिका जो इनोड 3 है।

निर्देशिका फ़ाइलों में केवल निर्देशिका में फ़ाइल नामों की सूची और प्रत्येक फ़ाइल से जुड़े इनोड होते हैं। सभी फ़ाइल मेटाडेटा (कंप्यूटिंग) को इनोड में रखा जाता है।

इतिहास और विकास

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

बीएसडी एफएफएस का संकेत एक ही सिलेंडर समूह में संबंधित डेटा ब्लॉक और मेटाडेटा को स्थानीयकृत करने का प्रयास करना है और आदर्श रूप से एक ही या आस-पास के सिलेंडर समूह में निर्देशिका की सभी सामग्री (सभी फाइलों के लिए डेटा और मेटाडेटा दोनों) संपूर्ण डिस्क पर निर्देशिका की सामग्री को बिखेरने के कारण फ़ाइल सिस्टम विखंडन को कम करना है ।

सुपरब्लॉक में कुछ प्रदर्शन मापदंडों में पटरियों और क्षेत्रों की संख्या, डिस्क घूर्णन की गति हेड की गति और पटरियों के बीच क्षेत्रों के संरेखण सम्मिलित हैं। पूरी तरह से अनुकूलित प्रणाली में थाली के चारों ओर घूमने की प्रतीक्षा करते हुए वैकल्पिक पटरियों से बिखरे हुए क्षेत्रों को पढ़ने के लिए हेड को निकटता पटरियों के बीच ले जाया जा सकता है।

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

बड़ा डिस्क आकार भी संभव है क्योंकि ब्लॉक की अधिकतम संख्या निश्चित बिट-चौड़ाई ब्लॉक संख्या द्वारा सीमित है। चूँकि बड़े ब्लॉक आकार के साथ, कई छोटी फ़ाइलों के साथ डिस्क जगह व्यर्थ कर देगी क्योंकि प्रत्येक फ़ाइल को कम से कम एक ब्लॉक पर अधिकृत करना चाहिए। इस वजह से, बीएसडी ने ब्लॉक-स्तरीय विखंडन को जोड़ा जिसे ब्लॉक सबलोकेशन भी कहा जाता है। .[4]

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

कार्यान्वयन

SunOS / Solaris (ऑपरेटिंग सिस्टम), सिस्टम V रिलीज़ 4, HP-UX, और Tru64 UNIX जैसे कुछ मालिकाना यूनिक्स सिस्टम के विक्रेता, और ओपन यूनिक्स व्युत्पन्न सिस्टम जैसे इलुमोस, ने यूएफएस को अपनाया है। उनमें से अधिकांश ने यूएफएस को अपने स्वयं के उपयोगों के लिए अनुकूलित किया, स्वामित्व विस्तार जोड़ते हुए जो कि यूनिक्स के अन्य विक्रेताओं के संस्करणों द्वारा मान्यता प्राप्त नहीं हो सकते हैं। अनेक[which?] ने मूल ब्लॉक आकार और डेटा क्षेत्र चौड़ाई को मूल यूएफएस के रूप में उपयोग करना जारी रखा है, इसलिए कुछ सीमा तक पठन संगतता सभी प्लेटफ़ॉर्म पर बनी हुई है।[which?][citation needed][according to whom?] समग्र रूप से कार्यान्वयन के बीच अनुकूलता सबसे अच्छी है।[according to whom?]


सनोस/सोलारिस, सिस्टम वी रिलीज 4, एचपी-यूएक्स, और ट्रू64 यूनिक्स जैसे कुछ स्वामित्व वाली यूनिक्स प्रणालियों के विक्रेताओं और इलुमोस जैसी विवर्त यूनिक्स व्युत्पन्न प्रणालियों ने यूएफएस को अपनाया है। उनमें से अधिकांश ने यूएफएस को अपने स्वयं के उपयोगों के लिए अनुकूलित किया, मालिकाना विस्तार जोड़ते हुए जो कि यूनिक्स के अन्य विक्रेताओं के संस्करणों द्वारा मान्यता प्राप्त नहीं हो सकते हैं। कई ने मूल ब्लॉक आकार और डेटा क्षेत्र चौड़ाई को मूल यूएफएस के रूप में उपयोग करना जारी रखा है इसलिए कुछ सीमा तक पठन संगतता प्लेटफार्मों में बनी हुई है। समग्र रूप से कार्यान्वयन के बीच अनुकूलता सबसे अच्छी है।


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

4.4बीएसडी और बर्कले सॉफ्टवेयर वितरण यूनिक्स सिस्टम में इससे व्युत्पन्न, जैसे कि फ्रीबीएसडी, नेटबीएसडी, ओपनबीएसडी, और DragonFlyBSD, यूएफएस1 और यूएफएस2 के कार्यान्वयन को दो परतों में विभाजित किया गया है: एक ऊपरी परत जो निर्देशिका संरचना प्रदान करती है और मेटाडेटा (अनुमति, अनुमतियां) का समर्थन करती है। स्वामित्व, आदि) इनोड संरचना में और निचली परतें जो इनोड्स के रूप में कार्यान्वित डेटा कंटेनर प्रदान करती हैं। यह सामान्य कार्यों के लिए साझा कोड के साथ पारंपरिक एफएफएस और लॉग-संरचित फाइल सिस्टम (बीएसडी)बीएसडी) लॉग-स्ट्रक्चर्ड फाइल सिस्टम दोनों का समर्थन करने के लिए किया गया था। ऊपरी परत को यूएफएस कहा जाता है, और निचली परतों को एफएफएस और एलएफएस कहा जाता है। उनमें से कुछ प्रणालियों में एफएफएस शब्द का उपयोग एफएफएस निचली परत और यूएफएस ऊपरी परत के संयोजन के लिए किया जाता है, और एलएफएस शब्द का उपयोग एलएफएस निचली परत और यूएफएस ऊपरी परत के संयोजन के लिए किया जाता है।

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

यूएफएस2 में, किर्क मैककुसिक और पॉल-हेनिंग कैंप ने फ्रीबीएसडी एफएफएस और यूएफएस परत को 64-बिट ब्लॉक पॉइंटर्स (वॉल्यूम को 8 ज़ेबिबाइट्स तक बढ़ने की अनुमति), चर-आकार के ब्लॉक (सीमा (फ़ाइल सिस्टम) के समान) जोड़ने के लिए बढ़ाया, बढ़ाया ध्वज क्षेत्र, अतिरिक्त 'जन्म समय' टिकटें विस्तारित विशेषता समर्थन और पॉज़िक्स1.ई एसीएल यूएफएस2 फ्रीबीएसडी 5.0 ​​के साथ प्रारंभ होकर समर्थित यूएफएस संस्करण बन गया। फ्रीबीएसडी ने सॉफ्ट अपडेट और यूएफएस1 और यूएफएस2 दोनों के लिए फाइल सिस्टम स्नैपशॉट (कंप्यूटर संचयन) बनाने की क्षमता भी प्रस्तुत की इसके बाद से इन्हें नेटबीएसडी में पोर्ट कर दिया गया है, किन्तु अंततः सॉफ्ट अपडेट्स (नेटबीएसडी में सॉफ्ट डिपेंडेंसी कहा जाता है) को नेटबीएसडी 6.0 से डब्ल्यूएपीबीएल (जिसे लॉगिंग भी कहा जाता है) नामक कम जटिल फ़ाइल सिस्टम जर्नलिंग मैकेनिज्म के पक्ष में हटा दिया गया था, जिसे नेटबीएसडी में एफएफएस में जोड़ा गया था। 5.0। ओपनबीएसडी ने संस्करण 2.9 के बाद से सॉफ्ट अपडेट का समर्थन किया है[6] और संस्करण 4.2 के बाद से यूएफएस2 (एफएफएस2) समर्थन (कोई एसीएल नहीं) है।[7] ओपनबीएसडी ने अब यूएफएस2 को डिफ़ॉल्ट यूएफएस संस्करण बना दिया है और इसे 6.7 रिलीज के साथ सम्मिलित किया जाएगा।[8] फ्रीबीएसडी 7.0 के बाद से, यूएफएस भी जर्नल जीओएम प्रदाता का उपयोग करके जर्नलिंग फ़ाइल सिस्टम का समर्थन करता है। फ्रीबीएसडी 9.0 सॉफ्ट अपडेट्स (SU+J) के शीर्ष पर लाइटवेट जर्नलिंग के लिए समर्थन जोड़ता है, जो बैकग्राउंड ऍफ़एससीके और एनएफएसवी4 एसीएल की आवश्यकता को बहुत कम कर देता है।

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

लिनक्स में अन्य यूनिक्स के साथ पढ़ने के स्तर पर बाइनरी संगतता के लिए एक यूएफएस कार्यान्वयन सम्मिलित है, किन्तु चूंकि यूएफएस के विक्रेता विस्तार के लिए कोई मानक कार्यान्वयन नहीं है, लिनक्स के पास यूएफएस को लिखने के लिए पूर्ण समर्थन नहीं है। देशी लिनक्स ext2 फ़ाइल सिस्टम यूएफएस1 से प्रेरित था किन्तु यह टुकड़ों का समर्थन नहीं करता है और सॉफ्ट अपडेट को प्रयुक्त करने की कोई योजना नहीं है। (कुछ 4.4BSD-व्युत्पन्न प्रणालियों में, यूएफएस परत कंटेनर परत के रूप में एक ext2 परत का उपयोग कर सकती है, जैसे कि यह एफएफएस और एलएफएस का उपयोग कर सकती है।)

नेक्स्टस्टेप, जो कि बीएसडी-व्युत्पन्न था, ने भी यूएफएस के एक संस्करण का उपयोग किया। एप्पल Inc. के मैक ओएसमें, यह एचएफएस प्लस एचएफएस +, उनके मालिकाना फ़ाइल सिस्टम के विकल्प के रूप में उपलब्ध था। चूँकि ,मैक ओएस एक्स लेपर्ड के रूप में, मैक ओएस एक्स को यूएफएस-प्रारूपित वॉल्यूम पर स्थापित करना अब संभव नहीं था। इसके अतिरिक्त यूएफएस-प्रारूपित वॉल्यूम पर स्थापित मैक ओएस एक्स के पुराने संस्करणों को लेपर्ड में अपग्रेड नहीं किया जा सकता है; उन्नयन के लिए स्टार्टअप वॉल्यूम को पुन: स्वरूपित करने की आवश्यकता है।[9] Mac OS X में यूएफएस के रूप में स्वरूपित डिस्क के लिए 4GB फ़ाइल सीमा थी। मैक ओएस एक्स लायन के रूप में यूएफएस समर्थन पूरी तरह से हटा दिया गया था।[10]


यह भी देखें

  • फाइल सिस्टम की तुलना

संदर्भ

उद्धरण

  1. 1.0 1.1 1.2 "[base] Contents of /Head/Sys/Ufs/Ufs/Dinode.h".
  2. "Open Sources: Voices from the Open Source Revolution". 29 March 1999.
  3. McKusick, K M; Joy, W; Leffler, S; Fabry, R (August 1984). "UNIX के लिए एक तेज़ फ़ाइल सिस्टम" (PDF). ACM Transactions on Computer Systems. 2 (3): 181–197. doi:10.1145/989.990. S2CID 222285164. Retrieved 2013-04-08.
  4. Allen, Hervey (2005-06-20). "UFS2 and Soft Updates make for a powerful combination" (PDF). Introduction to FreeBSD, PacNOG I Workshop, Additional Topics. Network Startup Resource Center. p. 23. Retrieved 2013-04-08.
  5. "यूएफएस लॉगिंग". Oracle Documentation. Retrieved 2022-09-27.
  6. "OpenBSD 2.9 Release". OpenBSD. 2001-06-01. Retrieved 2013-04-08.
  7. "OpenBSD 4.2 Release". OpenBSD. 2007-11-01. Retrieved 2013-04-08.
  8. "Make FFS2 the default filesystem". OpenBSD. 2020-04-05. Retrieved 2020-04-07.
  9. "Archived — Mac OS X 10.5 Leopard: Installing on a UFS-formatted volume". Apple, Inc. 2012-06-12. Retrieved 2013-04-08.
  10. "लायन बिल्ट-इन यूटिलिटी या डिस्क यूटिलिटी के साथ किसी भी डिस्क इमेज को माउंट नहीं करेगा". Apple Support Communities. Apple, Inc. 2011-08-05. Retrieved 2013-12-24.


ग्रन्थसूची


बाहरी संबंध