2010-07-07 17 views
31

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

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

मुझे मिला एक संस्करण फ़ाइल सिस्टम का एकमात्र आधुनिक अनुप्रयोग versioning in Amazon S3 है जिसे उन्होंने कुछ महीने पहले पेश किया था। इतनी छोटी संस्करण फाइल सिस्टम क्यों हैं? कंप्यूटर सिस्टम की प्रगति के लिए क्या हुआ? क्या वैसे भी एक बुरा विचार संस्करण है?

+4

विंडोज 7 में NTFS संस्करण का समर्थन करता है, और शायद पिछले संस्करणों भी कर। यह इंटरफ़ेस में बहुत अच्छी तरह से विज्ञापित नहीं है। – Thomas

+1

यदि मैं समस्या को समझता हूं, तो मुझे लगता है कि ZFS (http://en.wikipedia.org/wiki/ZFS) और Btrfs (http://en.wikipedia.org/wiki/Btrfs) संस्करण के अच्छे उदाहरण हैं फाइल सिस्टम –

+1

यह एक अच्छा समुदाय विकी होगा – FrustratedWithFormsDesigner

उत्तर

3

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

4

आप परम जवाब दे सकते हैं नहीं है, लेकिन पर विचार इन 2 अंक: (? सभी उपयोगकर्ताओं के 98%)

  1. सुविधा मुख्यधारा उपयोगकर्ता के लिए कम इस्तेमाल की है, तो क्यों यह लागू करने, अगर कोई भी इसका इस्तेमाल नहीं करता है।
  2. स्टोरेज स्पेस अतीत में महंगा था, तो इसे किसी ऐसी सुविधा पर क्यों बर्बाद कर रहा था जो लगभग कोई भी उपयोग नहीं करेगा?
+3

अच्छा अंक, लेकिन अब जगह सस्ता है। आप विशिष्ट फ़ाइलों में वर्जनिंग को सीमित कर सकते हैं और वैसे भी अंतर को स्टोर करने की आवश्यकता है। मुझे संदेह है कि सुविधा मुख्यधारा के उपयोगकर्ता के लिए बहुत कम उपयोग है। कई अंतिम उपयोगकर्ता प्रोग्राम "पूर्ववत करें" फ़ंक्शन का समर्थन करते हैं लेकिन यदि आप फ़ाइल को सहेजते हैं और प्रोग्राम को बंद करते हैं तो यह बंद हो जाता है। फ़ाइल सिस्टम स्तर पर वर्जनिंग के साथ आप बेहतर प्रदान करते हैं। – Jakob

+0

1 - यह मुख्यधारा के उपयोगकर्ता के लिए अधिक उपयोग है जो दस्तावेज़ के पुराने संस्करण को चाहता है और जो कुछ भी लिखता है उसके लिए गिट/svn का उपयोग नहीं करता है। 2 - यदि आप 32 एमबी ड्राइव पर इसे बर्दाश्त कर सकते हैं, तो हमारे पास अधिकतर 1TB ड्राइव खाली होने पर हम इसका जोखिम क्यों नहीं उठा सकते? –

+0

@ मार्टिन: 1-सहमत। लेकिन यदि आप 'कोडर' नहीं हैं, तो आपको इस सुविधा की कितनी बार आवश्यकता है? 2-हो सकता है कि कंपनियां उस दिन वापस बर्दाश्त कर सकें, लेकिन 80 के दशक के उत्तरार्ध/90 के दशक के आरंभ में सामान्य उपयोगकर्ता नहीं। मुझे अक्सर अपने एचडी पर अनियंत्रित सामान को हटाना याद है क्योंकि मैं अंतरिक्ष से बाहर चला रहा था। – MicSim

3

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

प्लस, यह कठिन है। वर्जनिंग को संभालने के लिए एक फाइल सिस्टम को कार्यान्वित करना फाइल सिस्टम बनाने से स्वाभाविक रूप से अधिक कठिन है जो नहीं करता है। फ़ाइल सिस्टम बनाने के लिए कोई वास्तविक प्रोत्साहन नहीं है जो ऐसा करता है। नए सिस्टम (zfs, ntfs, btrfs) ऐसा कर सकते हैं क्योंकि सुविधाओं के आधार पर प्रतिस्पर्धा की एक नई स्थिति है, इसलिए वे सभी अपने एफएस डिज़ाइनों में जितनी संभव हो उतनी सुविधाओं को क्रैक करने का प्रयास कर रहे हैं।

अधिकांश लोग उन फ़ाइलों पर वीसीएस का उपयोग करने में प्रसन्न हैं, जिनकी वे वास्तव में परवाह करते हैं, एफएस संस्करण पर स्थान बर्बाद नहीं करते हैं।

2

डार्विन के मुताबिक, विकासवादी विशेषताओं का उपयोग वास्तव में नहीं किया जाता है। यदि इसके लिए एक वास्तविक और व्यापक आवश्यकता थी, तो प्रमुख ऑपरेटिंग सिस्टम में इसे डिफ़ॉल्ट के रूप में शामिल किया जाएगा।

मैंने पीसी को अपनी उपस्थिति से कुछ साल पहले वीएमएस का उपयोग किया था। मेरे पास जो कुछ भी मैंने किया था, उसकी दर्जनों प्रतियां थीं या नहीं।मुझे नहीं पता था कि उनमें से अधिकतर क्या थे, और परवाह नहीं थी। वे जल्दी ही अव्यवस्था बन गए। स्पष्ट रूप से वर्जनिंग फाइल सिस्टम उन लोगों में से एक हैं "यह समय पर एक अच्छा विचार जैसा लगता है" चीजें ...

+1

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

2

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

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

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

तो, यह उपयोगी सुविधा एक साथ ओपन VMS जैसे ऑपरेटिंग सिस्टम के साथ (है कि आज लगभग मर चुका है) की मृत्यु हो गई

+0

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

+1

@ जैकोब मैंने संस्करण फ़ाइल फ़ाइल के साथ बहुत कुछ किया। यह तब अधिक उपयोगी है जब असली उपयोगी चीज है, खासकर जब तीसरे भाग के 99% उपकरण मानते हैं कि ऐसा एक संस्करण है। "उदाहरण के लिए फ़ाइल नामों को बाइट्स के अनुक्रम के रूप में इलाज करने के लिए पूरी तरह बकवास है।" - मैं पूरी तरह से असहमत हूं - यह डिजाइन को अधिक आसान और सरल बनाता है। इसके अलावा सभी आधुनिक यूनिक्स यूटीएफ -8 का उपयोग करते हैं, इसलिए यह वास्तव में एक समस्या नहीं है (मेरा मतलब यूनिकोड है) – Artyom

+0

शायद यह फाइल सिस्टम के साथ काम करने वाले फाइल सिस्टम और अनुप्रयोगों के साथ एक मुर्गी-अंडा प्रश्न है। यूनिकोड पर http://www.dwheeler.com/essays/fixing-unix-linux-filenames.html#utf8 देखें (मैंने फ़ाइल नामों में नियंत्रण वर्णों के साथ भी जिथब तोड़ दिया: http://github.com/nichtich/badnames; -)। कम लाभ के कारण वर्जनिंग फाइल सिस्टम भी मर सकते हैं। लेकिन नाम में मनमाने ढंग से बाइट्स की इजाजत देता है (जो कि हमेशा वर्णित रूप से वर्णित होता था जो केवल पुराने दिनों में बाइट्स द्वारा एन्कोड किया गया था) पुरातन है और साबित करता है कि मानक प्रगति को अवरुद्ध कर सकते हैं। – Jakob

संबंधित मुद्दे