क्या लिनक्स में सिस्टम का समर्थन करने वाले फ़ाइल सिस्टम की सभी सुविधाओं तक पहुंचने के लिए सिस्टम कॉल है?


12

लिनक्स कई फाइल सिस्टम का समर्थन करता है (उदाहरण के लिए: ext3, NTFS, FAT32, आदि)।

निम्न आरेख दिखाता है कि लिनक्स फ़ाइलों को एक्सेस करने की प्रक्रिया को कैसे अनुमति देता है:

यहाँ छवि विवरण दर्ज करें

तो मान लें कि किसी read()फ़ाइल को पढ़ने के लिए सिस्टम कॉल नामक एक प्रक्रिया होती है, तो ऐसा क्या होता है कि VFS लेयर एक्सेस की जाएगी, और VFS लेयर यह तय करेगी कि विभाजन के फाइल सिस्टम के आधार पर फाइल सिस्टम ड्राइवर को कौन सी फाइल एक्सेस करनी है पढ़ा लिखा होना चाहिए।

लिनक्स (उदाहरण के लिए: पहुँच फ़ाइलों के लिए कई सिस्टम कॉल प्रदान करता है read(), write(), rename(), आदि)।

अब read()और write()और rename()सभी फ़ाइल सिस्टम का समर्थन करता है कि लिनक्स पर काम करते हैं।

लेकिन कुछ विशिष्ट विशेषताएं हैं जो केवल कुछ फ़ाइल सिस्टम पर मौजूद हैं जबकि अन्य पर मौजूद नहीं हैं। उदाहरण के लिए: एनटीएफएस फाइल सिस्टम पर, आप पुरालेख बिट को एक फाइल के लिए सेट कर सकते हैं , जबकि यह एक्स 3 फाइल सिस्टम पर नहीं किया जा सकता है।

अब मेरा सवाल यह है कि क्या लिनक्स के पास सिस्टम सिस्टम की सभी सुविधाओं को एक्सेस करने के लिए सिस्टम कॉल है? उदाहरण के लिए: क्या लिनक्स में NTFS फाइल सिस्टम पर एक फाइल के लिए पुरालेख बिट सेट करने के लिए एक सिस्टम कॉल है?

जवाबों:


10

क्या NTFS फ़ाइल सिस्टम पर फ़ाइल के लिए पुरालेख बिट सेट करने के लिए लिनक्स में एक सिस्टम कॉल है?

इस विशेष मामले के लिए, ntfs-3gड्राइवर विस्तारित विशेषताओं के माध्यम से फ़ाइल विशेषताओं का निर्यात करता है , क्या मैं लिनक्स पर NTFS पर एक फ़ाइल पर "पुरालेख" बिट सेट कर सकता हूं?

(वी) एफएटी फाइल सिस्टम में समान फ़ाइल विशेषताएँ हैं, लेकिन यह ioctl()उन्हें एक्सेस करने के लिए एक फ़ंक्शन का उपयोग करता है, देखें ioctl_fat(2)। ( ioctl()एक प्रकार की बहुउद्देशीय प्रणाली कॉल है, जिसका उपयोग सभी प्रकार के उपकरण विशिष्ट सामान के लिए किया जाता है जो वास्तविक सिस्टम कॉल को वारंट नहीं करते हैं।)

अब मेरा सवाल यह है कि क्या लिनक्स के पास सिस्टम सिस्टम की सभी सुविधाओं को एक्सेस करने के लिए सिस्टम कॉल है?

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

यह अब समर्थित होना चाहिए , अप्रैल 2017 में लिनक्स 4.11 में statx()सिस्टम कॉल को जोड़ा गया ।

सम्बंधित:


3
ntfs! = वसा। कम से कम एनटीएफएस के कर्नेल संस्करण के पास संग्रहित ध्वज को सेट करने या प्राप्त करने का कोई तरीका नहीं है, हालांकि इसके हेडर इसे परिभाषित करते हैं। केवल फ्यूज आधारित ntfs-3G इसका समर्थन करता है (विस्तारित विशेषताओं के माध्यम से, विशेष ioctls नहीं)।
चाचा बिली

यह सीधे सवाल से संबंधित नहीं है, लेकिन आपके उल्लेख के पूरक के रूप में statx, यह अब सी लाइब्रेरी और कोरुटिल के नवीनतम संस्करण में समर्थित है जो कुछ दिनों पहले जारी किया गया था।
स्टीफन किट

@UncleBilly, d'oh, जाहिरा तौर पर मैं पढ़ नहीं सकता, लेकिन बस स्वचालित रूप से (v) वसा के बारे में सोचा। यह देखने के लिए धन्यवाद, मैं देखूंगा कि क्या मुझे अधिक उपयुक्त संदर्भ मिल सकता है।
लक्काचु
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.