निर्देशिकाओं की आंतरिक संरचना उपयोग में फाइल सिस्टम पर निर्भर है। यदि आप ठीक से जानना चाहते हैं कि क्या होता है, तो फाइल सिस्टम कार्यान्वयन पर एक नज़र डालें।
मूल रूप से, अधिकांश फाइल सिस्टम में, एक निर्देशिका फ़ाइलनाम (कुंजी) और इनोडेस संख्या (मान) के बीच एक सहयोगी सरणी होती है। कुछ इस तरह से:
1167010 .
1158721 ..
1167626 subdir
132651 barfile
132650 bazfile
इस सूची को कुछ (कमोबेश) 4KB ब्लॉक की श्रृंखला के अंदर कम या ज्यादा कुशल तरीके से कोडित किया गया है। ध्यान दें कि नियमित फ़ाइलों की सामग्री इसी तरह संग्रहीत होती है। निर्देशिकाओं के मामले में, यह जानने का कोई मतलब नहीं है कि इन ब्लॉकों के अंदर वास्तव में किस आकार का उपयोग किया जाता है। यही कारण है कि निर्देशिका द्वारा रिपोर्ट किए गए आकार du
4KB के गुणक हैं।
सामान्य ज्ञान में 'फाइल' नाम से एकल इकाई बनाते हुए ब्लॉक को एक साथ बाँधने के लिए होते हैं। उन्हें एक संख्या से पहचाना जाता है जो किसी प्रकार का पता होता है और प्रत्येक को आमतौर पर एकल, विशेष ब्लॉक के रूप में संग्रहीत किया जाता है।
इस सब का प्रबंधन कर्नेल मोड में होता है। सॉफ्टवेयर सिर्फ एक निर्देशिका के निर्माण के लिए कहता है जिसमें int mkdir(const char *pathname, mode_t mode);
एक सिस्टम कॉल के लिए अग्रणी फ़ंक्शन का नाम होता है , और शेष सभी पर्दे के पीछे किया जाता है।
लिंक संरचना के बारे में:
एक हार्ड लिंक एक फ़ाइल नहीं है, यह सिर्फ एक नई निर्देशिका प्रविष्टि है (यानी एक नाम - इनोड नंबर एसोसिएशन) एक preexisting इनोड एंटिटी² का जिक्र है। इसका मतलब यह है कि एक ही इनकोड को अलग-अलग पाथनेम्स से एक्सेस किया जा सकता है। विशेष रूप से, चूंकि मेटाडेटा (अनुमतियाँ, स्वामित्व, टाइमस्टैम्प ...) इनोड के भीतर संग्रहीत हैं, ये फ़ाइल को एक्सेस करने के लिए चुने गए पथनाम के अद्वितीय और स्वतंत्र हैं।
एक प्रतीकात्मक कड़ी है एक फ़ाइल और वह अपने लक्ष्य से अलग होती है। इसका मतलब यह है कि इसका अपना इनोड है। यह एक नियमित फाइल की तरह ही संभाला जाता था: लक्ष्य पथ एक डेटा ब्लॉक में संग्रहीत किया गया था। लेकिन अब, हाल ही में विकसित फाइलसिस्टम में दक्षता कारणों से, 60 बाइट्स से छोटे रास्तों को इनोड के भीतर ही संग्रहीत किया जाता है (उन फ़ील्ड्स का उपयोग किया जाता है, जो सामान्य रूप से डेटा ब्लॉक पर पॉइंटर्स को संग्रहीत करने के लिए उपयोग किए जाते हैं)।
-
1. यह प्रयोग करके प्राप्त किया गया था ls -ai1 testdir
।
2. जिसका प्रकार आजकल 'निर्देशिका' से भिन्न होना चाहिए।