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

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

कर्नेल स्थान विशेषाधिकार प्राप्त ऑपरेटिंग सिस्टम कर्नेल, कर्नेल एक्सटेंशन और अधिकांश डिवाइस ड्राइवर चलाने के लिए सख्ती से आरक्षित है। इसके विपरीत, उपयोगकर्ता स्थान मेमोरी क्षेत्र है जहां अनुप्रयोग प्रक्रिया सामग्री और कुछ ड्राइवर निष्पादित होते हैं।

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

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

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

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

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

यह भी देखें

 * बीआईओएस
 * सीपीयू मोड
 * प्रारंभिक उपयोगकर्ता स्थान
 * स्मृति सुरक्षा
 * ओएस-स्तरीय वर्चुअलाइजेशन

बाहरी संबंध

 * Linux Kernel Space Definition