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

From Vigyanwiki
No edit summary
No edit summary
Line 9: Line 9:


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



Revision as of 11:59, 28 April 2023

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

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

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

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

कार्यान्वयन

मॉलटिक्स ऑपरेटिंग सिस्टम द्वारा प्रारम्भ की गई क्रांतिकारी अवधारणाओं में विभिन्न सुरक्षा रिंग थे, जो वर्तमान में यूनिक्स ऑपरेटिंग सिस्टम के सदस्य के सुरक्षित पूर्ववर्ती हैं। जीई 645 मेनफ्रेम कंप्यूटर में हार्डवेयर एक्सेस कण्ट्रोल था, किन्तु यह हार्डवेयर में रिंगों के लिए पूर्ण समर्थन प्रदान करने के लिए पर्याप्त नहीं था, इसलिए मल्टिक्स ने सॉफ्टवेयर में रिंग ट्रांज़िशन को पाशबद कर उनका समर्थन किया।[3] इसके उत्तराधिकारी, हनीवेल 6180 ने उन्हें आठ रिंगों के समर्थन के साथ हार्डवेयर में लागू किया।[4] हालाँकि, अधिकांश सामान्य-प्रयोजन प्रणालियाँ केवल दो रिंगों का उपयोग करती हैं, भले ही वे जिस हार्डवेयर पर चलते हैं वह उससे अधिक CPU मोड प्रदान करता हो। उदाहरण के लिए, विंडोज 7 और विंडोज सर्वर 2008 (और उनके पूर्ववर्ती) केवल दो रिंगों का उपयोग करते हैं, जिसमें रिंग 0 #SUPERVISOR-MODE के अनुरूप है और रिंग 3 उपयोक्ता स्थान के लिए है,[5]क्योंकि Windows के पुराने संस्करण ऐसे प्रोसेसर पर चलते थे जो केवल दो सुरक्षा स्तरों का समर्थन करते थे।[6] कई आधुनिक सीपीयू आर्किटेक्चर (लोकप्रिय इंटेल x86 आर्किटेक्चर सहित) में कुछ प्रकार की रिंग सुरक्षा शामिल है, हालांकि यूनिक्स की तरह विंडोज एनटी ऑपरेटिंग सिस्टम इस सुविधा का पूरी तरह से उपयोग नहीं करता है। OS/2 कुछ हद तक तीन रिंगों का उपयोग करता है:[7] कर्नेल कोड और डिवाइस ड्राइवरों के लिए 0 रिंग करें, विशेषाधिकार प्राप्त कोड के लिए 2 रिंग करें (I/O एक्सेस अनुमतियों के साथ उपयोगकर्ता प्रोग्राम), और अनपेक्षित कोड (लगभग सभी उपयोगकर्ता प्रोग्राम) के लिए रिंग 3। DOS के तहत, कर्नेल, ड्राइवर और एप्लिकेशन सामान्यतः रिंग 3 पर चलते हैं (हालांकि, यह उस मामले के लिए विशिष्ट है जहां संरक्षित-मोड ड्राइवर और/या DOS एक्सटेंडर का उपयोग किया जाता है; वास्तविक-मोड OS के रूप में, सिस्टम प्रभावी रूप से बिना किसी सुरक्षा के चलता है। ), जबकि 386 मेमोरी मैनेजर जैसे EMM386 रिंग 0 पर चलते हैं। इसके अलावा, DR-DOS' EMM386 3.xx वैकल्पिक रूप से रिंग 1 पर कुछ मॉड्यूल (जैसे डॉस संरक्षित मोड सेवाएं) चला सकते हैं। ओपन VMS कर्नेल, कार्यकारी, पर्यवेक्षक और उपयोगकर्ता नामक चार मोड का उपयोग करता है (घटते विशेषाधिकारों के क्रम में)।

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

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

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

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

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

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

मोड

पर्यवेक्षक मोड

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

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

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

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

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

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

अधिकांश मौजूदा प्रणालियों में, उपयोगकर्ता मोड से कर्नेल मोड में स्विच करने से प्रदर्शन में उच्च लागत आती है। इसे बुनियादी अनुरोध पर मापा गया है getpid, अधिकांश मशीनों पर 1000-1500 चक्र खर्च करने के लिए। इनमें से लगभग 100 वास्तविक स्विच के लिए हैं (70 उपयोगकर्ता से कर्नेल स्थान तक, और 40 पीछे), शेष कर्नेल ओवरहेड है।[11][12] लोल मसरूरनल में, इस ओवरहेड को कम करने से कुल लागत लगभग 150 चक्र तक कम हो गई।[11]

मौरिस विल्क्स ने लिखा:[13]

... अंततः यह स्पष्ट हो गया कि रिंग प्रदान करने वाली पदानुक्रमित सुरक्षा सिस्टम प्रोग्रामर की आवश्यकताओं से निकटता से मेल नहीं खाती थी और केवल दो मोड होने की सरल प्रणाली पर बहुत कम या कोई सुधार नहीं देती थी। रिंग्स ऑफ प्रोटेक्शन ने हार्डवेयर में कुशल कार्यान्वयन के लिए खुद को उधार दिया, किन्तु उनके लिए कहने के लिए कुछ और नहीं था। [...] ठीक-ठाक सुरक्षा का आकर्षण तब भी बना रहा, जब यह देखा गया कि सुरक्षा के छल्ले ने जवाब नहीं दिया ... यह फिर से अंधी गली साबित हुई...

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

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