सुरक्षा रिंग: Difference between revisions

From Vigyanwiki
m (Abhishek moved page संरक्षण की अंगूठी to सुरक्षा रिंग without leaving a redirect)
No edit summary
Line 2: Line 2:
{{redirect-several|Ring|Ring 0}}
{{redirect-several|Ring|Ring 0}}
{{Use dmy dates|date=January 2021}}
{{Use dmy dates|date=January 2021}}
{{More footnotes|date=February 2015}}
[[File:Priv rings.svg|300px|thumb|right|संरक्षित मोड में उपलब्ध x[[86]] के लिए प्रिविलेज रिंग्स]][[कंप्यूटर विज्ञान]] में, श्रेणीबद्ध सुरक्षा डोमेन,<ref>{{Cite conference|doi=10.1109/SP.1984.10001|title=जाली सुरक्षा और पहुंच की पता लगाने की क्षमता का समर्थन करने के लिए एक संवर्धित क्षमता वास्तुकला|conference=1984 IEEE Symposium on Security and Privacy|year=1984|last1=Karger|first1=Paul A.|last2=Herbert|first2=Andrew J.|page=2|isbn=0-8186-0532-4|s2cid=14788823}}</ref><ref>{{Cite conference|doi = 10.1109/SAINT.2001.905166|title = Design and implementation of the J-SEAL2 mobile agent kernel|book-title = Proceedings 2001 Symposium on Applications and the Internet|year = 2001|last1 = Binder|first1 = W.|pages = 35–42|isbn = 0-7695-0942-8|s2cid = 11066378}}</ref> जिन्हें प्रायः सुरक्षा रिंग कहा जाता है, डेटा और कार्यक्षमता को दोषों ([[दोष-सहिष्णु डिजाइन|फॉल्ट टॉलरेंस]] में संशोधन करके) और विद्वेषी ([[कंप्यूटर सुरक्षा]] प्रदान करके) से सुरक्षित रखने के लिए क्रियाविधि है।
[[File:Priv rings.svg|300px|thumb|right|संरक्षित मोड में उपलब्ध x[[86]] के लिए प्रिविलेज रिंग्स]][[कंप्यूटर विज्ञान]] में, श्रेणीबद्ध सुरक्षा डोमेन,<ref>{{Cite conference|doi=10.1109/SP.1984.10001|title=जाली सुरक्षा और पहुंच की पता लगाने की क्षमता का समर्थन करने के लिए एक संवर्धित क्षमता वास्तुकला|conference=1984 IEEE Symposium on Security and Privacy|year=1984|last1=Karger|first1=Paul A.|last2=Herbert|first2=Andrew J.|page=2|isbn=0-8186-0532-4|s2cid=14788823}}</ref><ref>{{Cite conference|doi = 10.1109/SAINT.2001.905166|title = Design and implementation of the J-SEAL2 mobile agent kernel|book-title = Proceedings 2001 Symposium on Applications and the Internet|year = 2001|last1 = Binder|first1 = W.|pages = 35–42|isbn = 0-7695-0942-8|s2cid = 11066378}}</ref> अक्सर सुरक्षा रिंग कहा जाता है, डेटा और कार्यक्षमता को दोषों ([[दोष-सहिष्णु डिजाइन]] में सुधार करके) और दुर्भावनापूर्ण व्यवहार ([[कंप्यूटर सुरक्षा]] प्रदान करके) से बचाने के लिए तंत्र हैं।


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


मनमाना उपयोग की अनुमति देने के विपरीत, बाहरी रिंग को पूर्वनिर्धारित तरीके से आंतरिक रिंग के संसाधनों तक पहुंचने की अनुमति देने के लिए रिंगों के बीच विशेष [[कॉल गेट]]्स प्रदान किए जाते हैं। रिंगों के बीच सही ढंग से गेटिंग एक्सेस एक रिंग या विशेषाधिकार स्तर के कार्यक्रमों को दूसरे में प्रोग्राम के लिए अभिप्रेत संसाधनों के दुरुपयोग से रोककर सुरक्षा में सुधार कर सकता है। उदाहरण के लिए, रिंग 3 में उपयोगकर्ता प्रोग्राम के रूप में चल रहे [[स्पाइवेयर]] को उपयोगकर्ता को सूचित किए बिना वेब कैमरा चालू करने से रोका जाना चाहिए, क्योंकि हार्डवेयर एक्सेस [[डिवाइस ड्राइवर]]ों के लिए आरक्षित रिंग 1 फ़ंक्शन होना चाहिए। उच्च संख्या वाले रिंग में चलने वाले वेब ब्राउज़र जैसे प्रोग्राम को नेटवर्क तक पहुंच का अनुरोध करना चाहिए, एक संसाधन जो कम संख्या वाली रिंग तक सीमित है।
मनमाना उपयोग की अनुमति देने के विपरीत, बाहरी रिंग को पूर्वनिर्धारित तरीके से आंतरिक रिंग के संसाधनों तक पहुंचने की अनुमति देने के लिए रिंगों के मध्य विशेष [[कॉल गेट]]्स प्रदान किए जाते हैं। रिंगों के मध्य सही ढंग से गेटिंग एक्सेस रिंग या विशेषाधिकार स्तर के कार्यक्रमों को दूसरे में प्रोग्राम के लिए अभिप्रेत संसाधनों के दुरुपयोग से रोककर सुरक्षा में सुधार कर सकता है। उदाहरण के लिए, रिंग 3 में उपयोगकर्ता प्रोग्राम के रूप में चल रहे [[स्पाइवेयर]] को उपयोगकर्ता को सूचित किए बिना वेब कैमरा चालू करने से रोका जाना चाहिए, क्योंकि हार्डवेयर एक्सेस [[डिवाइस ड्राइवर]]ों के लिए आरक्षित रिंग 1 फ़ंक्शन होना चाहिए। उच्च संख्या वाले रिंग में चलने वाले वेब ब्राउज़र जैसे प्रोग्राम को नेटवर्क तक पहुंच का अनुरोध करना चाहिए, संसाधन जो कम संख्या वाली रिंग तक सीमित है।


== कार्यान्वयन ==
== कार्यान्वयन ==
[[ मॉलटिक्स ]] ऑपरेटिंग सिस्टम द्वारा शुरू की गई सबसे क्रांतिकारी अवधारणाओं में सुरक्षा के कई छल्ले थे, जो ऑपरेटिंग सिस्टम के आज के [[यूनिक्स]] परिवार के एक अत्यधिक सुरक्षित पूर्ववर्ती हैं। [[GE 645]] मेनफ्रेम कंप्यूटर में कुछ हार्डवेयर अभिगम नियंत्रण था, लेकिन यह हार्डवेयर में रिंगों के लिए पूर्ण समर्थन प्रदान करने के लिए पर्याप्त नहीं था, इसलिए मल्टिक्स ने सॉफ्टवेयर में रिंग ट्रांज़िशन को फंसाकर उनका समर्थन किया;<ref>{{cite journal|title=प्रोटेक्शन रिंग्स को लागू करने के लिए एक हार्डवेयर आर्किटेक्चर|url=http://www.multicians.org/protection.html|journal=[[Communications of the ACM]]|date=March 1972|volume=15 |issue=3|access-date=27 September 2012}}</ref> इसके उत्तराधिकारी, [[हनीवेल 6180]] ने उन्हें आठ रिंगों के समर्थन के साथ हार्डवेयर में लागू किया।<ref>{{cite web|title=मल्टिक्स ग्लोसरी - रिंग|url=http://www.multicians.org/mgr.html#ring|access-date=27 September 2012}}</ref> हालाँकि, अधिकांश सामान्य-प्रयोजन प्रणालियाँ केवल दो रिंगों का उपयोग करती हैं, भले ही वे जिस हार्डवेयर पर चलते हैं वह उससे अधिक CPU मोड प्रदान करता हो। उदाहरण के लिए, विंडोज 7 और विंडोज सर्वर 2008 (और उनके पूर्ववर्ती) केवल दो रिंगों का उपयोग करते हैं, जिसमें रिंग 0 #SUPERVISOR-MODE के अनुरूप है और रिंग 3 [[ उपयोक्ता स्थान ]] के लिए है,<ref name="russinovich"/>क्योंकि Windows के पुराने संस्करण ऐसे प्रोसेसर पर चलते थे जो केवल दो सुरक्षा स्तरों का समर्थन करते थे।<ref>{{cite book|last=Russinovich|first=Mark|title=Windows Internals Part 1. 6th Ed|year=2012|publisher=Microsoft Press|location=Redmond, Washington|isbn=978-0-7356-4873-9|page=17|quote=The reason Windows uses only two levels is that some hardware architectures that were supported in the past (such as [[DEC Alpha|Compaq Alpha]] and [[MIPS architecture|Silicon Graphics MIPS]]) implemented only two privilege levels.}}</ref>
[[ मॉलटिक्स ]] ऑपरेटिंग सिस्टम द्वारा शुरू की गई सबसे क्रांतिकारी अवधारणाओं में सुरक्षा के कई छल्ले थे, जो ऑपरेटिंग सिस्टम के आज के [[यूनिक्स]] परिवार के अत्यधिक सुरक्षित पूर्ववर्ती हैं। [[GE 645]] मेनफ्रेम कंप्यूटर में कुछ हार्डवेयर अभिगम नियंत्रण था, लेकिन यह हार्डवेयर में रिंगों के लिए पूर्ण समर्थन प्रदान करने के लिए पर्याप्त नहीं था, इसलिए मल्टिक्स ने सॉफ्टवेयर में रिंग ट्रांज़िशन को फंसाकर उनका समर्थन किया;<ref>{{cite journal|title=प्रोटेक्शन रिंग्स को लागू करने के लिए एक हार्डवेयर आर्किटेक्चर|url=http://www.multicians.org/protection.html|journal=[[Communications of the ACM]]|date=March 1972|volume=15 |issue=3|access-date=27 September 2012}}</ref> इसके उत्तराधिकारी, [[हनीवेल 6180]] ने उन्हें आठ रिंगों के समर्थन के साथ हार्डवेयर में लागू किया।<ref>{{cite web|title=मल्टिक्स ग्लोसरी - रिंग|url=http://www.multicians.org/mgr.html#ring|access-date=27 September 2012}}</ref> हालाँकि, अधिकांश सामान्य-प्रयोजन प्रणालियाँ केवल दो रिंगों का उपयोग करती हैं, भले ही वे जिस हार्डवेयर पर चलते हैं वह उससे अधिक CPU मोड प्रदान करता हो। उदाहरण के लिए, विंडोज 7 और विंडोज सर्वर 2008 (और उनके पूर्ववर्ती) केवल दो रिंगों का उपयोग करते हैं, जिसमें रिंग 0 #SUPERVISOR-MODE के अनुरूप है और रिंग 3 [[ उपयोक्ता स्थान ]] के लिए है,<ref name="russinovich"/>क्योंकि Windows के पुराने संस्करण ऐसे प्रोसेसर पर चलते थे जो केवल दो सुरक्षा स्तरों का समर्थन करते थे।<ref>{{cite book|last=Russinovich|first=Mark|title=Windows Internals Part 1. 6th Ed|year=2012|publisher=Microsoft Press|location=Redmond, Washington|isbn=978-0-7356-4873-9|page=17|quote=The reason Windows uses only two levels is that some hardware architectures that were supported in the past (such as [[DEC Alpha|Compaq Alpha]] and [[MIPS architecture|Silicon Graphics MIPS]]) implemented only two privilege levels.}}</ref>
कई आधुनिक सीपीयू आर्किटेक्चर (लोकप्रिय [[इंटेल]] x86 आर्किटेक्चर सहित) में कुछ प्रकार की रिंग सुरक्षा शामिल है, हालांकि यूनिक्स की तरह [[विंडोज एनटी]] ऑपरेटिंग सिस्टम इस सुविधा का पूरी तरह से उपयोग नहीं करता है। OS/2 कुछ हद तक तीन रिंगों का उपयोग करता है:<ref>{{Cite web |url=http://cyberkinetica.homeunix.net/os2tk45/ddk_pdrref/005_L1_IntroductiontoOS2Pre.html |title=Presentation Device Driver Reference for OS/2 - 5. Introduction to OS/2 Presentation Drivers |access-date=13 June 2015 |archive-url=https://web.archive.org/web/20150615030714/http://cyberkinetica.homeunix.net/os2tk45/ddk_pdrref/005_L1_IntroductiontoOS2Pre.html |archive-date=15 June 2015 |url-status=dead }}</ref> कर्नेल कोड और डिवाइस ड्राइवरों के लिए 0 रिंग करें, विशेषाधिकार प्राप्त कोड के लिए 2 रिंग करें (I/O एक्सेस अनुमतियों के साथ उपयोगकर्ता प्रोग्राम), और अनपेक्षित कोड (लगभग सभी उपयोगकर्ता प्रोग्राम) के लिए रिंग 3। DOS के तहत, कर्नेल, ड्राइवर और एप्लिकेशन आमतौर पर रिंग 3 पर चलते हैं (हालांकि, यह उस मामले के लिए विशिष्ट है जहां संरक्षित-मोड ड्राइवर और/या DOS एक्सटेंडर का उपयोग किया जाता है; एक वास्तविक-मोड OS के रूप में, सिस्टम प्रभावी रूप से बिना किसी सुरक्षा के चलता है। ), जबकि 386 मेमोरी मैनेजर जैसे [[EMM386]] रिंग 0 पर चलते हैं। इसके अलावा, [[DR-DOS]]' EMM386 3.xx वैकल्पिक रूप से रिंग 1 पर कुछ मॉड्यूल (जैसे [[डॉस संरक्षित मोड सेवाएं]]) चला सकते हैं। [[ ओपन VMS ]] कर्नेल, कार्यकारी, पर्यवेक्षक और उपयोगकर्ता नामक चार मोड का उपयोग करता है (घटते विशेषाधिकारों के क्रम में)।
कई आधुनिक सीपीयू आर्किटेक्चर (लोकप्रिय [[इंटेल]] x86 आर्किटेक्चर सहित) में कुछ प्रकार की रिंग सुरक्षा शामिल है, हालांकि यूनिक्स की तरह [[विंडोज एनटी]] ऑपरेटिंग सिस्टम इस सुविधा का पूरी तरह से उपयोग नहीं करता है। OS/2 कुछ हद तक तीन रिंगों का उपयोग करता है:<ref>{{Cite web |url=http://cyberkinetica.homeunix.net/os2tk45/ddk_pdrref/005_L1_IntroductiontoOS2Pre.html |title=Presentation Device Driver Reference for OS/2 - 5. Introduction to OS/2 Presentation Drivers |access-date=13 June 2015 |archive-url=https://web.archive.org/web/20150615030714/http://cyberkinetica.homeunix.net/os2tk45/ddk_pdrref/005_L1_IntroductiontoOS2Pre.html |archive-date=15 June 2015 |url-status=dead }}</ref> कर्नेल कोड और डिवाइस ड्राइवरों के लिए 0 रिंग करें, विशेषाधिकार प्राप्त कोड के लिए 2 रिंग करें (I/O एक्सेस अनुमतियों के साथ उपयोगकर्ता प्रोग्राम), और अनपेक्षित कोड (लगभग सभी उपयोगकर्ता प्रोग्राम) के लिए रिंग 3। DOS के तहत, कर्नेल, ड्राइवर और एप्लिकेशन सामान्यतः रिंग 3 पर चलते हैं (हालांकि, यह उस मामले के लिए विशिष्ट है जहां संरक्षित-मोड ड्राइवर और/या DOS एक्सटेंडर का उपयोग किया जाता है; वास्तविक-मोड OS के रूप में, सिस्टम प्रभावी रूप से बिना किसी सुरक्षा के चलता है। ), जबकि 386 मेमोरी मैनेजर जैसे [[EMM386]] रिंग 0 पर चलते हैं। इसके अलावा, [[DR-DOS]]' EMM386 3.xx वैकल्पिक रूप से रिंग 1 पर कुछ मॉड्यूल (जैसे [[डॉस संरक्षित मोड सेवाएं]]) चला सकते हैं। [[ ओपन VMS ]] कर्नेल, कार्यकारी, पर्यवेक्षक और उपयोगकर्ता नामक चार मोड का उपयोग करता है (घटते विशेषाधिकारों के क्रम में)।


इस डिज़ाइन संरचना में एक नए सिरे से रुचि [[ एक्सईएन ]] [[सूत्र]] सॉफ़्टवेयर के प्रसार के साथ आई, [[ अखंड कर्नेल ]] बनाम [[माइक्रोकर्नेल]] | माइक्रो-कर्नेल (विशेष रूप से [[यूज़नेट]] न्यूज़ग्रुप और [[इंटरनेट मंच]] में), माइक्रोसॉफ्ट [[की]] रिंग -1 डिज़ाइन संरचना के हिस्से के रूप में टेनेनबाम-टोरवाल्ड्स बहस उनकी [[नेक्स्ट-जेनरेशन सिक्योर कंप्यूटिंग बेस]] पहल, और [[इंटेल वीटी-एक्स]] (पूर्व में वेंडरपूल) जैसे [[x86 वर्चुअलाइजेशन]] पर आधारित हाइपरविजर।
इस डिज़ाइन संरचना में नए सिरे से रुचि [[ एक्सईएन ]] [[सूत्र]] सॉफ़्टवेयर के प्रसार के साथ आई, [[ अखंड कर्नेल ]] बनाम [[माइक्रोकर्नेल]] | माइक्रो-कर्नेल (विशेष रूप से [[यूज़नेट]] न्यूज़ग्रुप और [[इंटरनेट मंच]] में), माइक्रोसॉफ्ट [[की]] रिंग -1 डिज़ाइन संरचना के हिस्से के रूप में टेनेनबाम-टोरवाल्ड्स बहस उनकी [[नेक्स्ट-जेनरेशन सिक्योर कंप्यूटिंग बेस]] पहल, और [[इंटेल वीटी-एक्स]] (पूर्व में वेंडरपूल) जैसे [[x86 वर्चुअलाइजेशन]] पर आधारित हाइपरविजर।


मूल मल्टिक्स प्रणाली में आठ छल्ले थे, लेकिन कई आधुनिक प्रणालियों में कम हैं। हार्डवेयर एक विशेष मशीन रजिस्टर की मदद से हर समय निष्पादन निर्देश [[थ्रेड (कंप्यूटिंग)]] की वर्तमान रिंग से अवगत रहता है। कुछ प्रणालियों में, [[ आभासी मेमोरी ]] के क्षेत्रों को इसके बजाय हार्डवेयर में रिंग नंबर दिए जाते हैं। एक उदाहरण डेटा जनरल एक्लिप्स एमवी / 8000 है, जिसमें [[ कार्यक्रम गणक ]] के शीर्ष तीन बिट्स | प्रोग्राम काउंटर (पीसी) रिंग रजिस्टर के रूप में कार्य करता है। इस प्रकार वर्चुअल पीसी सेट के साथ 0xE200000 पर कोड निष्पादित करना, उदाहरण के लिए, स्वचालित रूप से रिंग 7 में होगा, और मेमोरी के एक अलग सेक्शन में सबरूटीन को कॉल करने से स्वचालित रूप से रिंग ट्रांसफर हो जाएगा।
मूल मल्टिक्स प्रणाली में आठ छल्ले थे, लेकिन कई आधुनिक प्रणालियों में कम हैं। हार्डवेयर विशेष मशीन रजिस्टर की मदद से हर समय निष्पादन निर्देश [[थ्रेड (कंप्यूटिंग)]] की वर्तमान रिंग से अवगत रहता है। कुछ प्रणालियों में, [[ आभासी मेमोरी ]] के क्षेत्रों को इसके बजाय हार्डवेयर में रिंग नंबर दिए जाते हैं। उदाहरण डेटा जनरल एक्लिप्स एमवी / 8000 है, जिसमें [[ कार्यक्रम गणक ]] के शीर्ष तीन बिट्स | प्रोग्राम काउंटर (पीसी) रिंग रजिस्टर के रूप में कार्य करता है। इस प्रकार वर्चुअल पीसी सेट के साथ 0xE200000 पर कोड निष्पादित करना, उदाहरण के लिए, स्वचालित रूप से रिंग 7 में होगा, और मेमोरी के अलग सेक्शन में सबरूटीन को कॉल करने से स्वचालित रूप से रिंग ट्रांसफर हो जाएगा।


हार्डवेयर उन तरीकों को गंभीर रूप से प्रतिबंधित करता है जिसमें नियंत्रण एक रिंग से दूसरे में पारित किया जा सकता है, और उन मेमोरी एक्सेस के प्रकारों पर भी प्रतिबंध लगाता है जो रिंगों में किए जा सकते हैं। एक उदाहरण के रूप में x86 का उपयोग करना, एक विशेष है{{clarify|date=November 2015}} गेट संरचना जिसे कॉल निर्देश द्वारा संदर्भित किया जाता है जो नियंत्रण को सुरक्षित तरीके से स्थानांतरित करता है{{clarify|date=November 2015}} निचले-स्तर (अधिक विश्वसनीय) रिंगों में पूर्वनिर्धारित प्रवेश बिंदुओं की ओर; यह रिंग आर्किटेक्चर का उपयोग करने वाले कई ऑपरेटिंग सिस्टम में [[पर्यवेक्षक कॉल]] के रूप में कार्य करता है। हार्डवेयर प्रतिबंध सुरक्षा के आकस्मिक या दुर्भावनापूर्ण उल्लंघनों के अवसरों को सीमित करने के लिए डिज़ाइन किए गए हैं। इसके अलावा, सबसे विशेषाधिकार प्राप्त रिंग को विशेष क्षमताएं दी जा सकती हैं, (जैसे वास्तविक मेमोरी एड्रेसिंग जो वर्चुअल मेमोरी हार्डवेयर को बायपास करती है)।
हार्डवेयर उन तरीकों को गंभीर रूप से प्रतिबंधित करता है जिसमें नियंत्रण एक रिंग से दूसरे में पारित किया जा सकता है, और उन मेमोरी एक्सेस के प्रकारों पर भी प्रतिबंध लगाता है जो रिंगों में किए जा सकते हैं। उदाहरण के रूप में x86 का उपयोग करना, विशेष है{{clarify|date=November 2015}} गेट संरचना जिसे कॉल निर्देश द्वारा संदर्भित किया जाता है जो नियंत्रण को सुरक्षित तरीके से स्थानांतरित करता है{{clarify|date=November 2015}} निचले-स्तर (अधिक विश्वसनीय) रिंगों में पूर्वनिर्धारित प्रवेश बिंदुओं की ओर; यह रिंग आर्किटेक्चर का उपयोग करने वाले कई ऑपरेटिंग सिस्टम में [[पर्यवेक्षक कॉल]] के रूप में कार्य करता है। हार्डवेयर प्रतिबंध सुरक्षा के आकस्मिक या दुर्भावनापूर्ण उल्लंघनों के अवसरों को सीमित करने के लिए डिज़ाइन किए गए हैं। इसके अलावा, सबसे विशेषाधिकार प्राप्त रिंग को विशेष क्षमताएं दी जा सकती हैं, (जैसे वास्तविक मेमोरी एड्रेसिंग जो वर्चुअल मेमोरी हार्डवेयर को बायपास करती है)।


[[ एआरएम वास्तुकला ]] संस्करण 7 आर्किटेक्चर तीन विशेषाधिकार स्तरों को लागू करता है: एप्लिकेशन (PL0), ऑपरेटिंग सिस्टम (PL1), और हाइपरविजर (PL2)। असामान्य रूप से, स्तर 0 (PL0) सबसे कम विशेषाधिकार प्राप्त स्तर है, जबकि स्तर 2 सबसे विशेषाधिकार प्राप्त स्तर है।<ref>{{cite manual|url=https://developer.arm.com/documentation/ddi0406/latest|title=ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition|page=B1{{hyp}}1136|publisher=[[Arm Ltd.]]}}</ref> AArch64 के लिए एआरएम संस्करण 8 चार अपवाद स्तरों को लागू करता है: एप्लिकेशन (ईएल0), ऑपरेटिंग सिस्टम (ईएल1), हाइपरविजर (ईएल2), और सुरक्षित मॉनिटर/फर्मवेयर (ईएल3)।<ref name="armv8-a">{{cite manual|url=https://developer.arm.com/documentation/ddi0487/latest|title=Arm Architecture Reference Manual Armv8, for A-profile architecture|publisher=[[Arm Ltd.]]}}</ref>{{rp|D1{{hyp}}2454}} और AArch32.<ref name="armv8-a" />{{rp|G1{{hyp}}6013}}
[[ एआरएम वास्तुकला ]] संस्करण 7 आर्किटेक्चर तीन विशेषाधिकार स्तरों को लागू करता है: एप्लिकेशन (PL0), ऑपरेटिंग सिस्टम (PL1), और हाइपरविजर (PL2)। असामान्य रूप से, स्तर 0 (PL0) सबसे कम विशेषाधिकार प्राप्त स्तर है, जबकि स्तर 2 सबसे विशेषाधिकार प्राप्त स्तर है।<ref>{{cite manual|url=https://developer.arm.com/documentation/ddi0406/latest|title=ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition|page=B1{{hyp}}1136|publisher=[[Arm Ltd.]]}}</ref> AArch64 के लिए एआरएम संस्करण 8 चार अपवाद स्तरों को लागू करता है: एप्लिकेशन (ईएल0), ऑपरेटिंग सिस्टम (ईएल1), हाइपरविजर (ईएल2), और सुरक्षित मॉनिटर/फर्मवेयर (ईएल3)।<ref name="armv8-a">{{cite manual|url=https://developer.arm.com/documentation/ddi0487/latest|title=Arm Architecture Reference Manual Armv8, for A-profile architecture|publisher=[[Arm Ltd.]]}}</ref>{{rp|D1{{hyp}}2454}} और AArch32.<ref name="armv8-a" />{{rp|G1{{hyp}}6013}}
Line 23: Line 22:
कुछ प्रणालियों में रिंग सुरक्षा को [[प्रोसेसर मोड]] (मास्टर/कर्नेल/विशेषाधिकार/#सुपरवाइज़र-मोड बनाम दास/अनविशेष/उपयोगकर्ता मोड) के साथ जोड़ा जा सकता है। दोनों का समर्थन करने वाले हार्डवेयर पर चलने वाले ऑपरेटिंग सिस्टम सुरक्षा के दोनों रूपों या केवल एक का उपयोग कर सकते हैं।
कुछ प्रणालियों में रिंग सुरक्षा को [[प्रोसेसर मोड]] (मास्टर/कर्नेल/विशेषाधिकार/#सुपरवाइज़र-मोड बनाम दास/अनविशेष/उपयोगकर्ता मोड) के साथ जोड़ा जा सकता है। दोनों का समर्थन करने वाले हार्डवेयर पर चलने वाले ऑपरेटिंग सिस्टम सुरक्षा के दोनों रूपों या केवल एक का उपयोग कर सकते हैं।


रिंग आर्किटेक्चर के प्रभावी उपयोग के लिए हार्डवेयर और ऑपरेटिंग सिस्टम के बीच घनिष्ठ सहयोग की आवश्यकता होती है{{why|date=November 2015}}. कई हार्डवेयर प्लेटफॉर्म पर काम करने के लिए डिज़ाइन किए गए ऑपरेटिंग सिस्टम रिंग्स का केवल सीमित उपयोग कर सकते हैं यदि वे हर समर्थित प्लेटफॉर्म पर मौजूद नहीं हैं। अक्सर सुरक्षा मॉडल को कर्नेल और उपयोगकर्ता के लिए सरलीकृत किया जाता है, भले ही हार्डवेयर रिंगों के माध्यम से बेहतर ग्रैन्युलैरिटी प्रदान करता हो।
रिंग आर्किटेक्चर के प्रभावी उपयोग के लिए हार्डवेयर और ऑपरेटिंग सिस्टम के मध्य घनिष्ठ सहयोग की आवश्यकता होती है{{why|date=November 2015}}. कई हार्डवेयर प्लेटफॉर्म पर काम करने के लिए डिज़ाइन किए गए ऑपरेटिंग सिस्टम रिंग्स का केवल सीमित उपयोग कर सकते हैं यदि वे हर समर्थित प्लेटफॉर्म पर मौजूद नहीं हैं। अक्सर सुरक्षा मॉडल को कर्नेल और उपयोगकर्ता के लिए सरलीकृत किया जाता है, भले ही हार्डवेयर रिंगों के माध्यम से बेहतर ग्रैन्युलैरिटी प्रदान करता हो।


== मोड ==
== मोड ==
Line 29: Line 28:


==={{Anchor|SUPERVISOR-MODE}}पर्यवेक्षक मोड ===
==={{Anchor|SUPERVISOR-MODE}}पर्यवेक्षक मोड ===
कंप्यूटर शब्दों में, पर्यवेक्षक मोड एक हार्डवेयर-मध्यस्थ ध्वज है जिसे सिस्टम-स्तरीय सॉफ़्टवेयर में चल रहे कोड द्वारा बदला जा सकता है। सिस्टम-लेवल टास्क या थ्रेड्स हो सकते हैं{{efn|E.g., In IBM [[OS/360]] through [[z/OS]], some system tasks run in problem state key 0.}} के चलने के दौरान यह ध्वज सेट होता है, जबकि उपयोगकर्ता-स्तर के अनुप्रयोग नहीं होंगे। यह ध्वज निर्धारित करता है कि मशीन कोड संचालन को निष्पादित करना संभव होगा जैसे विभिन्न डिस्क्रिप्टर टेबल के लिए रजिस्टरों को संशोधित करना, या इंटरप्ट्स को अक्षम करने जैसे संचालन करना। अधिक शक्ति के साथ काम करने के लिए दो अलग-अलग मोड होने का विचार अधिक जिम्मेदारी से आता है{{snd}} पर्यवेक्षक मोड में एक प्रोग्राम कभी विफल नहीं होने पर भरोसा किया जाता है, क्योंकि विफलता के कारण संपूर्ण कंप्यूटर सिस्टम क्रैश हो सकता है।
कंप्यूटर शब्दों में, पर्यवेक्षक मोड हार्डवेयर-मध्यस्थ ध्वज है जिसे सिस्टम-स्तरीय सॉफ़्टवेयर में चल रहे कोड द्वारा बदला जा सकता है। सिस्टम-लेवल टास्क या थ्रेड्स हो सकते हैं{{efn|E.g., In IBM [[OS/360]] through [[z/OS]], some system tasks run in problem state key 0.}} के चलने के दौरान यह ध्वज सेट होता है, जबकि उपयोगकर्ता-स्तर के अनुप्रयोग नहीं होंगे। यह ध्वज निर्धारित करता है कि मशीन कोड संचालन को निष्पादित करना संभव होगा जैसे विभिन्न डिस्क्रिप्टर टेबल के लिए रजिस्टरों को संशोधित करना, या इंटरप्ट्स को अक्षम करने जैसे संचालन करना। अधिक शक्ति के साथ काम करने के लिए दो अलग-अलग मोड होने का विचार अधिक जिम्मेदारी से आता है{{snd}} पर्यवेक्षक मोड में प्रोग्राम कभी विफल नहीं होने पर भरोसा किया जाता है, क्योंकि विफलता के कारण संपूर्ण कंप्यूटर सिस्टम क्रैश हो सकता है।


पर्यवेक्षक मोड कुछ प्रोसेसरों पर एक निष्पादन मोड है जो विशेषाधिकार प्राप्त निर्देशों सहित सभी निर्देशों के निष्पादन को सक्षम बनाता है। यह स्मृति प्रबंधन हार्डवेयर और अन्य बाह्य उपकरणों के लिए एक अलग पता स्थान तक पहुंच प्रदान कर सकता है। यह वह मोड है जिसमें ऑपरेटिंग सिस्टम आमतौर पर चलता है।<ref>{{cite web|website=[[Free On-line Dictionary of Computing|FOLDOC]]|url=https://foldoc.org/Supervisor+Mode|title=पर्यवेक्षक मोड|date=1995-02-15}}</ref>
पर्यवेक्षक मोड कुछ प्रोसेसरों पर निष्पादन मोड है जो विशेषाधिकार प्राप्त निर्देशों सहित सभी निर्देशों के निष्पादन को सक्षम बनाता है। यह स्मृति प्रबंधन हार्डवेयर और अन्य बाह्य उपकरणों के लिए अलग पता स्थान तक पहुंच प्रदान कर सकता है। यह वह मोड है जिसमें ऑपरेटिंग सिस्टम सामान्यतः चलता है।<ref>{{cite web|website=[[Free On-line Dictionary of Computing|FOLDOC]]|url=https://foldoc.org/Supervisor+Mode|title=पर्यवेक्षक मोड|date=1995-02-15}}</ref>
एक अखंड कर्नेल ([[ऑपरेटिंग सिस्टम]]) में, ऑपरेटिंग सिस्टम पर्यवेक्षक मोड में चलता है और एप्लिकेशन उपयोगकर्ता मोड में चलता है। अन्य प्रकार [[कर्नेल (ऑपरेटिंग सिस्टम)]], जैसे [[ exokernel ]] या माइक्रोकर्नेल वाले, आवश्यक रूप से इस व्यवहार को साझा नहीं करते हैं।
 
अखंड कर्नेल ([[ऑपरेटिंग सिस्टम]]) में, ऑपरेटिंग सिस्टम पर्यवेक्षक मोड में चलता है और एप्लिकेशन उपयोगकर्ता मोड में चलता है। अन्य प्रकार [[कर्नेल (ऑपरेटिंग सिस्टम)]], जैसे [[ exokernel | exokernel]] या माइक्रोकर्नेल वाले, आवश्यक रूप से इस व्यवहार को साझा नहीं करते हैं।


पीसी की दुनिया से कुछ उदाहरण:
पीसी की दुनिया से कुछ उदाहरण:


* [[लिनक्स कर्नेल]], मैकोज़ और [[ माइक्रोसॉफ़्ट विंडोज़ ]]़ तीन ऑपरेटिंग सिस्टम हैं जो पर्यवेक्षक/उपयोगकर्ता मोड का उपयोग करते हैं। विशिष्ट कार्यों को करने के लिए, उपयोगकर्ता मोड कोड को पर्यवेक्षक मोड में या यहां तक ​​कि कर्नेल स्थान पर एक [[सिस्टम कॉल]] करना चाहिए जहां ऑपरेटिंग सिस्टम का विश्वसनीय कोड आवश्यक कार्य करेगा और निष्पादन को उपयोगकर्ता स्थान पर वापस लौटाएगा। [[लोड करने योग्य कर्नेल मॉड्यूल]] के उपयोग के माध्यम से अतिरिक्त कोड को कर्नेल स्थान में जोड़ा जा सकता है, लेकिन केवल आवश्यक अनुमति वाले उपयोगकर्ता द्वारा, क्योंकि यह कोड उपयोगकर्ता मोड के अभिगम नियंत्रण और सुरक्षा सीमाओं के अधीन नहीं है।
* [[लिनक्स कर्नेल]], मैकोज़ और [[ माइक्रोसॉफ़्ट विंडोज़ ]]़ तीन ऑपरेटिंग सिस्टम हैं जो पर्यवेक्षक/उपयोगकर्ता मोड का उपयोग करते हैं। विशिष्ट कार्यों को करने के लिए, उपयोगकर्ता मोड कोड को पर्यवेक्षक मोड में या यहां तक ​​कि कर्नेल स्थान पर [[सिस्टम कॉल]] करना चाहिए जहां ऑपरेटिंग सिस्टम का विश्वसनीय कोड आवश्यक कार्य करेगा और निष्पादन को उपयोगकर्ता स्थान पर वापस लौटाएगा। [[लोड करने योग्य कर्नेल मॉड्यूल]] के उपयोग के माध्यम से अतिरिक्त कोड को कर्नेल स्थान में जोड़ा जा सकता है, लेकिन केवल आवश्यक अनुमति वाले उपयोगकर्ता द्वारा, क्योंकि यह कोड उपयोगकर्ता मोड के अभिगम नियंत्रण और सुरक्षा सीमाओं के अधीन नहीं है।
* DOS (जब तक कोई 386 मेमोरी मैनेजर जैसे EMM386 लोड नहीं होता है), साथ ही साथ अन्य सरल ऑपरेटिंग सिस्टम और कई एम्बेडेड डिवाइस सुपरवाइज़र मोड में स्थायी रूप से चलते हैं, जिसका अर्थ है कि ड्राइवरों को सीधे उपयोगकर्ता प्रोग्राम के रूप में लिखा जा सकता है।
* DOS (जब तक कोई 386 मेमोरी मैनेजर जैसे EMM386 लोड नहीं होता है), साथ ही साथ अन्य सरल ऑपरेटिंग सिस्टम और कई एम्बेडेड डिवाइस सुपरवाइज़र मोड में स्थायी रूप से चलते हैं, जिसका अर्थ है कि ड्राइवरों को सीधे उपयोगकर्ता प्रोग्राम के रूप में लिखा जा सकता है।


Line 43: Line 43:
अधिकांश मौजूदा प्रणालियों में, उपयोगकर्ता मोड से कर्नेल मोड में स्विच करने से प्रदर्शन में उच्च लागत आती है। इसे बुनियादी अनुरोध पर मापा गया है <code>[[Process identifier|getpid]]</code>, अधिकांश मशीनों पर 1000-1500 चक्र खर्च करने के लिए। इनमें से लगभग 100 वास्तविक स्विच के लिए हैं (70 उपयोगकर्ता से कर्नेल स्थान तक, और 40 पीछे), शेष कर्नेल ओवरहेड है।<ref name="Liedtke95">{{cite conference |author=Jochen Liedtke |author-link=Jochen Liedtke |url=https://os.itec.kit.edu/65_1029.php |title=On µ-Kernel Construction |book-title=Proc. 15th ACM Symposium on Operating System Principles (SOSP) |date=December 1995}}</ref><ref name="Ousterhout90">{{cite conference |last=Ousterhout |first=J. K. |author-link=John Ousterhout |date=1990 |title=Why aren't operating systems getting faster as fast as hardware? |conference=Usenix Summer Conference A|location=naheim, CA |pages=247–256}}</ref> [[लोल मसरूरनल]] में, इस ओवरहेड को कम करने से कुल लागत लगभग 150 चक्र तक कम हो गई।<ref name="Liedtke95"/>
अधिकांश मौजूदा प्रणालियों में, उपयोगकर्ता मोड से कर्नेल मोड में स्विच करने से प्रदर्शन में उच्च लागत आती है। इसे बुनियादी अनुरोध पर मापा गया है <code>[[Process identifier|getpid]]</code>, अधिकांश मशीनों पर 1000-1500 चक्र खर्च करने के लिए। इनमें से लगभग 100 वास्तविक स्विच के लिए हैं (70 उपयोगकर्ता से कर्नेल स्थान तक, और 40 पीछे), शेष कर्नेल ओवरहेड है।<ref name="Liedtke95">{{cite conference |author=Jochen Liedtke |author-link=Jochen Liedtke |url=https://os.itec.kit.edu/65_1029.php |title=On µ-Kernel Construction |book-title=Proc. 15th ACM Symposium on Operating System Principles (SOSP) |date=December 1995}}</ref><ref name="Ousterhout90">{{cite conference |last=Ousterhout |first=J. K. |author-link=John Ousterhout |date=1990 |title=Why aren't operating systems getting faster as fast as hardware? |conference=Usenix Summer Conference A|location=naheim, CA |pages=247–256}}</ref> [[लोल मसरूरनल]] में, इस ओवरहेड को कम करने से कुल लागत लगभग 150 चक्र तक कम हो गई।<ref name="Liedtke95"/>


[[मौरिस विल्क्स]] ने लिखा:<ref>{{cite journal|author=Maurice Wilkes|author-link=Maurice Wilkes|doi=10.1145/198153.198154|title=बदलती दुनिया में ऑपरेटिंग सिस्टम|journal=ACM SIGOPS Operating Systems Review|volume=28|issue=2|date=April 1994|pages=9–21|s2cid=254134|issn=0163-5980|doi-access=free}}</ref> <blockquote>... अंततः यह स्पष्ट हो गया कि रिंग प्रदान करने वाली पदानुक्रमित सुरक्षा सिस्टम प्रोग्रामर की आवश्यकताओं से निकटता से मेल नहीं खाती थी और केवल दो मोड होने की सरल प्रणाली पर बहुत कम या कोई सुधार नहीं देती थी। रिंग्स ऑफ प्रोटेक्शन ने हार्डवेयर में कुशल कार्यान्वयन के लिए खुद को उधार दिया, लेकिन उनके लिए कहने के लिए कुछ और नहीं था। [...] ठीक-ठाक सुरक्षा का आकर्षण तब भी बना रहा, जब यह देखा गया कि सुरक्षा के छल्ले ने जवाब नहीं दिया ... यह फिर से एक अंधी गली साबित हुई... </blockquote>
[[मौरिस विल्क्स]] ने लिखा:<ref>{{cite journal|author=Maurice Wilkes|author-link=Maurice Wilkes|doi=10.1145/198153.198154|title=बदलती दुनिया में ऑपरेटिंग सिस्टम|journal=ACM SIGOPS Operating Systems Review|volume=28|issue=2|date=April 1994|pages=9–21|s2cid=254134|issn=0163-5980|doi-access=free}}</ref> <blockquote>... अंततः यह स्पष्ट हो गया कि रिंग प्रदान करने वाली पदानुक्रमित सुरक्षा सिस्टम प्रोग्रामर की आवश्यकताओं से निकटता से मेल नहीं खाती थी और केवल दो मोड होने की सरल प्रणाली पर बहुत कम या कोई सुधार नहीं देती थी। रिंग्स ऑफ प्रोटेक्शन ने हार्डवेयर में कुशल कार्यान्वयन के लिए खुद को उधार दिया, लेकिन उनके लिए कहने के लिए कुछ और नहीं था। [...] ठीक-ठाक सुरक्षा का आकर्षण तब भी बना रहा, जब यह देखा गया कि सुरक्षा के छल्ले ने जवाब नहीं दिया ... यह फिर से अंधी गली साबित हुई... </blockquote>


प्रदर्शन और नियतत्ववाद हासिल करने के लिए, कुछ प्रणालियां ऐसे कार्य करती हैं जिन्हें कर्नेल मोड में डिवाइस ड्राइवर के बजाय एप्लिकेशन लॉजिक के रूप में देखा जा सकता है; सुरक्षा अनुप्रयोग ([[ अभिगम नियंत्रण ]], [[फ़ायरवॉल (कंप्यूटिंग)]], आदि) और ऑपरेटिंग सिस्टम मॉनिटर को उदाहरण के रूप में उद्धृत किया गया है। कम से कम एक एम्बेडेड डेटाबेस प्रबंधन प्रणाली, EXtremeDB#कर्नेल मोड परिनियोजन, विशेष रूप से कर्नेल मोड परिनियोजन के लिए विकसित किया गया है, कर्नेल-आधारित एप्लिकेशन फ़ंक्शंस के लिए एक स्थानीय डेटाबेस प्रदान करने के लिए, और [[संदर्भ स्विच]] को समाप्त करने के लिए जो अन्यथा तब होता जब कर्नेल फ़ंक्शंस इंटरैक्ट करते हैं उपयोगकर्ता मोड में चल रहा एक डेटाबेस सिस्टम।<ref>{{cite magazine |last1=Gorine |first1=Andrei |last2=Krivolapov |first2=Alexander |url=http://www.ddj.com/database/207401567 |title=Kernel Mode Databases: A DBMS Technology For High-Performance Applications |magazine=Dr. Dobb's Journal |date=May 2008}}</ref>
प्रदर्शन और नियतत्ववाद हासिल करने के लिए, कुछ प्रणालियां ऐसे कार्य करती हैं जिन्हें कर्नेल मोड में डिवाइस ड्राइवर के बजाय एप्लिकेशन लॉजिक के रूप में देखा जा सकता है; सुरक्षा अनुप्रयोग ([[ अभिगम नियंत्रण ]], [[फ़ायरवॉल (कंप्यूटिंग)]], आदि) और ऑपरेटिंग सिस्टम मॉनिटर को उदाहरण के रूप में उद्धृत किया गया है। कम से कम एक एम्बेडेड डेटाबेस प्रबंधन प्रणाली, EXtremeDB#कर्नेल मोड परिनियोजन, विशेष रूप से कर्नेल मोड परिनियोजन के लिए विकसित किया गया है, कर्नेल-आधारित एप्लिकेशन फ़ंक्शंस के लिए स्थानीय डेटाबेस प्रदान करने के लिए, और [[संदर्भ स्विच]] को समाप्त करने के लिए जो अन्यथा तब होता जब कर्नेल फ़ंक्शंस इंटरैक्ट करते हैं उपयोगकर्ता मोड में चल रहा डेटाबेस सिस्टम।<ref>{{cite magazine |last1=Gorine |first1=Andrei |last2=Krivolapov |first2=Alexander |url=http://www.ddj.com/database/207401567 |title=Kernel Mode Databases: A DBMS Technology For High-Performance Applications |magazine=Dr. Dobb's Journal |date=May 2008}}</ref>
फंक्शंस को कभी-कभी दूसरी दिशा में रिंगों में भी ले जाया जाता है। उदाहरण के लिए, लिनक्स कर्नेल, एक [[ vDSO ]] अनुभाग को प्रक्रियाओं में इंजेक्ट करता है जिसमें ऐसे कार्य होते हैं जिन्हें सामान्य रूप से सिस्टम कॉल की आवश्यकता होती है, अर्थात रिंग ट्रांज़िशन। सिस्कल करने के बजाय ये कार्य कर्नेल द्वारा प्रदान किए गए स्थिर डेटा का उपयोग करते हैं। यह रिंग ट्रांज़िशन की आवश्यकता से बचा जाता है और इसलिए यह सिस्कल की तुलना में अधिक हल्का है। समारोह gettimeofday इस तरह प्रदान किया जा सकता है।
 
फंक्शंस को कभी-कभी दूसरी दिशा में रिंगों में भी ले जाया जाता है। उदाहरण के लिए, लिनक्स कर्नेल, [[ vDSO | vDSO]] अनुभाग को प्रक्रियाओं में इंजेक्ट करता है जिसमें ऐसे कार्य होते हैं जिन्हें सामान्य रूप से सिस्टम कॉल की आवश्यकता होती है, अर्थात रिंग ट्रांज़िशन। सिस्कल करने के बजाय ये कार्य कर्नेल द्वारा प्रदान किए गए स्थिर डेटा का उपयोग करते हैं। यह रिंग ट्रांज़िशन की आवश्यकता से बचा जाता है और इसलिए यह सिस्कल की तुलना में अधिक हल्का है। समारोह gettimeofday इस तरह प्रदान किया जा सकता है।


=== हाइपरवाइजर मोड ===
=== हाइपरवाइजर मोड ===
इंटेल और एएमडी के हालिया सीपीयू रिंग 0 हार्डवेयर एक्सेस को नियंत्रित करने के लिए हाइपरविजर के लिए x86 वर्चुअलाइजेशन निर्देश प्रदान करते हैं। हालांकि वे पारस्परिक रूप से असंगत हैं, Intel VT-x (कोडनेम वेंडरपूल) और X86 वर्चुअलाइजेशन#AMD वर्चुअलाइजेशन (AMD-V)|AMD-V (कोडनेम Pacifica) दोनों एक नया रिंग बनाते हैं -1 ताकि अतिथि ऑपरेटिंग सिस्टम रिंग 0 चला सके संचालन मूल रूप से अन्य मेहमानों या मेजबान ओएस को प्रभावित किए बिना।
इंटेल और एएमडी के हालिया सीपीयू रिंग 0 हार्डवेयर एक्सेस को नियंत्रित करने के लिए हाइपरविजर के लिए x86 वर्चुअलाइजेशन निर्देश प्रदान करते हैं। हालांकि वे पारस्परिक रूप से असंगत हैं, Intel VT-x (कोडनेम वेंडरपूल) और X86 वर्चुअलाइजेशन#AMD वर्चुअलाइजेशन (AMD-V)|AMD-V (कोडनेम Pacifica) दोनों नया रिंग बनाते हैं -1 ताकि अतिथि ऑपरेटिंग सिस्टम रिंग 0 चला सके संचालन मूल रूप से अन्य मेहमानों या मेजबान ओएस को प्रभावित किए बिना।
<ब्लॉककोट>
<ब्लॉककोट>
वर्चुअलाइजेशन की सहायता के लिए, वीटी-एक्स और [[ सुरक्षित वर्चुअल मशीन ]] रिंग 0 के नीचे एक नया विशेषाधिकार स्तर डालते हैं। दोनों नौ नए मशीन कोड निर्देश जोड़ते हैं जो केवल रिंग −1 पर काम करते हैं, जिसका उद्देश्य हाइपरविजर द्वारा उपयोग किया जाना है।<ref>{{cite web | last=Dornan | first=Andy | date=1 November 2005 | url = http://www.informationweek.com/intel-vt-vs-amd-pacifica/172302134 | archive-url=https://web.archive.org/web/20130530214041/http://www.informationweek.com/intel-vt-vs-amd-pacifica/172302134 | title=इंटेल वीटी बनाम एएमडी पैसिफिक| publisher=CMP | access-date=11 November 2012 | archive-date = 2013-05-30 |url-status=dead}}</ref>
वर्चुअलाइजेशन की सहायता के लिए, वीटी-एक्स और [[ सुरक्षित वर्चुअल मशीन ]] रिंग 0 के नीचे नया विशेषाधिकार स्तर डालते हैं। दोनों नौ नए मशीन कोड निर्देश जोड़ते हैं जो केवल रिंग −1 पर काम करते हैं, जिसका उद्देश्य हाइपरविजर द्वारा उपयोग किया जाना है।<ref>{{cite web | last=Dornan | first=Andy | date=1 November 2005 | url = http://www.informationweek.com/intel-vt-vs-amd-pacifica/172302134 | archive-url=https://web.archive.org/web/20130530214041/http://www.informationweek.com/intel-vt-vs-amd-pacifica/172302134 | title=इंटेल वीटी बनाम एएमडी पैसिफिक| publisher=CMP | access-date=11 November 2012 | archive-date = 2013-05-30 |url-status=dead}}</ref>
</ब्लॉककोट>
</ब्लॉककोट>


Line 57: Line 58:
{{main | Privilege (computing) }}
{{main | Privilege (computing) }}


X86 निर्देश सेट में एक विशेषाधिकार स्तर प्रोसेसर पर वर्तमान में चल रहे प्रोग्राम की पहुंच को स्मृति क्षेत्रों, I/O बंदरगाहों और विशेष निर्देशों जैसे संसाधनों तक नियंत्रित करता है। 0 से लेकर 4 विशेषाधिकार स्तर हैं जो सबसे अधिक विशेषाधिकार प्राप्त हैं, 3 जो सबसे कम विशेषाधिकार प्राप्त हैं। अधिकांश आधुनिक ऑपरेटिंग सिस्टम कर्नेल/कार्यकारी के लिए स्तर 0 का उपयोग करते हैं, और एप्लिकेशन प्रोग्राम के लिए स्तर 3 का उपयोग करते हैं। स्तर n के लिए उपलब्ध कोई भी संसाधन 0 से n स्तरों के लिए भी उपलब्ध है, इसलिए विशेषाधिकार स्तर रिंग हैं। जब एक कम विशेषाधिकार प्राप्त प्रक्रिया एक उच्च विशेषाधिकार प्राप्त प्रक्रिया तक पहुँचने की कोशिश करती है, तो OS को एक सामान्य सुरक्षा दोष अपवाद की सूचना दी जाती है।
X86 निर्देश सेट में विशेषाधिकार स्तर प्रोसेसर पर वर्तमान में चल रहे प्रोग्राम की पहुंच को स्मृति क्षेत्रों, I/O बंदरगाहों और विशेष निर्देशों जैसे संसाधनों तक नियंत्रित करता है। 0 से लेकर 4 विशेषाधिकार स्तर हैं जो सबसे अधिक विशेषाधिकार प्राप्त हैं, 3 जो सबसे कम विशेषाधिकार प्राप्त हैं। अधिकांश आधुनिक ऑपरेटिंग सिस्टम कर्नेल/कार्यकारी के लिए स्तर 0 का उपयोग करते हैं, और एप्लिकेशन प्रोग्राम के लिए स्तर 3 का उपयोग करते हैं। स्तर n के लिए उपलब्ध कोई भी संसाधन 0 से n स्तरों के लिए भी उपलब्ध है, इसलिए विशेषाधिकार स्तर रिंग हैं। जब कम विशेषाधिकार प्राप्त प्रक्रिया उच्च विशेषाधिकार प्राप्त प्रक्रिया तक पहुँचने की कोशिश करती है, तो OS को सामान्य सुरक्षा दोष अपवाद की सूचना दी जाती है।


सभी चार विशेषाधिकार स्तरों का उपयोग करना आवश्यक नहीं है। Microsoft Windows, macOS, [[Linux]], [[iOS]] और [[Android (ऑपरेटिंग सिस्टम)]] सहित व्यापक बाजार हिस्सेदारी के साथ वर्तमान ऑपरेटिंग सिस्टम ज्यादातर पर्यवेक्षक या उपयोगकर्ता (U/S बिट) के रूप में विशेषाधिकार स्तर निर्दिष्ट करने के लिए केवल एक बिट के साथ एक [[पेजिंग]] तंत्र का उपयोग करते हैं। Windows NT दो-स्तरीय सिस्टम का उपयोग करता है।<ref>{{cite book |last1=Russinovich |first1=Mark E. |first2=David A. |last2=Solomon |date=2005 |title=माइक्रोसॉफ्ट विंडोज आंतरिक|edition=4th |publisher=Microsoft Press |page=16 |isbn=978-0-7356-1917-3}}</ref>
सभी चार विशेषाधिकार स्तरों का उपयोग करना आवश्यक नहीं है। Microsoft Windows, macOS, [[Linux]], [[iOS]] और [[Android (ऑपरेटिंग सिस्टम)]] सहित व्यापक बाजार हिस्सेदारी के साथ वर्तमान ऑपरेटिंग सिस्टम ज्यादातर पर्यवेक्षक या उपयोगकर्ता (U/S बिट) के रूप में विशेषाधिकार स्तर निर्दिष्ट करने के लिए केवल एक बिट के साथ [[पेजिंग]] तंत्र का उपयोग करते हैं। Windows NT दो-स्तरीय सिस्टम का उपयोग करता है।<ref>{{cite book |last1=Russinovich |first1=Mark E. |first2=David A. |last2=Solomon |date=2005 |title=माइक्रोसॉफ्ट विंडोज आंतरिक|edition=4th |publisher=Microsoft Press |page=16 |isbn=978-0-7356-1917-3}}</ref>
8086 में वास्तविक मोड प्रोग्राम 0 स्तर (उच्चतम विशेषाधिकार स्तर) पर निष्पादित होते हैं जबकि 8086 में वर्चुअल मोड 3 स्तर पर सभी प्रोग्राम निष्पादित करता है।<ref>{{cite book |author=Sunil Mathur |title=Microprocessor 8086: Architecture, Programming and Interfacing |edition=Eastern Economy |publisher=PHI Learning}}</ref>
8086 में वास्तविक मोड प्रोग्राम 0 स्तर (उच्चतम विशेषाधिकार स्तर) पर निष्पादित होते हैं जबकि 8086 में वर्चुअल मोड 3 स्तर पर सभी प्रोग्राम निष्पादित करता है।<ref>{{cite book |author=Sunil Mathur |title=Microprocessor 8086: Architecture, Programming and Interfacing |edition=Eastern Economy |publisher=PHI Learning}}</ref>
x86 ISA परिवार द्वारा समर्थित एकाधिक विशेषाधिकार स्तरों के संभावित भावी उपयोगों में कंटेनर ([[ आभासी बनाएं ]]़ेशन) और [[ आभासी मशीन ]] शामिल हैं। एक होस्ट ऑपरेटिंग सिस्टम कर्नेल पूर्ण विशेषाधिकार एक्सेस ([[कर्नेल मोड]]) के साथ निर्देशों का उपयोग कर सकता है, जबकि वर्चुअल मशीन या कंटेनर में अतिथि OS पर चलने वाले एप्लिकेशन उपयोगकर्ता मोड में निम्नतम स्तर के विशेषाधिकारों का उपयोग कर सकते हैं। वर्चुअल मशीन और अतिथि OS कर्नेल स्वयं अतिथि ऑपरेटिंग सिस्टम के दृष्टिकोण से सिस्टम कॉल जैसे कर्नेल-मोड संचालन को लागू करने और वर्चुअलाइज़ करने के लिए एक मध्यवर्ती स्तर के निर्देश विशेषाधिकार का उपयोग कर सकते हैं।<ref name="OSPP">{{cite book |last1=Anderson |first1=Thomas |last2=Dahlin |first2=Michael |title=Operating Systems: Principles and Practice |date=21 August 2014 |publisher=Recursive Books |chapter=2.2 |isbn=978-0985673529 |edition=2nd }}</ref>
x86 ISA परिवार द्वारा समर्थित एकाधिक विशेषाधिकार स्तरों के संभावित भावी उपयोगों में कंटेनर ([[ आभासी बनाएं ]]़ेशन) और [[ आभासी मशीन ]] शामिल हैं। होस्ट ऑपरेटिंग सिस्टम कर्नेल पूर्ण विशेषाधिकार एक्सेस ([[कर्नेल मोड]]) के साथ निर्देशों का उपयोग कर सकता है, जबकि वर्चुअल मशीन या कंटेनर में अतिथि OS पर चलने वाले एप्लिकेशन उपयोगकर्ता मोड में निम्नतम स्तर के विशेषा