यूजर स्पेस और कर्नेल स्पेस

आधुनिक कंप्यूटर ऑपरेटिंग सिस्टम सामान्यतः वर्चुअल मेमोरी को यूजर स्पेस और कर्नेल स्पेस में भिन्न करता है। मुख्य रूप से, यह सेपरेशन मालिसियस या ईरंट सॉफ़्टवेयर बेहेवियर से मेमोरी प्रोटेक्शन और हार्डवेयर प्रोटेक्शन प्रदान करने का कार्य करता है।

प्रिविलेगेड ऑपरेटिंग सिस्टम कर्नेल, कर्नेल एक्सटेंशन और अधिकांश डिवाइस ड्राइवर को चलाने के लिए कर्नेल स्पेस स्ट्रिक्टली से रिजर्व्ड है। इसके विपरीत, यूजर स्पेस वह मेमोरी फील्ड है जहां एप्लीकेशन सॉफ्टवेर सामग्री और कुछ ड्राइवर एक्सीक्यूट होते हैं।

अवलोकन
यूजर स्पेस (या यूजरलैंड) शब्द उन सभी कोड को संदर्भित करता है जो ऑपरेटिंग सिस्टम के कर्नेल के बाहर चलता है। यूजर स्पेस सामान्यतः विभिन्न प्रोग्रामों और लाइब्रेरी (कंप्यूटिंग) को संदर्भित करता है जो ऑपरेटिंग सिस्टम कर्नेल के साथ वार्तालाप करने के लिए उपयोग करता है: सॉफ्टवेयर जो इनपुट/आउटपुट करता है, फाइल सिस्टम ऑब्जेक्ट्स, एप्लिकेशन सॉफ़्टवेयर इत्यादि में अदान-प्रदान करता है।

प्रत्येक यूजर स्पेस सॉफ्टवेर (कंप्यूटिंग) सामान्यतः अपने स्वयं के वर्चुअल मेमोरी स्पेस में चलती है, और, जब तक कि स्पष्ट रूप से अनुमति न दी जाए, अन्य प्रक्रियाओं की मेमोरी तक नहीं पहुंच सकती। यह आज के मुख्यधारा के ऑपरेटिंग सिस्टम में मेमोरी प्रोटेक्शन का आधार है, और विशेषाधिकार सेपरेशन के लिए बिल्डिंग ब्लॉक है। कुशल वर्चुअल मशीन बनाने के लिए एक भिन्न यूजर मोड का भी उपयोग किया जा सकता है - पोपेक और गोल्डबर्ग वर्चुअलाइजेशन आवश्यकताएँ देखें। पर्याप्त विशेषाधिकारों के साथ, प्रक्रियाएं कर्नेल से किसी अन्य सॉफ्टवेर के मेमोरी स्पेस के हिस्से को अपने लिए मैप करने का अनुरोध कर सकती हैं, जैसा कि डिबगर के विषय में होता है। प्रोग्राम अन्य प्रक्रियाओं के साथ शेयर मेमोरी (इंटरप्रोसेस संचार) क्षेत्रों का भी अनुरोध कर सकते हैं, चूंकि अंतर-सॉफ्टवेर संचार की अनुमति देने के लिए अन्य प्रौद्योगिकी भी उपलब्ध हैं।

इम्प्लीमेंटेशन
कर्नल मोड से भिन्न यूजर मोड को प्रारम्भ करने का सबसे सरल उपाय ऑपरेटिंग सिस्टम प्रोटेक्शन रिंग सम्मिलित है। प्रोटेक्शन रिंग, परिवर्तन में, सीपीयू मोड का उपयोग करके इम्प्लीमेंटेशन किया जाता हैं। सामान्यतः, कर्नेल स्पेस प्रोग्राम कर्नेल मोड में चलते हैं, जिसे सुपरवाइज़र मोड भी कहा जाता है; यूजर स्पेस में नार्मल एप्लीकेशन यूजर मोड में चलते हैं।

कई ऑपरेटिंग सिस्टम सिंगल एड्रेस स्पेस ऑपरेटिंग सिस्टम हैं- उनके पास सभी यूजर-मोड कोड के लिए एक ही एड्रेस स्पेस है। (कर्नेल-मोड कोड एक ही एड्रेस स्पेस में हो सकता है, या यह दूसरे एड्रेस स्पेस में हो सकता है)। कई अन्य ऑपरेटिंग सिस्टम में पर-सॉफ्टवेर एड्रेस स्पेस होता है, प्रत्येक यूजर-मोड सॉफ्टवेर के लिए एक भिन्न एड्रेस स्पेस होता है।

एक्सपेरिमेंटल ऑपरेटिंग सिस्टम में अपनाया जाने वाला अन्य एप्रोच सभी सॉफ़्टवेयर के लिए एक ही एड्रेस स्पेस रखना है, और यह सुनिश्चित करने के लिए प्रोग्रामिंग लैंग्वेज के शब्दार्थ पर विश्वास करना है कि मेमोरी तक नहीं पहुंचा जा सकता है- एप्लिकेशन केवल उन ऑब्जेक्ट्स के लिए कोई रिफरेन्स (कंप्यूटर विज्ञान) प्राप्त नहीं कर सकते हैं जो उन्हें प्रवेश की अनुमति नहीं है। यह एप्रोच जेएक्स (ऑपरेटिंग सिस्टम), यूनुनुनियम के साथ-साथ माइक्रोसॉफ्ट के सिंगुलरिटी (ऑपरेटिंग सिस्टम) रिसर्च प्रोजेक्ट में प्रारम्भ किया गया है।

यह भी देखें

 * BIOS
 * सीपीयू मोड
 * प्रारंभिक यूजर स्पेस
 * मैमोरी प्रोटेक्शन
 * ओएस-स्तरीय वर्चुअलाइजेशन

बाहरी संबंध

 * Linux Kernel Space Definition