मैं एक अंतर्निहित उत्तर देने का प्रयास करूंगा कि यूनिक्स सिस्टम फाइलों को कैसे संभालता है। जैसा कि अन्य लोगों ने बताया है, आपके प्रश्नों का विवरण गलत है क्योंकि फाइलें स्वयं रिपोर्ट नहीं करती हैं कि वे किस प्रकार के हैं और कर्नेल खुद तय नहीं करता है कि किन अनुप्रयोगों का उपयोग करना है।
यूनिक्स और विंडोज ऑपरेटिंग सिस्टम में, फ़ाइलों को बाइट्स के अनुक्रम के रूप में संरचित किया जाता है। Tanenbaum के ऑपरेटिंग सिस्टम से , तीसरा संस्करण:
वास्तव में, ऑपरेटिंग सिस्टम को पता नहीं है कि फाइल में क्या है या परवाह नहीं है। यह सब देखता है बाइट्स हैं। उपयोगकर्ता-स्तरीय कार्यक्रमों द्वारा कोई अर्थ लगाया जाना चाहिए।
यही कारण है, एक डेस्कटॉप वातावरण में, xdg-openविशिष्ट फ़ाइलों के प्रकारों को खोलने के लिए डिफ़ॉल्ट अनुप्रयोगों को निर्धारित करने के लिए उपयोग किया जाता है।
यूनिक्स प्रणाली पर, फ़ाइलों को नियमित फ़ाइलों और विशेष फ़ाइलों के बीच विभेदित किया जाता है । एक नियमित फ़ाइल केवल उपयोगकर्ता डेटा है जो एक पाठ फ़ाइल (ASCII या यूनिकोड एन्कोडिंग) या बाइनरी (निष्पादन योग्य कोड) हो सकती है। विशेष फाइलें ऐसी फाइलें हैं जो ओएस चलाने के लिए आवश्यक हैं। इनमें डायरेक्टरी, लिंक, पाइप, सॉकेट और डिवाइस फाइल्स शामिल हैं। ¹
यह कन्वेंशन द्वारा होता है कि फ़ाइल नामों में एक्सटेंशन होते हैं जो यह इंगित करने के लिए होते हैं कि वे किस प्रकार की फ़ाइल हो सकते हैं। जैसे। C स्रोत कोड के लिए, *। Html वेब पृष्ठों के लिए, आदि।
कुछ प्रणालियों (जैसे, UNIX) में, फ़ाइल एक्सटेंशन सिर्फ कन्वेंशन हैं और ऑपरेटिंग सिस्टम द्वारा लागू नहीं किए जाते हैं। फ़ाइल का नाम फ़ाइल। Txt किसी प्रकार की पाठ फ़ाइल हो सकती है, लेकिन यह नाम स्वामी को किसी भी वास्तविक जानकारी को कंप्यूटर तक पहुँचाने की तुलना में याद दिलाने के लिए अधिक है। दूसरी ओर, एक सी कंपाइलर वास्तव में जोर दे सकता है कि फाइलों को अंत में .c में संकलित करना है, और यदि वे ऐसा नहीं करते हैं तो उन्हें संकलन करने से मना कर सकते हैं।
यदि किसी फ़ाइल को उचित एक्सटेंशन के बिना सहेजा या बदला जाता है, तो यह अभी भी उस फ़ाइल प्रकार के लिए उसी प्रारूप को बरकरार रखता है। यह इस तरह से है कि अधिकांश फाइल मैनेजर यह तय करते हैं कि किस एप्लिकेशन के साथ फाइल को खोलना है, और बिना एक्सटेंशन के क्यों सबसे अधिक उपयोगकर्ता को "इस फाइल को खोलने के लिए आप जिस प्रोग्राम का उपयोग करना चाहते हैं उसे चुनें:" के साथ संकेत देगा।
अंत में, सिस्टम-वाइड और उपयोगकर्ता-स्तरीय सेटिंग्स को परिभाषित करने के लिए पर्यावरण चर का उपयोग किया जाता है। उदाहरण के लिए, चर EDITORजब पाठ जैसे निपटने जो पाठ संपादक को खोलने के लिए निर्दिष्ट करने के लिए प्रयोग किया जाता है vim, nanoआदि इस तरह की प्रक्रिया है जो जब एक संपादन की तरह खुले करने के लिए संपादक, पता gitसंदेश के लिए प्रतिबद्ध। अन्यथा, आप सही हैं कि आपको निर्दिष्ट करना होगा कि किस एप्लिकेशन का उपयोग करना है। ध्यान दें कि vimएक्सटेंशन जाँच और फ़ाइल की सामग्री का निरीक्षण, अगर सेटिंग से पहचान लेता है फ़ाइल प्रकारों filetype on, सेट किया गया है जो उसके बाद सही वाक्य रचना हाइलाइटिंग, खरोज, आदि पर लागू होता है ²
टी एल; डॉ
सारांश में, यह उपयोगकर्ता-स्तर के अनुप्रयोग हैं जो निर्धारित करते हैं कि कौन से विशिष्ट फ़ाइल प्रकार को खोलने के लिए प्रोग्राम हैं, न कि स्वयं ओएस।