2013-02-14 32 views
6

मैंने विशेषाधिकार स्तर, अंगूठियां, विशेषाधिकार प्राप्त निर्देश, गैर विशेषाधिकार प्राप्त निर्देश, उपयोगकर्ता मोड, कर्नेल मोड, उपयोगकर्ता स्थान, कर्नेल स्पेस के बारे में सुना।प्रक्रिया के विशेषाधिकार स्तर का क्या निर्णय लेता है?

उपयोगकर्ता प्रक्रिया कम विशेषाधिकार के साथ चलती है जहां ओएस प्रक्रिया अधिक होती है, मैंने सीपीएल रजिस्टर के बारे में भी सुना जो सामान्य सुरक्षा के लिए जिम्मेदार है। इसके अलावा सीपीयू केवल सीपीएल को जानता है और यह तय किया जाता है कि कौन सा पृष्ठ निर्देश संबंधित है।

मैं जानना चाहता हूं कि शुरुआत में कौन सा/किस प्रक्रिया का विशेषाधिकार स्तर तय करता है?

जब यह तय किया जाता है कि प्रक्रिया कम या उच्च विशेषाधिकार स्तर के साथ चलती है? संकलन समय पर? लोड हो रहा है?

क्या बताता है कि वर्तमान प्रोग्राम विशिष्ट विशेषाधिकार स्तर के साथ चलाएगा? सेगमेंट रजिस्टर? वर्णनकर्ता? लोडर?

उत्तर

4

सबसे पहले मैं 3 प्रश्न देखता हूं।

  1. प्रारंभिक रूप से प्रक्रिया का विशेषाधिकार स्तर कौन तय करता है?
  2. जब यह तय किया जाता है कि प्रक्रिया कम या उच्च विशेषाधिकार स्तर के साथ चलती है?
  3. क्या बताता है कि वर्तमान प्रोग्राम विशिष्ट विशेषाधिकार स्तर के साथ चलाएगा?

दूसरी बात कुछ नियम

जब आप विशेषाधिकार स्तर कहते हैं, मेरा मानना ​​है कि आप the concept of level of privilege associated with CPU processor mode की बात कर रहे के रूप में किसी अन्य विशेषाधिकार उपलब्ध तंत्र की सामान्य स्तर का विरोध किया की परिभाषा पुष्टि करने के लिए।

जब आप प्रक्रिया कहते हैं, तो मेरा मानना ​​है कि आप कुछ वैकल्पिक परिभाषा के विपरीत the concept of the currently running program का जिक्र कर रहे हैं।

उपयोगकर्ता प्रक्रियाओं एक दिया CPU वास्तुकला

कर्नेल एक दिया CPU वास्तुकला के लिए पर्यवेक्षक विशेषाधिकार के साथ कर्नेल मोड में चलाने के प्रक्रियाओं के लिए उपयोगकर्ता विशेषाधिकार के साथ उपयोगकर्ता मोड में चलाते हैं।

चाहे प्रक्रिया उपयोगकर्ता या कर्नेल निर्भर करता है कि कौन से झंडे सेगमेंट डिस्क्रिप्टर में सेट किए जाते हैं जब पेजिंग का उपयोग नहीं किया जाता है या पृष्ठ तालिका या पृष्ठ निर्देशिका प्रविष्टियों में जहां पेजिंग का उपयोग किया जाता है।

इसका मतलब है कि प्रक्रिया का विशेषाधिकार स्तर निर्धारित करता है कि उस प्रक्रिया का कोड स्मृति में स्थित है। यदि यह कर्नेल स्पेस में है और प्रासंगिक झंडे का उपयोग करने के रूप में चिह्नित है, तो यह एक कर्नेल प्रक्रिया है। यदि यह उपयोगकर्ता स्थान में है और प्रासंगिक झंडे का उपयोग करने के रूप में चिह्नित है, तो यह एक उपयोगकर्ता प्रक्रिया है।

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

या तो प्रक्रिया है कि कर्नेल और पर्यवेक्षक विशेषाधिकार स्तर पर चलता है या यह नहीं है और यह उपयोगकर्ता विशेषाधिकार स्तर पर चलता है।

सीपीयू प्रासंगिक स्थिति रजिस्टरों (इंटेल एक्स 86 पर कोड स्थिति रजिस्टर, और एआरएम पर वर्तमान प्रोग्राम स्थिति रजिस्टर) के खिलाफ स्मृति से किसी भी कोड या डेटा सेगमेंट के प्रत्येक निष्पादन की जांच करता है।

जब उपयोगकर्ता प्रक्रियाओं को कर्नेल संसाधनों तक पहुंचने की आवश्यकता होती है, तो सामान्य प्रक्रिया यह है कि उपयोगकर्ता प्रक्रिया को सिस्टम कॉल करके कर्नेल प्रक्रिया को इसकी ओर से पूछने की अनुमति देकर, कर्नेल प्रक्रिया चलने पर विशेषाधिकार संदर्भ स्विच करता है उपयोगकर्ता प्रक्रिया के लिए अनुरोध।

एक साइड नोट के रूप में, Kernel Mode Linux, आपको कर्नेल/पर्यवेक्षक मोड में उपयोगकर्ता प्रक्रियाओं को चलाने की अनुमति देता है।

संदर्भ और आगे पढ़ने

+0

धन्यवाद। क्या इसका भी मतलब है ... लोडर और एमएमयू यूनिट/पेजिंग सिस्टम प्रारंभ में उपयोगकर्ता प्रोग्राम के लिए केवल उपयोगकर्ता स्थान में लोड करने के लिए ज़िम्मेदार है और इसलिए यह अप्रत्यक्ष रूप से विशेषाधिकार स्तर का निर्णय लेता है ..? –

0

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

अनुमतियों को कभी-कभी विशेषाधिकार कहा जाता है, इसलिए मैं समझाना चाहता हूं कि कैसे प्रोसेसर मोड सुरक्षा अनुमतियों को लागू करने में काम करते हैं।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^