यदि आप काफी समय से लिनक्स का उपयोग कर रहे हैं, तो आपने "inodes" शब्द देखा होगा। यह कुछ ऐसा है जो कभी-कभी दिखाई देगा, लेकिन जो आप कर रहे हैं उसे प्रभावित नहीं करता। यहां हम बताएंगे कि इनोड्स क्या हैं और वे कैसे काम करते हैं।
इनोड्स क्या हैं?
एक लाइब्रेरी में, सभी किताबें शैली, लेखक का नाम या दर्शक आयु-समूह द्वारा व्यवस्थित होती हैं। यदि आप "बॉबी डेनियल्स" द्वारा एक थ्रिलर ढूंढना चाहते हैं तो आप सीधे थ्रिलर सेक्शन में जाएंगे और "B" से शुरू होने वाले लेखक नामों को ढूंढना शुरू करेंगे। लाइब्रेरी की तरह, लिनक्स सिस्टम में सभी फ़ाइलों को कुशल पुनर्प्राप्ति और उपयोग के लिए व्यवस्थित किया जाता है। इनोड एक इकाई है जो लिनक्स सिस्टम के भीतर फ़ाइलों की व्यवस्था में सहायता करती है।
फ़ाइल मेटाडेटा क्या है?
मान लीजिए हमारे पास "sample.txt" नामक एक फ़ाइल है जिसमें डेटा "hello" है।
इस फ़ाइल में इससे संबंधित कुछ डेटा और जानकारी है जैसे फ़ाइल आकार, अनुमतियां, उपयोगकर्ता और ग्रुप स्वामित्व, निर्माण/एक्सेस/संशोधन टाइमस्टैम्प, लिंक काउंट, आदि। इस सभी जानकारी को सामूहिक रूप से फ़ाइल मेटाडेटा कहा जाता है।
फाइल सिस्टम क्या हैं?
हार्ड ड्राइव जैसे स्टोरेज डिवाइस पर, एक पार्टीशन को फ़ाइल स्टोरेज के लिए उपयोग करने से पहले फाइल सिस्टम के रूप में फॉर्मेट किया जाता है। एक फाइल सिस्टम हार्ड ड्राइव के लिए लाइब्रेरियन है। औपचारिक रूप से, यह डेटा संरचनाओं और एल्गोरिदम का एक सेट है जो पार्टीशन पर फ़ाइलों को व्यवस्थित रूप से संग्रहीत करने के लिए मिलकर काम करते हैं।
लिनक्स सिस्टम पर पार्टीशन को अक्सर EXT4 के साथ फॉर्मेट किया जाता है। उपयोग के लिए B-Tree फाइल सिस्टम (BTRFS), Reiser फाइल सिस्टम, ZFS, आदि जैसे अन्य फाइल सिस्टम भी उपलब्ध हैं।
उन सभी को एक साथ जोड़ना
इनोड Ext4 पर एक डेटा संरचना है जो एक फ़ाइल के लिए सभी मेटाडेटा को रखती है।
बेशक एक फाइल सिस्टम पर कई फ़ाइलें होंगी। जैसा कि आपने अनुमान लगाया, हर फ़ाइल का अपना इनोड होगा। इनोड्स को विशिष्ट रूप से पहचानने के लिए, प्रत्येक इनोड को नंबर दिया जाता है।
इनोड नंबरिंग कैसी होगी?
एक फाइल सिस्टम पर इनोड नंबर 1 से शुरू होते हैं। पहले दस इनोड सिस्टम उपयोग के लिए आरक्षित हैं। उपयोगकर्ता फ़ाइलों का मेटाडेटा इनोड 11 से संग्रहीत होता है। सभी इनोड्स इनोड टेबल में बड़े करीने से एक साथ स्टैक्ड होते हैं।
इनोड टेबल में एक प्रविष्टि 256 बाइट्स आकार की होगी। एक फ़ाइल के लिए, लिनक्स सभी मेटाडेटा को 256 बाइट्स के भीतर बुद्धिमानी से व्यवस्थित करता है! इसके अलावा, एक फ़ाइल के लिए एक इनोड में यह जानकारी भी होगी कि फाइल सिस्टम में फ़ाइल का डेटा कहां स्थित है। याद रखें - केवल फ़ाइल का मेटाडेटा इनोड में संग्रहीत होता है।
एक फाइल सिस्टम में इनोड्स की कुल संख्या उपलब्ध स्थान और पार्टीशन पर संग्रहीत की जा सकने वाली फ़ाइलों की संख्या पर निर्भर करती है।
इनोड्स कैसे आवंटित और डीएलोकेटेड होते हैं?
जैसे ही उपयोगकर्ता एक नए फॉर्मेट किए गए फाइल सिस्टम में फ़ाइलें जोड़ता है, इनोड्स 11 से शुरू होकर फ़ाइल मेटाडेटा रखने के लिए आवंटित किए जाते हैं।
"इनोड बिटमैप" नामक एक अन्य डेटा संरचना है जो इनोड के आवंटन स्थिति को ट्रैक करती है। यह बिट्स का एक संग्रह है जो एक मैप के रूप में कार्य करता है।
आइए नीचे दी गई तालिका में दिखाए अनुसार इनोड बिटमैप में आठ बिट्स पर विचार करें जो इनोड्स 11 से 18 की आवंटन स्थिति को दर्शाते हैं। बिटमैप में 1 का मान意味着 उस इनोड को आवंटित किया गया है, यानी फ़ाइल के लिए मेटाडेटा रखने के लिए उपयोग किया जाता है। बिटमैप में 0 का मान意味着 वह इनोड वर्तमान में उपयोग में नहीं है। यहां, हम देख सकते हैं कि इनोड 17 उपयोग में है।
यदि जिस फ़ाइल का मेटाडेटा इनोड 17 में है, उसे हटा दिया जाता है, तो इसकी संबंधित बिटमैप स्थिति 0 हो जाएगी, यह दर्शाता है कि यह किसी अन्य फ़ाइल द्वारा उपयोग किए जाने के लिए मुक्त है।
किसी फ़ाइल के लिए इनोड नंबर कैसे देखें?
यह दो तरीकों से किया जा सकता है।
पहला ls कमांड का उपयोग -i स्विच के साथ करना है, इसके बाद फ़ाइल का नाम। आउटपुट में पहला फ़ील्ड वह इनोड नंबर है जिसमें "sample.txt" का मेटाडेटा है।
उसी जानकारी को stat कमांड का उपयोग करके फ़ाइल नाम के बाद प्राप्त किया जा सकता है।
किसी पार्टीशन के लिए उपलब्ध इनोड्स की कुल संख्या देखने के लिए, df कमांड का उपयोग -i स्विच के साथ किया जा सकता है।
"/dev/sda4" पार्टीशन में, 404754480 इनोड्स उपयोग के लिए उपलब्ध हैं, जिनमें से केवल 359044 इनोड्स उपयोग में हैं।
निष्कर्ष
प्रकृति से, इनोड टेबल सभी फ़ाइलों के मेटाडेटा को इनोड्स में सावधानीपूर्वक स्टैक करता है, साथ ही फ़ाइल डेटा के स्थान के बारे में जानकारी। लिनक्स इनोड्स के बारे में हमने जो कुछ भी चर्चा की है, वह बस हिमशैल का टिप है। इसके आंतरिक कामकाज के बारे में अधिक जानकारी के लिए, आप इस लिंक को देख सकते हैं।