फ़ाइल सिस्टम
फ़ाइल सिस्टम ऑपरेटिंग-सिस्टम का वह घटक है जो स्थायी डेटा को भंडारण उपकरणों पर नामित फ़ाइलों और निर्देशिकाओं में व्यवस्थित करता है, यह प्रबंधित करता है कि डेटा कैसे व्यवस्थित किया जाता है, स्थित होता है, संरक्षित होता है और सुसंगत रखा जाता है।
Definition
फ़ाइल सिस्टम वह विधि और डेटा संरचनाएं हैं जिनका उपयोग एक ऑपरेटिंग सिस्टम भंडारण उपकरण पर स्थायी डेटा को संग्रहीत करने, व्यवस्थित करने, नाम देने, पुनः प्राप्त करने और संरक्षित करने के लिए करता है, जो ऑन-डिवाइस लेआउट और संगति का प्रबंधन करते हुए अनुप्रयोगों को फ़ाइलें और निर्देशिकाएं प्रस्तुत करता है।
Scope
यह विषय फ़ाइल एब्स्ट्रैक्शन और इंटरफ़ेस, निर्देशिका संरचनाओं, आवंटन विधियों (सन्निहित, लिंक्ड, अनुक्रमित) और मुक्त-स्थान प्रबंधन, इनोड जैसे मेटाडेटा संरचनाओं, जर्नलिंग और क्रैश संगति, और बफर कैश को शामिल करता है। यह बताता है कि OS कच्चे भंडारण को एक विश्वसनीय, नामित नेमस्पेस में कैसे बदलता है। इसमें भौतिक भंडारण उपकरण स्वयं (द्वितीयक भंडारण उपकरण) और OS मुख्य-मेमोरी प्रबंधन (मेमोरी प्रबंधन) शामिल नहीं हैं।
Core questions
- फ़ाइलों को कैसे नाम दिया जाता है, निर्देशिकाओं में व्यवस्थित किया जाता है और एक्सेस किया जाता है?
- किसी फ़ाइल का डेटा भंडारण उपकरण पर कैसे आवंटित और स्थित होता है?
- फ़ाइल सिस्टम कौन सा मेटाडेटा रखता है, और मुक्त स्थान का प्रबंधन कैसे किया जाता है?
- क्रैश के दौरान फ़ाइल सिस्टम कैसे सुसंगत रहता है?
Key concepts
- फ़ाइल एब्स्ट्रैक्शन और इंटरफ़ेस
- निर्देशिकाएँ और नेमस्पेस
- इनोड और मेटाडेटा
- आवंटन विधियाँ (सन्निहित, लिंक्ड, अनुक्रमित)
- मुक्त-स्थान प्रबंधन
- जर्नलिंग और क्रैश संगति
- बफर कैश
- एक्सेस नियंत्रण और अनुमतियाँ
Key theories
- क्रैश संगति
- चूंकि एक क्रैश बहु-चरणीय अपडेट को बाधित कर सकता है, फ़ाइल सिस्टम जर्नलिंग (उन्हें लागू करने से पहले इच्छित परिवर्तनों को लॉग करना) या कॉपी-ऑन-राइट जैसी तकनीकों का उपयोग करते हैं ताकि यह सुनिश्चित किया जा सके कि विफलता के बाद फ़ाइल सिस्टम को एक सुसंगत स्थिति में बहाल किया जा सके।
Mechanisms
एक फ़ाइल सिस्टम प्रत्येक फ़ाइल की तार्किक बाइट स्ट्रीम को डिवाइस पर ब्लॉक में मैप करता है, मैपिंग और विशेषताओं को इनोड और निर्देशिकाओं जैसी मेटाडेटा संरचनाओं में रिकॉर्ड करता है। आवंटन विधियाँ निर्धारित करती हैं कि ब्लॉक कैसे असाइन और ट्रैक किए जाते हैं, और मुक्त-स्थान संरचनाएं उपलब्ध ब्लॉक को रिकॉर्ड करती हैं। एक बफर कैश हाल ही में उपयोग किए गए ब्लॉक को मेमोरी में रखता है, और जर्नलिंग या कॉपी-ऑन-राइट यह सुनिश्चित करता है कि बाधित अपडेट फ़ाइल सिस्टम को एक पुनर्प्राप्त करने योग्य, सुसंगत स्थिति में छोड़ दें।
Clinical relevance
फ़ाइल सिस्टम वह तरीका है जिससे लगभग सभी स्थायी डेटा संग्रहीत और पुनः प्राप्त किया जाता है, इसलिए उनका प्रदर्शन और विश्वसनीयता डेटाबेस, अनुप्रयोगों और उपयोगकर्ताओं के लिए समान रूप से महत्वपूर्ण है। मेटाडेटा, कैशिंग और क्रैश संगति के आसपास के डिज़ाइन विकल्प विफलताओं के बाद स्थायित्व और पुनर्प्राप्ति का निर्धारण करते हैं, और ext4, NTFS, और ZFS जैसे व्यापक रूप से उपयोग किए जाने वाले फ़ाइल सिस्टम इन व्यापार-बंदों के दशकों को दर्शाते हैं।
History
निर्देशिकाओं और इनोड मॉडल के साथ पदानुक्रमित फ़ाइल सिस्टम UNIX द्वारा लगभग 1970 में स्थापित किए गए थे। बर्कले फास्ट फ़ाइल सिस्टम ने लेआउट और प्रदर्शन में सुधार किया, और 1990 के दशक में जर्नलिंग और लॉग-संरचित डिज़ाइनों ने क्रैश संगति और लेखन प्रदर्शन को संबोधित किया। ZFS और Btrfs जैसे कॉपी-ऑन-राइट फ़ाइल सिस्टम ने बाद में मजबूत अखंडता के लिए चेकसम और स्नैपशॉट को एकीकृत किया।
Debates
- संगति के लिए जर्नलिंग बनाम कॉपी-ऑन-राइट
- जर्नलिंग इच्छित परिवर्तनों को लागू करने से पहले लॉग करता है, जबकि कॉपी-ऑन-राइट नए डेटा को नए स्थानों पर लिखता है और परमाणु रूप से पॉइंटर्स को स्विच करता है; प्रत्येक विभिन्न प्रदर्शन, स्थान और अखंडता व्यापार-बंदों के साथ क्रैश संगति प्रदान करता है, और दोनों का उपयोग आधुनिक प्रणालियों में किया जाता है।
Key figures
- Ken Thompson
- Dennis Ritchie
- Marshall Kirk McKusick
- Abraham Silberschatz
Related topics
Seminal works
- silberschatz2018
- tanenbaum2014os
Frequently asked questions
- इनोड क्या है?
- इनोड एक मेटाडेटा संरचना है जो एक फ़ाइल का वर्णन करती है: उसका आकार, स्वामित्व और अनुमतियाँ, टाइमस्टैम्प, और उसके डेटा को रखने वाले भंडारण ब्लॉक के पॉइंटर्स। निर्देशिकाएँ मानव-पठनीय नामों को इनोड से मैप करती हैं, एक फ़ाइल के नाम को उसके ऑन-डिवाइस प्रतिनिधित्व से अलग करती हैं।
- जर्नलिंग क्रैश से कैसे बचाता है?
- फ़ाइल-सिस्टम संरचनाओं को संशोधित करने से पहले, एक जर्नलिंग फ़ाइल सिस्टम एक लॉग में इच्छित परिवर्तनों को रिकॉर्ड करता है। यदि कोई क्रैश अपडेट को बाधित करता है, तो पुनरारंभ होने पर सिस्टम लॉग किए गए परिवर्तनों को फिर से चलाता है या छोड़ देता है, जिससे फ़ाइल सिस्टम को दूषित छोड़ने के बजाय एक सुसंगत स्थिति बहाल हो जाती है।