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

From Vigyanwiki
No edit summary
No edit summary
 
(21 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{short description|Layer of protection in computer systems}}
{{short description|Layer of protection in computer systems}}
{{redirect-several|रिंग |रिंग 0}}
{{Use dmy dates|date=January 2021}}
{{Use dmy dates|date=January 2021}}
[[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|जीई 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> चूँकि, अधिकांश सामान्य-प्रयोजन प्रणालियाँ मात्र दो रिंगों का उपयोग करती हैं, भले ही वे जिस हार्डवेयर पर रन करते हैं वह उससे अधिक सीपीयू मोड प्रदान करता हो। उदाहरण के लिए, विंडोज 7 और विंडोज सर्वर 2008 (और उनके पूर्ववर्ती) मात्र दो रिंगों का उपयोग करते हैं, जिसमें रिंग 0 कर्नेल मोड और रिंग 3 [[ उपयोक्ता स्थान | यूजर मोड]] के अनुरूप है,<ref name="russinovich"/>क्योंकि विंडोज के प्राचीन संस्करण ऐसे प्रोसेसर पर रन करते थे जो मात्र दो सुरक्षा स्तरों का समर्थन करते थे।<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 ]] कर्नेल, कार्यकारी, पर्यवेक्षक और उपयोगकर्ता नामक चार मोड का उपयोग करता है (घटते विशेषाधिकारों के क्रम में)।


इस डिज़ाइन संरचना में नए सिरे से रुचि [[ एक्सईएन ]] [[सूत्र]] सॉफ़्टवेयर के प्रसार के साथ आई, [[ अखंड कर्नेल ]] बनाम [[माइक्रोकर्नेल]] | माइक्रो-कर्नेल (विशेष रूप से [[यूज़नेट]] न्यूज़ग्रुप और [[इंटरनेट मंच]] में), माइक्रोसॉफ्ट [[की]] रिंग -1 डिज़ाइन संरचना के हिस्से के रूप में टेनेनबाम-टोरवाल्ड्स बहस उनकी [[नेक्स्ट-जेनरेशन सिक्योर कंप्यूटिंग बेस]] पहल, और [[इंटेल वीटी-एक्स]] (पूर्व में वेंडरपूल) जैसे [[x86 वर्चुअलाइजेशन]] पर आधारित हाइपरविजर।
विभिन्न आधुनिक सीपीयू आर्किटेक्चर (लोकप्रिय [[इंटेल]] x86 आर्किटेक्चर सहित) में विभिन्न प्रकार की रिंग सुरक्षा सम्मिलित है, चूँकि यूनिक्स की भाँति [[विंडोज एनटी]] ऑपरेटिंग सिस्टम इस सुविधा का पूर्ण रूप से उपयोग नहीं करता है। ओएस/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 का उपयोग करता है। Dओएस के अंतर्गत, कर्नेल, ड्राइवर और एप्लिकेशन सामान्यतः रिंग 3 पर रन करते हैं (चूँकि, यह उस स्तिथि के लिए विशिष्ट है जहां संरक्षित-मोड ड्राइवर या डॉस एक्सटेंडर का वास्तविक-मोड ओएस के रूप में उपयोग किया जाता है, जिससे सिस्टम प्रभावी रूप से बिना किसी सुरक्षा के कार्य करता है।), जबकि 386 मेमोरी मैनेजर जैसे [[EMM386|ईएमएम 386]] रिंग 0 पर रन करते हैं। इसके अतिरिक्त, [[DR-DOS|डीआर-डॉस]] ईएमएम 386 3.xx वैकल्पिक रूप से रिंग 1 पर कुछ मॉड्यूल (जैसे [[डॉस संरक्षित मोड सेवाएं]]) संचालित कर सकते हैं। [[ ओपन VMS | ओपन VMS]] कर्नेल, कार्यकारी, सुपरवाइजर और यूजर नामक चार मोड का उपयोग करता है (अवरोही प्रिविलेजों के क्रम में)


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


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


[[ एआरएम वास्तुकला ]] संस्करण 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}}
हार्डवेयर उन विधियों को गंभीर रूप से प्रतिबंधित करता है जिसमें नियंत्रण एक रिंग से दूसरे रिंग में पारित किया जा सकता है और मेमोरी एक्सेस के प्रकारों पर भी प्रतिबंध लगाता है। उदाहरण के रूप में x86 का उपयोग करते हैं जो विशेष  गेट संरचना है जिसे कॉल निर्देश द्वारा संदर्भित किया जाता है जो निचले-स्तर के रिंगों में पूर्वनिर्धारित प्रवेश बिंदुओं की ओर नियंत्रण को सुरक्षित रूप से स्थानांतरित करता है यह रिंग आर्किटेक्चर का उपयोग करने वाले विभिन्न ऑपरेटिंग सिस्टम में [[पर्यवेक्षक कॉल|सुपरवाइजर कॉल]] के रूप में कार्य करता है। हार्डवेयर प्रतिबंध सुरक्षा के आकस्मिक या विद्वेषी उल्लंघनों के अवसरों को सीमित करने के लिए डिज़ाइन किए गए हैं। इसके अतिरिक्त, अधिक प्रिविलेज प्राप्त रिंग को विशेष क्षमताएं प्रदान की जा सकती हैं (जैसे वास्तविक मेमोरी एड्रेसिंग जो वर्चुअल मेमोरी हार्डवेयर को बायपास करती है)।


कुछ प्रणालियों में रिंग सुरक्षा को [[प्रोसेसर मोड]] (मास्टर/कर्नेल/विशेषाधिकार/#सुपरवाइज़र-मोड बनाम दास/अनविशेष/उपयोगकर्ता मोड) के साथ जोड़ा जा सकता है। दोनों का समर्थन करने वाले हार्डवेयर पर चलने वाले ऑपरेटिंग सिस्टम सुरक्षा के दोनों रूपों या केवल एक का उपयोग कर सकते हैं।
[[ एआरएम वास्तुकला ]] संस्करण 7 आर्किटेक्चर तीन प्रिविलेज स्तरों एप्लिकेशन (पीएल0), ऑपरेटिंग सिस्टम (पीएल1), और हाइपरविजर (पीएल2) को प्रस्तावित करता है। असामान्य रूप से, स्तर 0 (पीएल0) न्यूनतम प्रिविलेज प्राप्त स्तर है, जबकि स्तर 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}} को प्रस्तावित करता है|


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


== मोड ==
== मोड ==
{{also|Real mode|Protected mode}}
{{also|Real mode|Protected mode}}


==={{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.}} जबकि यूजर-स्तर के अनुप्रयोग में यह नहीं हो सकते हैं। यह फ़्लैग निर्धारित करता है कि मशीन कोड संचालन को निष्पादित करना संभव होगा जैसे विभिन्न डिस्क्रिप्टर टेबल के लिए रजिस्टरों को संशोधित करना या इंटरप्ट्स को अक्षम करने जैसे संचालन करना। संचालन हेतु  दो भिन्न-भिन्न मोड का विचार अधिक शक्ति और उत्तरदायित्व से आता है- सुपरवाइजर मोड में प्रोग्राम विफल न हो ऐसा विश्वास किया जाता है क्योंकि विफलता पूर्ण कंप्यूटर सिस्टम को क्रैश कर सकती है|


पर्यवेक्षक मोड कुछ प्रोसेसरों पर निष्पादन मोड है जो विशेषाधिकार प्राप्त निर्देशों सहित सभी निर्देशों के निष्पादन को सक्षम बनाता है। यह स्मृति प्रबंधन हार्डवेयर और अन्य बाह्य उपकरणों के लिए अलग पता स्थान तक पहुंच प्रदान कर सकता है। यह वह मोड है जिसमें ऑपरेटिंग सिस्टम सामान्यतः चलता है।<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 लोड नहीं होता है), साथ ही साथ अन्य सरल ऑपरेटिंग सिस्टम और कई एम्बेडेड डिवाइस सुपरवाइज़र मोड में स्थायी रूप से चलते हैं, जिसका अर्थ है कि ड्राइवरों को सीधे उपयोगकर्ता प्रोग्राम के रूप में लिखा जा सकता है।
* Dओएस (जब तक कोई 386 मेमोरी मैनेजर जैसे EMM386 लोड नहीं होता है), साथ ही साथ अन्य सरल ऑपरेटिंग सिस्टम और कई एम्बेडेड डिवाइस सुपरवाइज़र मोड में स्थायी रूप से कार्य करते हैं, जिसका अर्थ है कि ड्राइवरों को सीधे यूजर प्रोग्राम के रूप में लिखा जा सकता है।


अधिकांश प्रोसेसर में कम से कम दो अलग-अलग मोड होते हैं। X86-प्रोसेसर के चार अलग-अलग मोड हैं जो चार अलग-अलग रिंगों में विभाजित हैं। रिंग 0 में चलने वाले प्रोग्राम सिस्टम के साथ कुछ भी कर सकते हैं, और रिंग 3 में चलने वाले कोड को किसी भी समय बाकी कंप्यूटर सिस्टम को प्रभावित किए बिना विफल होने में सक्षम होना चाहिए। रिंग 1 और रिंग 2 का शायद ही कभी उपयोग किया जाता है, लेकिन इसे एक्सेस के विभिन्न स्तरों के साथ कॉन्फ़िगर किया जा सकता है।
अधिकांश प्रोसेसर में दो भिन्न-भिन्न मोड होते हैं। X86-प्रोसेसर के चार भिन्न-भिन्न मोड हैं जो चार भिन्न-भिन्न रिंगों में विभाजित हैं। रिंग 0 में कार्य करने वाले प्रोग्राम सिस्टम के साथ कुछ भी कर सकते हैं, और रिंग 3 में कार्य करने वाले कोड को किसी भी समय अन्य कंप्यूटर सिस्टम को प्रभावित किए बिना विफल होने में सक्षम होना चाहिए। रिंग 1 और रिंग 2 का कदाचित ही कभी उपयोग किया जाता है, किन्तु इसे एक्सेस के विभिन्न स्तरों के साथ कॉन्फ़िगर किया जा सकता है।


अधिकांश मौजूदा प्रणालियों में, उपयोगकर्ता मोड से कर्नेल मोड में स्विच करने से प्रदर्शन में उच्च लागत आती है। इसे बुनियादी अनुरोध पर मापा गया है <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 वास्तविक स्विच के लिए हैं, शेष कर्नेल ओवरहेड है।<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> [[लोल मसरूरनल|L3 माइक्रोकर्नेल]] में, इस ओवरहेड को कम करने से कुल व्यय लगभग 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>
प्रदर्शन और नियतत्ववाद प्राप्त करने के लिए, कुछ प्रणालियां ऐसे कार्य करती हैं जिन्हें कर्नेल मोड में डिवाइस ड्राइवर के अतिरिक्त एप्लिकेशन लॉजिक के रूप में देखा जा सकता है जिसमें सुरक्षा अनुप्रयोग ([[ अभिगम नियंत्रण | एक्सेस कण्ट्रोल]] , [[फ़ायरवॉल (कंप्यूटिंग)]], आदि) और ऑपरेटिंग सिस्टम मॉनिटर को उदाहरण के रूप में उद्धृत किया गया है। एम्बेडेड डेटाबेस प्रबंधन प्रणाली, एक्सट्रीमडीबी को विशेष रूप से कर्नेल मोड परिनियोजन के लिए कर्नेल-आधारित एप्लिकेशन फ़ंक्शंस को स्थानीय डेटाबेस प्रदान करने और [[संदर्भ स्विच]] को समाप्त करने के लिए विकसित किया गया है जो अन्यथा तब होता है जब कर्नेल फ़ंक्शन यूजर मोड में कार्य कर रहे डेटाबेस सिस्टम के साथ इंटरैक्ट करता है।<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 | vDSO]] अनुभाग को प्रक्रियाओं में इंजेक्ट करता है जिसमें ऐसे कार्य होते हैं जिन्हें सामान्य रूप से सिस्टम कॉल की आवश्यकता होती है, अर्थात रिंग ट्रांज़िशन। सिस्कल करने के बजाय ये कार्य कर्नेल द्वारा प्रदान किए गए स्थिर डेटा का उपयोग करते हैं। यह रिंग ट्रांज़िशन की आवश्यकता से बचा जाता है और इसलिए यह सिस्कल की तुलना में अधिक हल्का है। समारोह gettimeofday इस तरह प्रदान किया जा सकता है।
फंक्शंस को कभी-कभी दूसरी दिशा में रिंगों में भी ले जाया जाता है। उदाहरण के लिए, लिनक्स कर्नेल [[ vDSO | वीडीएसओ]] अनुभाग को प्रक्रियाओं में प्रवेश करता है जिसमें ऐसे कार्य होते हैं जिन्हें सामान्य रूप से सिस्टम कॉल अर्थात रिंग ट्रांज़िशन की आवश्यकता होती है। सिस्कल करने के अतिरिक्त ये कार्य कर्नेल द्वारा प्रदान किए गए स्थिर डेटा का उपयोग करते हैं। यह रिंग ट्रांज़िशन की आवश्यकता से बचाता है और इसलिए यह सिस्कल से अधिक सरल है। फंक्शन gettimeofday इस प्रकार प्रदान किया जा सकता है।


=== हाइपरवाइजर मोड ===
=== हाइपरवाइजर मोड ===
इंटेल और एएमडी के हालिया सीपीयू रिंग 0 हार्डवेयर एक्सेस को नियंत्रित करने के लिए हाइपरविजर के लिए x86 वर्चुअलाइजेशन निर्देश प्रदान करते हैं। हालांकि वे पारस्परिक रूप से असंगत हैं, Intel VT-x (कोडनेम वेंडरपूल) और X86 वर्चुअलाइजेशन#AMD वर्चुअलाइजेशन (AMD-V)|AMD-V (कोडनेम Pacifica) दोनों नया रिंग बनाते हैं -1 ताकि अतिथि ऑपरेटिंग सिस्टम रिंग 0 चला सके संचालन मूल रूप से अन्य मेहमानों या मेजबान ओएस को प्रभावित किए बिना।
इंटेल और एएमडी के सीपीयू रिंग 0 हार्डवेयर एक्सेस को नियंत्रित करने के लिए हाइपरविजर के लिए x86 वर्चुअलाइजेशन निर्देश प्रदान करते हैं। चूँकि वे पारस्परिक रूप से असंगत हैं, इंटेल वीटी-एक्स (कोडनेम वेंडरपूल) और एएमडी-वी (कोडनेम पसिफ़िका) दोनों नया रिंग-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 पर काम करते हैं, जिसका उद्देश्य हाइपरविजर द्वारा उपयोग किया जाना है।
</ब्लॉककोट>
 
== प्रिविलेज स्तर ==
{{main |विशेषाधिकार (कम्प्यूटिंग)}}
 
X86 निर्देश सेट में प्रिविलेज स्तर, वर्तमान में प्रोसेसर पर चल रहे प्रोग्राम के एक्सेस को मेमोरी क्षेत्रों, I/O पोर्ट और विशेष निर्देश जैसे संसाधनों तक नियंत्रित करता है। 4 प्रिविलेज स्तर होते हैं| अधिकांश आधुनिक ऑपरेटिंग सिस्टम कर्नेल के लिए स्तर 0 का उपयोग करते हैं और एप्लिकेशन प्रोग्राम के लिए स्तर 3 का उपयोग करते हैं। स्तर n के लिए उपलब्ध कोई भी संसाधन 0 से n स्तरों के लिए भी उपलब्ध होता है, इसलिए प्रिविलेज स्तर, रिंग होते हैं। जब कम प्रिविलेज प्राप्त प्रक्रिया उच्च प्रिविलेज प्राप्त प्रक्रिया पर एक्सेस का प्रयास करती है, तो ओएस को सामान्य सुरक्षा दोष अपवाद की सूचना दी जाती है।


== विशेषाधिकार स्तर ==
सभी प्रिविलेज स्तरों का उपयोग करना आवश्यक नहीं है। माइक्रोसॉफ्ट विंडोज, मैकओएस, [[Linux|लिनक्स]], [[iOS|आईओएस]] और [[Android (ऑपरेटिंग सिस्टम)|एंड्रॉयड (ऑपरेटिंग सिस्टम)]] सहित वर्तमान ऑपरेटिंग सिस्टम अत्यधिक प्रिविलेज स्तर को सुपरवाइजर या यूजर (U/S बिट) के रूप में निर्दिष्ट करने के लिए मात्रएक बिट के साथ [[पेजिंग]] तंत्र का उपयोग करते हैं। विंडोज एनटी दो-स्तरीय सिस्टम का उपयोग करता है।<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>
{{main | Privilege (computing) }}


X86 निर्देश सेट में विशेषाधिकार स्तर प्रोसेसर पर वर्तमान में चल रहे प्रोग्राम की पहुंच को स्मृति क्षेत्रों, I/O बंदरगाहों और विशेष निर्देशों जैसे संसाधनों तक नियंत्रित करता है। 0 से लेकर 4 विशेषाधिकार स्तर हैं जो सबसे अधिक विशेषाधिकार प्राप्त हैं, 3 जो सबसे कम विशेषाधिकार प्राप्त हैं। अधिकांश आधुनिक ऑपरेटिंग सिस्टम कर्नेल/कार्यकारी के लिए स्तर 0 का उपयोग करते हैं, और एप्लिकेशन प्रोग्राम के लिए स्तर 3 का उपयोग करते हैं। स्तर n के लिए उपलब्ध कोई भी संसाधन 0 से n स्तरों के लिए भी उपलब्ध है, इसलिए विशेषाधिकार स्तर रिंग हैं। जब कम विशेषाधिकार प्राप्त प्रक्रिया उच्च विशेषाधिकार प्राप्त प्रक्रिया तक पहुँचने की कोशिश करती है, तो OS को सामान्य सुरक्षा दोष अपवाद की सूचना दी जाती है।
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 सदस्य द्वारा समर्थित एकाधिक प्रिविलेज स्तरों के संभावित भावी उपयोगों में कंटेनर ([[ आभासी बनाएं |आभासी बनाएं]]) और [[ आभासी मशीन |वर्चुअल मशीन]] सम्मिलित हैं। होस्ट ऑपरेटिंग सिस्टम कर्नेल पूर्ण प्रिविलेज एक्सेस ([[कर्नेल मोड]]) के साथ निर्देशों का उपयोग कर सकता है, जबकि वर्चुअल मशीन या कंटेनर में गेस्ट ओएस पर रनकरने वाले एप्लिकेशन यूजर मोड में निम्नतम स्तर के प्रिविलेजों का उपयोग कर सकते हैं। वर्चुअल मशीन और गेस्ट ओएस कर्नेल स्वयं गेस्ट ऑपरेटिंग सिस्टम के दृष्टिकोण से सिस्टम कॉल जैसे कर्नेल-मोड संचालन को प्रस्तावित करने और वर्चुअलाइज़ करने के लिए मध्यवर्ती स्तर के निर्देश प्रिविलेज का उपयोग कर सकते हैं।<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>


सभी चार विशेषाधिकार स्तरों का उपयोग करना आवश्यक नहीं है। 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>
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>




===आईओपीएल===
===आईओपीएल===
IOPL (I/O विशेषाधिकार स्तर) ध्वज सभी IA-32 संगत [[x86 आर्किटेक्चर]] पर पाया जाने वाला ध्वज है। यह FLAGS रजिस्टर में बिट्स 12 और 13 पर है। संरक्षित मोड और लंबे मोड में, यह वर्तमान प्रोग्राम या कार्य के I/O विशेषाधिकार स्तर को दर्शाता है। कार्य या कार्यक्रम का वर्तमान विशेषाधिकार स्तर (CPL) (CPL0, CPL1, CPL2, CPL3) I/O बंदरगाहों तक पहुँचने के लिए कार्य या कार्यक्रम के क्रम में IOPL से कम या बराबर होना चाहिए।
आईओपीएल (I/O प्रिविलेज स्तर) फ्लैग सभी IA-32 संगत [[x86 आर्किटेक्चर]] पर पाया जाने वाला फ्लैग है। यह फ्लैग रजिस्टर में 12 और 13 बिट्स पर होता है। संरक्षित मोड और लॉन्ग मोड में, यह वर्तमान प्रोग्राम या कार्य के I/O प्रिविलेज स्तर को दर्शाता है। कार्य या प्रोग्राम का वर्तमान प्रिविलेज स्तर (CPL) (CPL0, CPL1, CPL2, CPL3) I/O पोर्ट एक्सेस के लिए कार्य या प्रोग्राम के क्रम में IOPL से कम या समान होना चाहिए।


आईओपीएल का उपयोग करके बदला जा सकता है <code>POPF(D)</code> और <code>IRET(D)</code> केवल जब वर्तमान विशेषाधिकार स्तर रिंग 0 हो।
जब वर्तमान प्रिविलेज स्तर रिंग 0 हो, तब <code>POPF(D)</code> और <code>IRET(D)</code> का उपयोग करके आईओपीएल को परिवर्तित किया जा सकता है।


IOPL के अलावा, टास्क स्टेट सेगमेंट#I.2FO पोर्ट अनुमतियाँ | TSS में I/O पोर्ट अनुमतियाँ भी I/O पोर्ट तक पहुँचने के लिए किसी कार्य की क्षमता निर्धारित करने में भाग लेती हैं।
आईओपीएल के अतिरिक्त, TSS में I/O पोर्ट अनुमतियाँ भी I/O पोर्ट एक्सेस के लिए किसी कार्य की क्षमता निर्धारित करने में सम्मिलित होते हैं।


=== विविध ===
=== विविध ===
x86 सिस्टम में, x86 हार्डवेयर वर्चुअलाइजेशन ([[वीटी-एक्स]] और सिक्योर वर्चुअल मशीन) को रिंग -1 कहा जाता है, [[सिस्टम प्रबंधन मोड]] को रिंग -2 कहा जाता है, [[इंटेल प्रबंधन इंजन]] और [[एएमडी प्लेटफार्म सुरक्षा प्रोसेसर]] को कभी-कभी रिंग कहा जाता है − 3।<ref>{{Cite web |last=Gelas |first=Johan De |title=Hardware Virtualization: the Nuts and Bolts |url=https://www.anandtech.com/show/2480 |access-date=2021-03-13 |website=www.anandtech.com}}</ref>
x86 सिस्टम में, x86 हार्डवेयर वर्चुअलाइजेशन ([[वीटी-एक्स]] और सिक्योर वर्चुअल मशीन) को रिंग -1 कहा जाता है, [[सिस्टम प्रबंधन मोड]] को रिंग -2 कहा जाता है, [[इंटेल प्रबंधन इंजन]] और [[एएमडी प्लेटफार्म सुरक्षा प्रोसेसर]] को कभी-कभी रिंग−3 कहा जाता है।<ref>{{Cite web |last=Gelas |first=Johan De |title=Hardware Virtualization: the Nuts and Bolts |url=https://www.anandtech.com/show/2480 |access-date=2021-03-13 |website=www.anandtech.com}}</ref>




== हार्डवेयर सुविधाओं का उपयोग ==
== हार्डवेयर सुविधाओं का उपयोग ==
कई सीपीयू हार्डवेयर आर्किटेक्चर उन ऑपरेटिंग सिस्टमों की तुलना में कहीं अधिक लचीलापन प्रदान करते हैं जो वे सामान्य रूप से चलाते हैं। जटिल सीपीयू मोड के उचित उपयोग के लिए ऑपरेटिंग सिस्टम और सीपीयू के मध्य बहुत करीबी सहयोग की आवश्यकता होती है, और इस प्रकार यह ओएस को सीपीयू आर्किटेक्चर से जोड़ता है। जब OS और CPU को विशेष रूप से एक दूसरे के लिए डिज़ाइन किया जाता है, तो यह कोई समस्या नहीं है (हालाँकि कुछ हार्डवेयर सुविधाएँ अभी भी अप्रयुक्त रह सकती हैं), लेकिन जब OS को कई, विभिन्न [[एमआईपीएस आर्किटेक्चर]] के साथ संगत होने के लिए डिज़ाइन किया गया है, तो इसका बड़ा हिस्सा CPU मोड सुविधाओं को OS द्वारा अनदेखा किया जा सकता है। उदाहरण के लिए, Windows केवल दो स्तरों (रिंग 0 और रिंग 3) का उपयोग करने का कारण यह है कि कुछ हार्डवेयर आर्किटेक्चर जो अतीत में समर्थित थे (जैसे कि [[PowerPC]] या MIPS आर्किटेक्चर) ने केवल दो विशेषाधिकार स्तर लागू किए।<ref name="russinovich">{{cite book|last=Russinovich|first=Mark E.|author2=David A. Solomon|title=माइक्रोसॉफ्ट विंडोज आंतरिक|publisher=Microsoft Press|year=2005|edition=4|pages=[https://archive.org/details/isbn_9780735619173/page/16 16]|isbn=978-0-7356-1917-3|url-access=registration|url=https://archive.org/details/isbn_9780735619173/page/16}}</ref>
विभिन्न सीपीयू हार्डवेयर आर्किटेक्चर अधिक फ्लेक्सिबिलिटी प्रदान करते हैं। जटिल सीपीयू मोड के उचित उपयोग के लिए ऑपरेटिंग सिस्टम और सीपीयू के मध्य सहयोग की आवश्यकता होती है और इस प्रकार यह ओएस को सीपीयू आर्किटेक्चर से जोड़ता है। जब ओएस और सीपीयू को विशेष रूप से एक दूसरे के लिए डिज़ाइन किया जाता है तब यह कोई समस्या नहीं है (चूँकि कुछ हार्डवेयर सुविधाएँ अभी भी अप्रयुक्त रह सकती हैं), किन्तु जब ओएस को विभिन्न [[एमआईपीएस आर्किटेक्चर]] के साथ संगत होने के लिए डिज़ाइन किया जाता है तब इसका बड़ा भाग सीपीयू मोड सुविधाओं को ओएस द्वारा अप्रत्यक्ष किया जा सकता है। उदाहरण के लिए, विंडोज मात्र दो स्तरों (रिंग 0 और रिंग 3) का उपयोग करता है जिसका कारण यह है कि कुछ हार्डवेयर आर्किटेक्चर जो अतीत में समर्थित थे (जैसे कि [[PowerPC|पावरपीसी]] या एमआईपीएस आर्किटेक्चर) उनमें मात्र दो प्रिविलेज स्तर प्रस्तावित किये गए थे।<ref name="russinovich">{{cite book|last=Russinovich|first=Mark E.|author2=David A. Solomon|title=माइक्रोसॉफ्ट विंडोज आंतरिक|publisher=Microsoft Press|year=2005|edition=4|pages=[https://archive.org/details/isbn_9780735619173/page/16 16]|isbn=978-0-7356-1917-3|url-access=registration|url=https://archive.org/details/isbn_9780735619173/page/16}}</ref>


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


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


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


माइक्रोकर्नेल ऑपरेटिंग सिस्टम कंप्यूटर सुरक्षा और [[लालित्य]] के प्रयोजनों के लिए विशेषाधिकार प्राप्त मोड में चल रहे कोड की मात्रा को कम करने का प्रयास करते हैं, लेकिन अंततः प्रदर्शन का त्याग करते हैं।
माइक्रोकर्नेल ऑपरेटिंग सिस्टम कंप्यूटर सुरक्षा और [[लालित्य|सौष्ठव]] के प्रयोजनों के लिए प्रिविलेज प्राप्त मोड में चल रहे कोड को कम करने का प्रयास करते हैं।


== यह भी देखें ==
== यह भी देखें ==
* [[कॉल गेट (इंटेल)]]
* [[कॉल गेट (इंटेल)]]
* [[ स्मृति विभाजन ]]
* [[ स्मृति विभाजन ]]
* सुरक्षित प्रकार{{snd}} x86-संगत 80286 CPU और नए पर उपलब्ध है
* सुरक्षित प्रकार{{snd}} x86-संगत 80286 सीपीयू पर उपलब्ध है
* IOPL (CONFIG.SYS निर्देश) - रिंग 3 के बजाय रिंग 2 पर DLL कोड चलाने के लिए एक OS/2 निर्देश
* IOPL (CONFIG.SYS निर्देश) - रिंग 3 के अतिरिक्त रिंग 2 पर DLL कोड चलाने के लिए ओएस/2 निर्देश
* [[सेगमेंट डिस्क्रिप्टर]]
* [[सेगमेंट डिस्क्रिप्टर]]
* [[पर्यवेक्षक कॉल निर्देश]]
* [[पर्यवेक्षक कॉल निर्देश|सुपरवाइजर कॉल निर्देश]]
* सिस्टम प्रबंधन मोड (एसएमएम)
* सिस्टम प्रबंधन मोड (एसएमएम)
* [[कम से कम विशेषाधिकार का सिद्धांत]]
* [[कम से कम विशेषाधिकार का सिद्धांत|प्रिविलेज का सिद्धांत]]


==टिप्पणियाँ==
==टिप्पणियाँ==
Line 123: Line 125:
{{div col end}}
{{div col end}}


{{Operating System}}
{{DEFAULTSORT:Ring (Computer Security)}}
 
{{DEFAULTSORT:Ring (Computer Security)}}[[Category: सेंट्रल प्रोसेसिंग यूनिट]] [[Category: कंप्यूटर सुरक्षा मॉडल]] [[Category: ऑपरेटिंग सिस्टम प्रौद्योगिकी]]
 
 


[[Category: Machine Translated Page]]
[[Category:Articles with hatnote templates targeting a nonexistent page|Ring (Computer Security)]]
[[Category:Created On 26/04/2023]]
[[Category:Citation Style 1 templates|M]]
[[Category:Collapse templates|Ring (Computer Security)]]
[[Category:Created On 26/04/2023|Ring (Computer Security)]]
[[Category:Lua-based templates|Ring (Computer Security)]]
[[Category:Machine Translated Page|Ring (Computer Security)]]
[[Category:Multi-column templates|Ring (Computer Security)]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists|Ring (Computer Security)]]
[[Category:Pages using div col with small parameter|Ring (Computer Security)]]
[[Category:Pages with script errors|Ring (Computer Security)]]
[[Category:Sidebars with styles needing conversion|Ring (Computer Security)]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready|Ring (Computer Security)]]
[[Category:Templates based on the Citation/CS1 Lua module]]
[[Category:Templates generating COinS|Cite magazine]]
[[Category:Templates generating microformats|Ring (Computer Security)]]
[[Category:Templates that add a tracking category|Ring (Computer Security)]]
[[Category:Templates that are not mobile friendly|Ring (Computer Security)]]
[[Category:Templates that generate short descriptions|Ring (Computer Security)]]
[[Category:Templates using TemplateData|Ring (Computer Security)]]
[[Category:Templates using under-protected Lua modules|Ring (Computer Security)]]
[[Category:Use dmy dates from January 2021|Ring (Computer Security)]]
[[Category:Wikipedia articles needing clarification from November 2015|Ring (Computer Security)]]
[[Category:Wikipedia fully protected templates|Div col]]
[[Category:Wikipedia metatemplates|Ring (Computer Security)]]
[[Category:ऑपरेटिंग सिस्टम प्रौद्योगिकी|Ring (Computer Security)]]
[[Category:कंप्यूटर सुरक्षा मॉडल|Ring (Computer Security)]]
[[Category:सेंट्रल प्रोसेसिंग यूनिट|Ring (Computer Security)]]

Latest revision as of 15:09, 30 October 2023

संरक्षित मोड में उपलब्ध x86 के लिए प्रिविलेज रिंग

कंप्यूटर विज्ञान में, श्रेणीबद्ध सुरक्षा डोमेन,[1][2] जिन्हें प्रायः सुरक्षा रिंग कहा जाता है, डेटा और कार्यक्षमता को दोषों (फॉल्ट टॉलरेंस में संशोधन करके) और विद्वेषी (कंप्यूटर सुरक्षा प्रदान करके) से सुरक्षित रखने के लिए क्रियाविधि है।

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

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

कार्यान्वयन

मॉलटिक्स ऑपरेटिंग सिस्टम द्वारा प्रारम्भ की गई क्रांतिकारी अवधारणाओं में विभिन्न सुरक्षा रिंग थे, जो वर्तमान में यूनिक्स ऑपरेटिंग सिस्टम के सदस्य के सुरक्षित पूर्ववर्ती हैं। जीई 645 मेनफ्रेम कंप्यूटर में हार्डवेयर एक्सेस कण्ट्रोल था, किन्तु यह हार्डवेयर में रिंगों के लिए पूर्ण समर्थन प्रदान करने के लिए पर्याप्त नहीं था, इसलिए मल्टिक्स ने सॉफ्टवेयर में रिंग ट्रांज़िशन को पाशबद कर उनका समर्थन किया।[3] इसके उत्तराधिकारी, हनीवेल 6180 ने उन्हें आठ रिंगों के समर्थन के साथ हार्डवेयर में प्रस्तावित किया।[4] चूँकि, अधिकांश सामान्य-प्रयोजन प्रणालियाँ मात्र दो रिंगों का उपयोग करती हैं, भले ही वे जिस हार्डवेयर पर रन करते हैं वह उससे अधिक सीपीयू मोड प्रदान करता हो। उदाहरण के लिए, विंडोज 7 और विंडोज सर्वर 2008 (और उनके पूर्ववर्ती) मात्र दो रिंगों का उपयोग करते हैं, जिसमें रिंग 0 कर्नेल मोड और रिंग 3 यूजर मोड के अनुरूप है,[5]क्योंकि विंडोज के प्राचीन संस्करण ऐसे प्रोसेसर पर रन करते थे जो मात्र दो सुरक्षा स्तरों का समर्थन करते थे।[6]

विभिन्न आधुनिक सीपीयू आर्किटेक्चर (लोकप्रिय इंटेल x86 आर्किटेक्चर सहित) में विभिन्न प्रकार की रिंग सुरक्षा सम्मिलित है, चूँकि यूनिक्स की भाँति विंडोज एनटी ऑपरेटिंग सिस्टम इस सुविधा का पूर्ण रूप से उपयोग नहीं करता है। ओएस/2 तीन रिंगों का उपयोग करता है-[7] कर्नेल कोड और डिवाइस ड्राइवरों के लिए 0 रिंग, प्रिविलेज प्राप्त कोड के लिए 2 रिंग (I/O एक्सेस अनुमतियों के साथ यूजर प्रोग्राम) और अनपेक्षित कोड (प्रायः सभी यूजर प्रोग्राम) के लिए रिंग 3 का उपयोग करता है। Dओएस के अंतर्गत, कर्नेल, ड्राइवर और एप्लिकेशन सामान्यतः रिंग 3 पर रन करते हैं (चूँकि, यह उस स्तिथि के लिए विशिष्ट है जहां संरक्षित-मोड ड्राइवर या डॉस एक्सटेंडर का वास्तविक-मोड ओएस के रूप में उपयोग किया जाता है, जिससे सिस्टम प्रभावी रूप से बिना किसी सुरक्षा के कार्य करता है।), जबकि 386 मेमोरी मैनेजर जैसे ईएमएम 386 रिंग 0 पर रन करते हैं। इसके अतिरिक्त, डीआर-डॉस ईएमएम 386 3.xx वैकल्पिक रूप से रिंग 1 पर कुछ मॉड्यूल (जैसे डॉस संरक्षित मोड सेवाएं) संचालित कर सकते हैं। ओपन VMS कर्नेल, कार्यकारी, सुपरवाइजर और यूजर नामक चार मोड का उपयोग करता है (अवरोही प्रिविलेजों के क्रम में)।

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

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

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

एआरएम वास्तुकला संस्करण 7 आर्किटेक्चर तीन प्रिविलेज स्तरों एप्लिकेशन (पीएल0), ऑपरेटिंग सिस्टम (पीएल1), और हाइपरविजर (पीएल2) को प्रस्तावित करता है। असामान्य रूप से, स्तर 0 (पीएल0) न्यूनतम प्रिविलेज प्राप्त स्तर है, जबकि स्तर 2 अधिक प्रिविलेज प्राप्त स्तर है।[8] AArch64 के लिए एआरएम संस्करण 8 चार अपवाद स्तरों एप्लिकेशन (ईएल0), ऑपरेटिंग सिस्टम (ईएल1), हाइपरविजर (ईएल2) और सुरक्षित मॉनिटर/फर्मवेयर (ईएल3)[9]: D1-2454  और AArch32[9]: G1-6013  को प्रस्तावित करता है|

कुछ प्रणालियों में रिंग सुरक्षा को प्रोसेसर मोड (मास्टर/कर्नेल/प्रिविलेज/सुपरवाइज़र-मोड के प्रति स्लेव/अनविशेष/यूजर मोड) के साथ जोड़ा जा सकता है। दोनों का समर्थन करने वाले हार्डवेयर पर रनकरने वाले ऑपरेटिंग सिस्टम सुरक्षा के दोनों रूपों का उपयोग कर सकते हैं।

रिंग आर्किटेक्चर के प्रभावी उपयोग के लिए हार्डवेयर और ऑपरेटिंग सिस्टम के मध्य घनिष्ठ सहयोग की आवश्यकता होती है|[why?] कई हार्डवेयर प्लेटफॉर्म पर काम करने के लिए डिज़ाइन किए गए ऑपरेटिंग सिस्टम रिंग्स का केवल सीमित उपयोग कर सकते हैं यदि वे प्रत्येक समर्थित प्लेटफॉर्म पर उपस्थित नहीं हैं। अधिकांशतः सुरक्षा मॉडल को कर्नेल और यूजर के लिए सरलीकृत किया जाता है, भले ही हार्डवेयर रिंगों के माध्यम से श्रेष्ठ ग्रैन्युलैरिटी प्रदान करता हो।

मोड

सुपरवाइजर मोड

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

सुपरवाइजर मोड कुछ प्रोसेसरों पर निष्पादन मोड है जो प्रिविलेज प्राप्त निर्देशों सहित सभी निर्देशों के निष्पादन को सक्षम बनाता है। यह स्मृति प्रबंधन हार्डवेयर और अन्य बाह्य उपकरणों के लिए विभिन्न एड्रेस स्पेस एक्सेस प्रदान कर सकता है। यह वह मोड है जिसमें ऑपरेटिंग सिस्टम सामान्यतः कार्य करता है।[10]

मोनोलिथिक कर्नेल (ऑपरेटिंग सिस्टम) में, ऑपरेटिंग सिस्टम सुपरवाइजर मोड में कार्य करता है और एप्लिकेशन यूजर मोड में कार्य करता है। अन्य प्रकार के ऑपरेटिंग सिस्टम, जैसे एक्सोकर्नेल या माइक्रोकर्नेल वाले ऑपरेटिंग सिस्टम आवश्यक रूप से इस व्यवहार को साझा नहीं करते हैं।

पीसी जगत से कुछ उदाहरण हैं-

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

अधिकांश प्रोसेसर में दो भिन्न-भिन्न मोड होते हैं। X86-प्रोसेसर के चार भिन्न-भिन्न मोड हैं जो चार भिन्न-भिन्न रिंगों में विभाजित हैं। रिंग 0 में कार्य करने वाले प्रोग्राम सिस्टम के साथ कुछ भी कर सकते हैं, और रिंग 3 में कार्य करने वाले कोड को किसी भी समय अन्य कंप्यूटर सिस्टम को प्रभावित किए बिना विफल होने में सक्षम होना चाहिए। रिंग 1 और रिंग 2 का कदाचित ही कभी उपयोग किया जाता है, किन्तु इसे एक्सेस के विभिन्न स्तरों के साथ कॉन्फ़िगर किया जा सकता है।

अधिकांश उपस्तिथ प्रणालियों में, यूजर मोड से कर्नेल मोड में स्विच करने से प्रदर्शन में उच्च कॉस्ट आती है। इसे मूल अनुरोध getpid पर अधिकांश मशीनों पर 1000-1500 चक्र व्यय के लिए मापा गया है। इनमें से लगभग 100 वास्तविक स्विच के लिए हैं, शेष कर्नेल ओवरहेड है।[11][12] L3 माइक्रोकर्नेल में, इस ओवरहेड को कम करने से कुल व्यय लगभग 150 चक्र तक कम हो गया है।[11]

मौरिस विल्क्स ने अंकित किया है-[13]

अंततः यह स्पष्ट हो गया कि रिंग प्रदान करने वाली पदानुक्रमित सुरक्षा सिस्टम प्रोग्रामर की आवश्यकताओं से निकटता से समान नहीं थी और केवल दो मोड होने की सरल प्रणाली पर कोई संशोधन प्रदान नहीं करती थी।

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

फंक्शंस को कभी-कभी दूसरी दिशा में रिंगों में भी ले जाया जाता है। उदाहरण के लिए, लिनक्स कर्नेल वीडीएसओ अनुभाग को प्रक्रियाओं में प्रवेश करता है जिसमें ऐसे कार्य होते हैं जिन्हें सामान्य रूप से सिस्टम कॉल अर्थात रिंग ट्रांज़िशन की आवश्यकता होती है। सिस्कल करने के अतिरिक्त ये कार्य कर्नेल द्वारा प्रदान किए गए स्थिर डेटा का उपयोग करते हैं। यह रिंग ट्रांज़िशन की आवश्यकता से बचाता है और इसलिए यह सिस्कल से अधिक सरल है। फंक्शन gettimeofday इस प्रकार प्रदान किया जा सकता है।

हाइपरवाइजर मोड

इंटेल और एएमडी के सीपीयू रिंग 0 हार्डवेयर एक्सेस को नियंत्रित करने के लिए हाइपरविजर के लिए x86 वर्चुअलाइजेशन निर्देश प्रदान करते हैं। चूँकि वे पारस्परिक रूप से असंगत हैं, इंटेल वीटी-एक्स (कोडनेम वेंडरपूल) और एएमडी-वी (कोडनेम पसिफ़िका) दोनों नया रिंग-1 बनाते हैं जिससे कि गेस्ट ऑपरेटिंग सिस्टम, अन्य होस्ट ऑपरेटिंग सिस्टम को प्रभावित किए बिना मूल रूप से रिंग 0 संचालन कार्य कर सकता है। <ब्लॉककोट> वर्चुअलाइजेशन की सहायता के लिए, वीटी-एक्स और सुरक्षित वर्चुअल मशीन रिंग 0 के नीचे नया प्रिविलेज स्तर स्थापित करते हैं। दोनों, नौ नए मशीन कोड निर्देश जोड़ते हैं जो मात्र रिंग −1 पर काम करते हैं, जिसका उद्देश्य हाइपरविजर द्वारा उपयोग किया जाना है।

प्रिविलेज स्तर

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

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

8086 में रियल मोड प्रोग्राम 0 स्तर (उच्चतम प्रिविलेज स्तर) पर निष्पादित होते हैं जबकि 8086 में वर्चुअल मोड 3 स्तर पर सभी प्रोग्राम निष्पादित करता है।[16]

x86 ISA सदस्य द्वारा समर्थित एकाधिक प्रिविलेज स्तरों के संभावित भावी उपयोगों में कंटेनर (आभासी बनाएं) और वर्चुअल मशीन सम्मिलित हैं। होस्ट ऑपरेटिंग सिस्टम कर्नेल पूर्ण प्रिविलेज एक्सेस (कर्नेल मोड) के साथ निर्देशों का उपयोग कर सकता है, जबकि वर्चुअल मशीन या कंटेनर में गेस्ट ओएस पर रनकरने वाले एप्लिकेशन यूजर मोड में निम्नतम स्तर के प्रिविलेजों का उपयोग कर सकते हैं। वर्चुअल मशीन और गेस्ट ओएस कर्नेल स्वयं गेस्ट ऑपरेटिंग सिस्टम के दृष्टिकोण से सिस्टम कॉल जैसे कर्नेल-मोड संचालन को प्रस्तावित करने और वर्चुअलाइज़ करने के लिए मध्यवर्ती स्तर के निर्देश प्रिविलेज का उपयोग कर सकते हैं।[17]


आईओपीएल

आईओपीएल (I/O प्रिविलेज स्तर) फ्लैग सभी IA-32 संगत x86 आर्किटेक्चर पर पाया जाने वाला फ्लैग है। यह फ्लैग रजिस्टर में 12 और 13 बिट्स पर होता है। संरक्षित मोड और लॉन्ग मोड में, यह वर्तमान प्रोग्राम या कार्य के I/O प्रिविलेज स्तर को दर्शाता है। कार्य या प्रोग्राम का वर्तमान प्रिविलेज स्तर (CPL) (CPL0, CPL1, CPL2, CPL3) I/O पोर्ट एक्सेस के लिए कार्य या प्रोग्राम के क्रम में IOPL से कम या समान होना चाहिए।

जब वर्तमान प्रिविलेज स्तर रिंग 0 हो, तब POPF(D) और IRET(D) का उपयोग करके आईओपीएल को परिवर्तित किया जा सकता है।

आईओपीएल के अतिरिक्त, TSS में I/O पोर्ट अनुमतियाँ भी I/O पोर्ट एक्सेस के लिए किसी कार्य की क्षमता निर्धारित करने में सम्मिलित होते हैं।

विविध

x86 सिस्टम में, x86 हार्डवेयर वर्चुअलाइजेशन (वीटी-एक्स और सिक्योर वर्चुअल मशीन) को रिंग -1 कहा जाता है, सिस्टम प्रबंधन मोड को रिंग -2 कहा जाता है, इंटेल प्रबंधन इंजन और एएमडी प्लेटफार्म सुरक्षा प्रोसेसर को कभी-कभी रिंग−3 कहा जाता है।[18]


हार्डवेयर सुविधाओं का उपयोग

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

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

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

मोड के मध्य ट्रांजीशन निष्पादन थ्रेड (कंप्यूटिंग) के निर्णय पर होता है जब ट्रांजीशन उच्च प्रिविलेज के स्तर से निम्न प्रिविलेज (कर्नेल से यूजर मोड तक) में होता है, किन्तु निम्न से उच्च स्तर के प्रिविलेज में ट्रांजीशन सुरक्षित हार्डवेयर-नियंत्रित गेट के माध्यम से हो सकता है जो विशेष निर्देशों को निष्पादित करके पार किए जाते हैं।

माइक्रोकर्नेल ऑपरेटिंग सिस्टम कंप्यूटर सुरक्षा और सौष्ठव के प्रयोजनों के लिए प्रिविलेज प्राप्त मोड में चल रहे कोड को कम करने का प्रयास करते हैं।

यह भी देखें

टिप्पणियाँ

  1. E.g., In IBM OS/360 through z/OS, some system tasks run in problem state key 0.


संदर्भ

  1. Karger, Paul A.; Herbert, Andrew J. (1984). जाली सुरक्षा और पहुंच की पता लगाने की क्षमता का समर्थन करने के लिए एक संवर्धित क्षमता वास्तुकला. 1984 IEEE Symposium on Security and Privacy. p. 2. doi:10.1109/SP.1984.10001. ISBN 0-8186-0532-4. S2CID 14788823.
  2. Binder, W. (2001). "Design and implementation of the J-SEAL2 mobile agent kernel". Proceedings 2001 Symposium on Applications and the Internet. pp. 35–42. doi:10.1109/SAINT.2001.905166. ISBN 0-7695-0942-8. S2CID 11066378.
  3. "प्रोटेक्शन रिंग्स को लागू करने के लिए एक हार्डवेयर आर्किटेक्चर". Communications of the ACM. 15 (3). March 1972. Retrieved 27 September 2012.
  4. "मल्टिक्स ग्लोसरी - रिंग". Retrieved 27 September 2012.
  5. 5.0 5.1 Russinovich, Mark E.; David A. Solomon (2005). माइक्रोसॉफ्ट विंडोज आंतरिक (4 ed.). Microsoft Press. pp. 16. ISBN 978-0-7356-1917-3.
  6. Russinovich, Mark (2012). Windows Internals Part 1. 6th Ed. Redmond, Washington: Microsoft Press. p. 17. ISBN 978-0-7356-4873-9. The reason Windows uses only two levels is that some hardware architectures that were supported in the past (such as Compaq Alpha and Silicon Graphics MIPS) implemented only two privilege levels.
  7. "Presentation Device Driver Reference for OS/2 - 5. Introduction to OS/2 Presentation Drivers". Archived from the original on 15 June 2015. Retrieved 13 June 2015.
  8. ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition. Arm Ltd. p. B1-1136.
  9. 9.0 9.1 Arm Architecture Reference Manual Armv8, for A-profile architecture. Arm Ltd.
  10. "पर्यवेक्षक मोड". FOLDOC. 15 February 1995.
  11. 11.0 11.1 Jochen Liedtke (December 1995). "On µ-Kernel Construction". Proc. 15th ACM Symposium on Operating System Principles (SOSP).
  12. Ousterhout, J. K. (1990). Why aren't operating systems getting faster as fast as hardware?. Usenix Summer Conference A. naheim, CA. pp. 247–256.
  13. Maurice Wilkes (April 1994). "बदलती दुनिया में ऑपरेटिंग सिस्टम". ACM SIGOPS Operating Systems Review. 28 (2): 9–21. doi:10.1145/198153.198154. ISSN 0163-5980. S2CID 254134.
  14. Gorine, Andrei; Krivolapov, Alexander (May 2008). "Kernel Mode Databases: A DBMS Technology For High-Performance Applications". Dr. Dobb's Journal.
  15. Russinovich, Mark E.; Solomon, David A. (2005). माइक्रोसॉफ्ट विंडोज आंतरिक (4th ed.). Microsoft Press. p. 16. ISBN 978-0-7356-1917-3.
  16. Sunil Mathur. Microprocessor 8086: Architecture, Programming and Interfacing (Eastern Economy ed.). PHI Learning.
  17. Anderson, Thomas; Dahlin, Michael (21 August 2014). "2.2". Operating Systems: Principles and Practice (2nd ed.). Recursive Books. ISBN 978-0985673529.
  18. Gelas, Johan De. "Hardware Virtualization: the Nuts and Bolts". www.anandtech.com. Retrieved 13 March 2021.
  • Intel 80386 Programmer's Reference


अग्रिम पठन