फाइल क्या है?


9

मैं फाइल की एक औपचारिक परिभाषा की तलाश कर रहा हूं जिसमें न केवल भंडारण शामिल है, बल्कि एब्सॉर्बेशन जैसे procfs या / dev / null (या कोई फ़्यूज़-आधारित फ़ाइल) भी शामिल है जो भंडारण से संबंधित नहीं है।

अब तक मैं जानता हूं कि सभी फाइलें अमूर्त हैं

  • पहचाना जा सकता है
  • नाम हो सकते हैं (आमतौर पर पदानुक्रमित संरचनाओं में व्यवस्थित)
  • एक बाइट स्ट्रीम के रूप में पहुँचा जा सकता है
  • आमतौर पर अनुमति और अन्य (सिस्टम विशिष्ट) मेटाडेटा प्रदान करते हैं

हालाँकि मैं अब तक पढ़ी गई किसी भी OS पुस्तक में कोई उपयोगी औपचारिक परिभाषा नहीं पा सका था।


क्या आपने इनोड में देखा?
भास्कर

1
मेरा तर्क है कि / dev / null जैसी चीजें बिल्कुल भी फाइलें नहीं हैं, बल्कि, हैक हैं जो हमें गैर-फाइल चीजों को एक्सेस करने की अनुमति देती हैं जैसे कि वे फाइलें थीं। इसके अलावा, यह मेरे लिए स्पष्ट नहीं है कि आप "औपचारिक" से क्या मतलब है। किस औपचारिकता के भीतर?
डेविड रिचेर्बी

"एक फाइल कुछ ऐसी है जिसे फोपेन के साथ खोला जा सकता है"?
एड्रिएनएन

@DavidRicherby किसी भी सॉफ्टवेयर एब्स्ट्रैक्शन जो बिल्कुल एक फाइल की तरह व्यवहार करता है एक फाइल है: हम केवल उनके व्यवहार के दौरान सॉफ्टवेयर संस्थाओं को परिभाषित कर सकते हैं। औपचारिकता के लिए, मैं एक सीएस दृष्टिकोण से कठोर कुछ देख रहा हूँ। हमारे पास उदाहरण के लिए ट्यूरिंग मशीनों के लिए एक औपचारिक परिभाषा है।
जियाकोमो टेसियो

विभिन्न OS फ़ाइलों के लिए अलग-अलग ऑपरेशन का श्रेय देते हैं, उदाहरण के लिए देखें * nix vs Windows। कोई एक सामान्य जमीन खोजने की कोशिश कर सकता है, लेकिन यह सटीक नहीं होगा। इसके अलावा, सीएस में शायद ही कभी फ़ाइलों के बारे में बात की जाती है - मुझे लगता है कि यह केवल एक ओएस, एक फाइल सिस्टम, शायद एक डीबीएमएस, या कुछ ऑन-डिस्क एल्गोरिदम (जैसे सॉर्ट-मर्ज) को डिज़ाइन करते समय किया जाता है। (और कुछ अन्य)
chi

जवाबों:


6

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

* निक्स के दृष्टिकोण से, सब कुछ एक फाइल है: सॉकेट, डिवाइस, टर्मिनल, स्क्रीन / मॉनिटर, डेटा फाइलें, पाइप, और इसी तरह। माइक्रोसॉफ्ट विंडोज, इसके विपरीत, स्थायी भंडारण डेटा "फाइल" को कॉल करने के लिए जाता है, और अस्थिर संसाधन जो कुछ भी हैं, जैसे कि नामित पाइप, सॉकेट, रास्टर डिवाइस, आदि। अन्य प्रणालियों में इन दोनों चरम सीमाओं के बीच कहीं न कहीं समान परिभाषाएं हो सकती हैं।

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

पंच कार्ड फाइल]( विकिपीडिया )


मैंने विकिपीडिया की परिभाषा पढ़ी है, लेकिन यह बहुत अधिक भंडारण पर केंद्रित है। जैसा कि कहा गया है, मैं ऐसी परिभाषा की तलाश कर रहा हूं जो फ़ाइलों को कवर करती है जैसे / dev / null, जो डेटा संग्रहीत नहीं करती है।
गियाकोमो टेसियो

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

2

मैं एक फाइल को बाइट्स के अनुक्रम के रूप में समझता हूं। इसके बाद भी यह अपना नाम खो देता है (आमतौर पर rm के लिए कॉल के कारण, जो इसे अनलिंक करता है), यह तब भी डिस्क पर मौजूद रहता है जब तक कि इसके टुकड़े अन्य सामान द्वारा अधिलेखित नहीं हो जाते। फ़ाइल स्वरूप फ़ाइल पढ़ने के लिए संदर्भ हैं। यह सब उस सिद्धांत पर वापस जाता है जो जानकारी बाइट्स प्लस संदर्भ है।

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

तो एक फ़ाइल की मेरी परिभाषा: स्मृति में संग्रहीत बाइट्स का एक क्रम।


2
"तो एक फाइल की मेरी परिभाषा: बाइट्स का एक क्रम।" का एक क्रम है (मान लें, UTF-8) बाइट्स। यह एक फ़ाइल है?
रीइनियरियरपोस्ट

हम सॉफ्टवेयर सार के बारे में बात कर रहे हैं, कुछ भी जो बिल्कुल एक फाइल की तरह व्यवहार करता है एक फाइल है। वास्तव में हम इसके व्यवहार को छोड़कर किसी भी सॉफ्टवेयर इकाई को परिभाषित नहीं कर सकते हैं।
जियाकोमो टेसिओ

"मैं एक फाइल को बाइट्स के अनुक्रम के रूप में समझता हूं।" यह "फाइलसिस्टम" की एकमात्र परिभाषा नहीं है। उदाहरण के लिए, en.wikipedia.org/wiki/Record-oriented_filesystem
Pseudonym
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.