संक्षेप में, नामस्थान एक बड़े लिनक्स सिस्टम के अंदर एक आभासी लिनक्स सिस्टम बनाने का एक तरीका प्रदान करते हैं। यह एक वर्चुअल मशीन को चलाने से अलग है जो एक अनप्रीविलाइज्ड प्रक्रिया के रूप में चलती है: वर्चुअल मशीन होस्ट में एक एकल प्रक्रिया के रूप में दिखाई देती है, जबकि एक नेमस्पेस के अंदर चलने वाली प्रक्रियाएं अभी भी होस्ट सिस्टम पर चल रही हैं।
एक बड़ी प्रणाली के अंदर चलने वाली एक आभासी प्रणाली को एक कंटेनर कहा जाता है । एक कंटेनर का विचार यह है कि कंटेनर के अंदर चलने वाली प्रक्रियाओं का मानना है कि वे सिस्टम में केवल प्रक्रियाएं हैं। विशेष रूप से, कंटेनर के अंदर रूट उपयोगकर्ता के पास कंटेनर के बाहर रूट विशेषाधिकार नहीं हैं (ध्यान दें कि यह कर्नेल के हाल के पर्याप्त संस्करणों में केवल सच है)।
Namespaces एक समय में एक फीचर का वर्चुअलाइजेशन करता है। नामस्थान के कुछ उदाहरण हैं:
- उपयोगकर्ता नामस्थान - यह प्रक्रियाओं को व्यवहार करने की अनुमति देता है जैसे कि वे नामस्थान के अंदर और बाहर विभिन्न उपयोगकर्ताओं के रूप में चल रहे थे। विशेष रूप से, नामस्थान के अंदर यूआईडी 0 के रूप में चलने वाली प्रक्रियाओं में सुपरसुसर विशेषाधिकार हैं जो केवल उसी नामस्थान में चलने वाली प्रक्रियाओं के संबंध में हैं।
लिनक्स कर्नेल 3.8 के बाद से, अनपेक्षित उपयोगकर्ता उपयोगकर्ता नामस्थान बना सकते हैं। यह एक सामान्य उपयोगकर्ता को उन सुविधाओं का उपयोग करने की अनुमति देता है जो रूट पर आरक्षित हैं (जैसे रूटिंग टेबल बदलना या क्षमताओं को सेट करना)।
- PID नामस्थान - PID नाम स्थान के अंदर की प्रक्रियाएँ उस नाम स्थान के बाहर की प्रक्रियाओं को मार या ट्रेस नहीं कर सकती हैं।
- माउंट नेमस्पेस - यह प्रक्रियाओं को फाइल सिस्टम के बारे में अपना दृष्टिकोण रखने की अनुमति देता है। यह दृश्य एक आंशिक दृश्य हो सकता है, जिससे फाइल सिस्टम के कुछ टुकड़ों को छिपाया जा सकता है और टुकड़ों को फिर से लगाया जा सकता है ताकि निर्देशिका पेड़ अलग-अलग जगहों पर दिखाई दें। माउंट नेमस्पेस पारंपरिक यूनिक्स फीचर चेरोट को सामान्य बनाता है , जो प्रक्रियाओं को एक विशेष सबट्री तक सीमित रखने की अनुमति देता है।
- नेटवर्क नेमस्पेस - नेटवर्किंग संसाधनों (नेटवर्क उपकरणों) को अलग करने की अनुमति देता है और इस प्रकार प्रक्रियाओं के अलगाव को बढ़ाता है।
नामस्थान के बीच अलगाव प्रदान करने के लिए नेमस्पेस कर्नेल पर भरोसा करते हैं। यह सही होने के लिए काफी जटिल है, इसलिए आस-पास अभी भी सुरक्षा कीड़े हो सकते हैं। सुरक्षा बग का जोखिम प्राथमिक कारण होगा जो सुविधा को सक्षम नहीं करेगा। जब आप एक एम्बेडेड डिवाइस के लिए एक छोटा सा कर्नेल बना रहे हैं, तो इसे सक्षम करने का एक और कारण नहीं होगा। एक सामान्य-उद्देश्य वाले कर्नेल में, जिसे आप किसी विशिष्ट सर्वर या कार्यस्थान पर स्थापित करेंगे, नाम स्थान किसी अन्य परिपक्व कर्नेल सुविधा की तरह सक्षम होना चाहिए।
अभी भी कुछ एप्लिकेशन हैं जो नेमस्पेस का उपयोग करते हैं। यहाँ कुछ है:
देखें माइकल केररिस्क द्वारा LWN लेख श्रृंखला में अधिक जानकारी के लिए।