सुरक्षा रिंग: Difference between revisions
From Vigyanwiki
No edit summary |
No edit summary |
||
| Line 2: | Line 2: | ||
{{redirect-several|रिंग |रिंग 0}} | {{redirect-several|रिंग |रिंग 0}} | ||
{{Use dmy dates|date=January 2021}} | {{Use dmy dates|date=January 2021}} | ||
[[File:Priv rings.svg|300px|thumb|right|संरक्षित मोड में उपलब्ध x[[86]] के लिए प्रिविलेज | [[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 फ़ंक्शन होना चाहिए। उच्च क्रमांकित रिंगों में चलने वाले वेब ब्राउज़र जैसे प्रोग्रामों को कम संख्या वाले रिंगों तक सीमित संसाधन को नेटवर्क एक्सेस अनुरोध करना चाहिए। | ||
== कार्यान्वयन == | == कार्यान्वयन == | ||
[[ मॉलटिक्स ]] ऑपरेटिंग सिस्टम द्वारा प्रारम्भ की गई क्रांतिकारी अवधारणाओं में विभिन्न सुरक्षा रिंग थे, जो वर्तमान में [[यूनिक्स]] ऑपरेटिंग सिस्टम के सदस्य के सुरक्षित पूर्ववर्ती हैं। [[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 [[ उपयोक्ता स्थान | | [[ मॉलटिक्स ]] ऑपरेटिंग सिस्टम द्वारा प्रारम्भ की गई क्रांतिकारी अवधारणाओं में विभिन्न सुरक्षा रिंग थे, जो वर्तमान में [[यूनिक्स]] ऑपरेटिंग सिस्टम के सदस्य के सुरक्षित पूर्ववर्ती हैं। [[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 एक्सेस अनुमतियों के साथ | विभिन्न आधुनिक सीपीयू आर्किटेक्चर (लोकप्रिय [[इंटेल]] 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 पर कार्य करते हैं (चूँकि, यह उस स्तिथि के लिए विशिष्ट है जहां संरक्षित-मोड ड्राइवर या डॉस एक्सटेंडर का वास्तविक-मोड OS के रूप में उपयोग किया जाता है, जिससे सिस्टम प्रभावी रूप से बिना किसी सुरक्षा के कार्य करता है।), जबकि 386 मेमोरी मैनेजर जैसे [[EMM386|ईएमएम 386]] रिंग 0 पर कार्य करते हैं। इसके अतिरिक्त, [[DR-DOS|डीआर-डॉस]] ईएमएम 386 3.xx वैकल्पिक रूप से रिंग 1 पर कुछ मॉड्यूल (जैसे [[डॉस संरक्षित मोड सेवाएं]]) संचालित कर सकते हैं। [[ ओपन VMS | ओपन VMS]] कर्नेल, कार्यकारी, सुपरवाइजर और यूजर नामक चार मोड का उपयोग करता है (अवरोही विशेषाधिकारों के क्रम में)। | ||
इस संरचना में [[ एक्सईएन |एक्सईएन]] [[सूत्र|वीएमएम]] सॉफ्टवेयर के प्रसार, [[ अखंड कर्नेल |मोनोलिथिक]] के प्रति [[माइक्रोकर्नेल]] (विशेष रूप से [[यूज़नेट]] न्यूज़ग्रुप और [[इंटरनेट मंच]] में) पर विचार-विमर्श, माइक्रोसॉफ्ट [[की]] रिंग -1 डिजाइन संरचना के रूप में उनके [[नेक्स्ट-जेनरेशन सिक्योर कंप्यूटिंग बेस]] पहल के अंश के रूप में, और [[इंटेल वीटी-एक्स]] जैसे [[x86 वर्चुअलाइजेशन]] पर आधारित हाइपरवाइजर के साथ पुनः रुचि उत्पन्न हुई थी। | इस संरचना में [[ एक्सईएन |एक्सईएन]] [[सूत्र|वीएमएम]] सॉफ्टवेयर के प्रसार, [[ अखंड कर्नेल |मोनोलिथिक]] के प्रति [[माइक्रोकर्नेल]] (विशेष रूप से [[यूज़नेट]] न्यूज़ग्रुप और [[इंटरनेट मंच]] में) पर विचार-विमर्श, माइक्रोसॉफ्ट [[की]] रिंग -1 डिजाइन संरचना के रूप में उनके [[नेक्स्ट-जेनरेशन सिक्योर कंप्यूटिंग बेस]] पहल के अंश के रूप में, और [[इंटेल वीटी-एक्स]] जैसे [[x86 वर्चुअलाइजेशन]] पर आधारित हाइपरवाइजर के साथ पुनः रुचि उत्पन्न हुई थी। | ||
| Line 17: | Line 17: | ||
मूल मल्टिक्स प्रणाली में आठ रिंग थे, किन्तु विभिन्न आधुनिक प्रणालियों में कम रिंग होते हैं। हार्डवेयर विशेष मशीन रजिस्टर की सहायता से निष्पादन निर्देश [[थ्रेड (कंप्यूटिंग)]] की वर्तमान रिंग से सदैव अवगत रहता है। कुछ प्रणालियों में, [[ आभासी मेमोरी ]] के क्षेत्रों को इसके अतिरिक्त हार्डवेयर में रिंग संख्याएँ प्रदान की जाती हैं। उदाहरण डेटा जनरल एक्लिप्स एमवी / 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 आर्किटेक्चर तीन | [[ एआरएम वास्तुकला ]] संस्करण 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.}} जबकि यूजर-स्तर के अनुप्रयोग में यह नहीं हो सकते हैं। यह फ़्लैग निर्धारित करता है कि मशीन कोड संचालन को निष्पादित करना संभव होगा जैसे विभिन्न डिस्क्रिप्टर टेबल के लिए रजिस्टरों को संशोधित करना या इंटरप्ट्स को अक्षम करने जैसे संचालन करना। संचालन हेतु दो भिन्न-भिन्न मोड का विचार अधिक शक्ति और उत्तरदायित्व से आता है- सुपरवाइजर मोड में प्रोग्राम विफल न हो ऐसा विश्वास किया जाता है क्योंकि विफलता पूर्ण कंप्यूटर सिस्टम को क्रैश कर सकती है| | ||
सुपरवाइजर मोड कुछ प्रोसेसरों पर निष्पादन मोड है जो विशेषाधिकार प्राप्त निर्देशों सहित सभी निर्देशों के निष्पादन को सक्षम बनाता है। यह स्मृति प्रबंधन हार्डवेयर और अन्य बाह्य उपकरणों के लिए विभिन्न एड्रेस स्पेस एक्सेस प्रदान कर सकता है। यह वह मोड है जिसमें ऑपरेटिंग सिस्टम सामान्यतः कार्य करता है।<ref>{{cite web|website=[[Free On-line Dictionary of Computing|FOLDOC]]|url=https://foldoc.org/Supervisor+Mode|title=पर्यवेक्षक मोड|date=1995-02-15}}</ref> | |||
मोनोलिथिक कर्नेल ([[ऑपरेटिंग सिस्टम]]) में, ऑपरेटिंग सिस्टम | मोनोलिथिक कर्नेल ([[ऑपरेटिंग सिस्टम]]) में, ऑपरेटिंग सिस्टम सुपरवाइजर मोड में कार्य करता है और एप्लिकेशन यूजर मोड में कार्य करता है। अन्य प्रकार के [[कर्नेल (ऑपरेटिंग सिस्टम)|ऑपरेटिंग सिस्टम]], जैसे [[ exokernel | एक्सोकर्नेल]] या माइक्रोकर्नेल वाले ऑपरेटिंग सिस्टम आवश्यक रूप से इस व्यवहार को साझा नहीं करते हैं। | ||
पीसी जगत से कुछ उदाहरण हैं- | पीसी जगत से कुछ उदाहरण हैं- | ||
* [[लिनक्स कर्नेल]], मैकोज़ और [[ माइक्रोसॉफ़्ट विंडोज़ ]] तीन ऑपरेटिंग सिस्टम हैं जो | * [[लिनक्स कर्नेल]], मैकोज़ और [[ माइक्रोसॉफ़्ट विंडोज़ ]] तीन ऑपरेटिंग सिस्टम हैं जो सुपरवाइजर/यूजर मोड का उपयोग करते हैं। विशिष्ट कार्यों को करने के लिए, यूजर मोड कोड को सुपरवाइजर मोड में [[सिस्टम कॉल]] करना चाहिए या कर्नेल स्पेस पर जहाँ ऑपरेटिंग सिस्टम का विश्वसनीय कोड आवश्यक कार्य करेगा और निष्पादन को यूजर स्पेस पर रिटर्न करेगा। [[लोड करने योग्य कर्नेल मॉड्यूल|लोडेबल कर्नेल मॉड्यूल]] के उपयोग के माध्यम से अतिरिक्त कोड को कर्नेल स्पेस में आवश्यक अनुमति वाले यूजर द्वारा जोड़ा जा सकता है, क्योंकि यह कोड यूजर मोड के अभिगम नियंत्रण और सुरक्षा सीमाओं के अधीन नहीं है। | ||
* DOS (जब तक कोई 386 मेमोरी मैनेजर जैसे EMM386 लोड नहीं होता है), साथ ही साथ अन्य सरल ऑपरेटिंग सिस्टम और कई एम्बेडेड डिवाइस सुपरवाइज़र मोड में स्थायी रूप से कार्य करते हैं, जिसका अर्थ है कि ड्राइवरों को सीधे | * DOS (जब तक कोई 386 मेमोरी मैनेजर जैसे EMM386 लोड नहीं होता है), साथ ही साथ अन्य सरल ऑपरेटिंग सिस्टम और कई एम्बेडेड डिवाइस सुपरवाइज़र मोड में स्थायी रूप से कार्य करते हैं, जिसका अर्थ है कि ड्राइवरों को सीधे यूजर प्रोग्राम के रूप में लिखा जा सकता है। | ||
अधिकांश प्रोसेसर में दो भिन्न-भिन्न मोड होते हैं। X86-प्रोसेसर के चार भिन्न-भिन्न मोड हैं जो चार भिन्न-भिन्न रिंगों में विभाजित हैं। रिंग 0 में कार्य करने वाले प्रोग्राम सिस्टम के साथ कुछ भी कर सकते हैं, और रिंग 3 में कार्य करने वाले कोड को किसी भी समय अन्य कंप्यूटर सिस्टम को प्रभावित किए बिना विफल होने में सक्षम होना चाहिए। रिंग 1 और रिंग 2 का कदाचित ही कभी उपयोग किया जाता है, किन्तु इसे एक्सेस के विभिन्न स्तरों के साथ कॉन्फ़िगर किया जा सकता है। | अधिकांश प्रोसेसर में दो भिन्न-भिन्न मोड होते हैं। X86-प्रोसेसर के चार भिन्न-भिन्न मोड हैं जो चार भिन्न-भिन्न रिंगों में विभाजित हैं। रिंग 0 में कार्य करने वाले प्रोग्राम सिस्टम के साथ कुछ भी कर सकते हैं, और रिंग 3 में कार्य करने वाले कोड को किसी भी समय अन्य कंप्यूटर सिस्टम को प्रभावित किए बिना विफल होने में सक्षम होना चाहिए। रिंग 1 और रिंग 2 का कदाचित ही कभी उपयोग किया जाता है, किन्तु इसे एक्सेस के विभिन्न स्तरों के साथ कॉन्फ़िगर किया जा सकता है। | ||
अधिकांश उपस्तिथ प्रणालियों में, | अधिकांश उपस्तिथ प्रणालियों में, यूजर मोड से कर्नेल मोड में स्विच करने से प्रदर्शन में उच्च कॉस्ट आती है। इसे मूल अनुरोध <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>अंततः यह स्पष्ट हो गया कि रिंग प्रदान करने वाली पदानुक्रमित सुरक्षा सिस्टम प्रोग्रामर की आवश्यकताओं से निकटता से समान नहीं थी और केवल दो मोड होने की सरल प्रणाली पर | [[मौरिस विल्क्स]] ने अंकित किया है-<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 को विशेष रूप से कर्नेल मोड परिनियोजन के लिए कर्नेल-आधारित एप्लिकेशन फ़ंक्शंस को स्थानीय डेटाबेस प्रदान करने और [[संदर्भ स्विच]] को समाप्त करने के लिए विकसित किया गया है जो अन्यथा तब होता है जब कर्नेल फ़ंक्शन | प्रदर्शन और नियतत्ववाद प्राप्त करने के लिए, कुछ प्रणालियां ऐसे कार्य करती हैं जिन्हें कर्नेल मोड में डिवाइस ड्राइवर के अतिरिक्त एप्लिकेशन लॉजिक के रूप में देखा जा सकता है जिसमें सुरक्षा अनुप्रयोग ([[ अभिगम नियंत्रण | एक्सेस कण्ट्रोल]] , [[फ़ायरवॉल (कंप्यूटिंग)]], आदि) और ऑपरेटिंग सिस्टम मॉनिटर को उदाहरण के रूप में उद्धृत किया गया है। एम्बेडेड डेटाबेस प्रबंधन प्रणाली, 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 | vDSO]] अनुभाग को प्रक्रियाओं में प्रवेश करता है जिसमें ऐसे कार्य होते हैं जिन्हें सामान्य रूप से सिस्टम कॉल अर्थात रिंग ट्रांज़िशन की आवश्यकता होती है। सिस्कल करने के अतिरिक्त ये कार्य कर्नेल द्वारा प्रदान किए गए स्थिर डेटा का उपयोग करते हैं। यह रिंग ट्रांज़िशन की आवश्यकता से बचाता है और इसलिए यह सिस्कल से अधिक सरल है। फंक्शन gettimeofday इस प्रकार प्रदान किया जा सकता है। | फंक्शंस को कभी-कभी दूसरी दिशा में रिंगों में भी ले जाया जाता है। उदाहरण के लिए, लिनक्स कर्नेल [[ vDSO | vDSO]] अनुभाग को प्रक्रियाओं में प्रवेश करता है जिसमें ऐसे कार्य होते हैं जिन्हें सामान्य रूप से सिस्टम कॉल अर्थात रिंग ट्रांज़िशन की आवश्यकता होती है। सिस्कल करने के अतिरिक्त ये कार्य कर्नेल द्वारा प्रदान किए गए स्थिर डेटा का उपयोग करते हैं। यह रिंग ट्रांज़िशन की आवश्यकता से बचाता है और इसलिए यह सिस्कल से अधिक सरल है। फंक्शन gettimeofday इस प्रकार प्रदान किया जा सकता है। | ||
| Line 53: | Line 53: | ||
इंटेल और एएमडी के सीपीयू रिंग 0 हार्डवेयर एक्सेस को नियंत्रित करने के लिए हाइपरविजर के लिए x86 वर्चुअलाइजेशन निर्देश प्रदान करते हैं। चूँकि वे पारस्परिक रूप से असंगत हैं, इंटेल वीटी-एक्स (कोडनेम वेंडरपूल) और एएमडी-वी (कोडनेम Pacifica) दोनों नया रिंग-1 बनाते हैं जिससे कि गेस्ट ऑपरेटिंग सिस्टम, अन्य होस्ट ऑपरेटिंग सिस्टम को प्रभावित किए बिना मूल रूप से रिंग 0 संचालन कार्य कर सकता है। | इंटेल और एएमडी के सीपीयू रिंग 0 हार्डवेयर एक्सेस को नियंत्रित करने के लिए हाइपरविजर के लिए x86 वर्चुअलाइजेशन निर्देश प्रदान करते हैं। चूँकि वे पारस्परिक रूप से असंगत हैं, इंटेल वीटी-एक्स (कोडनेम वेंडरपूल) और एएमडी-वी (कोडनेम Pacifica) दोनों नया रिंग-1 बनाते हैं जिससे कि गेस्ट ऑपरेटिंग सिस्टम, अन्य होस्ट ऑपरेटिंग सिस्टम को प्रभावित किए बिना मूल रूप से रिंग 0 संचालन कार्य कर सकता है। | ||
<ब्लॉककोट> | <ब्लॉककोट> | ||
वर्चुअलाइजेशन की सहायता के लिए, वीटी-एक्स और [[ सुरक्षित वर्चुअल मशीन ]] रिंग 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> | ||
</ब्लॉककोट> | </ब्लॉककोट> | ||
== | == प्रिविलेज स्तर == | ||
{{main |विशेषाधिकार (कम्प्यूटिंग)}} | {{main |विशेषाधिकार (कम्प्यूटिंग)}} | ||
X86 निर्देश सेट में | X86 निर्देश सेट में प्रिविलेज स्तर, वर्तमान में प्रोसेसर पर चल रहे प्रोग्राम के एक्सेस को मेमोरी क्षेत्रों, I/O पोर्ट और विशेष निर्देश जैसे संसाधनों तक नियंत्रित करता है। 4 प्रिविलेज स्तर होते हैं| अधिकांश आधुनिक ऑपरेटिंग सिस्टम कर्नेल के लिए स्तर 0 का उपयोग करते हैं और एप्लिकेशन प्रोग्राम के लिए स्तर 3 का उपयोग करते हैं। स्तर n के लिए उपलब्ध कोई भी संसाधन 0 से n स्तरों के लिए भी उपलब्ध होता है, इसलिए प्रिविलेज स्तर, रिंग होते हैं। जब कम विशेषाधिकार प्राप्त प्रक्रिया उच्च विशेषाधिकार प्राप्त प्रक्रिया पर एक्सेस का प्रयास करती है, तो OS को सामान्य सुरक्षा दोष अपवाद की सूचना दी जाती है। | ||
सभी | सभी प्रिविलेज स्तरों का उपयोग करना आवश्यक नहीं है। माइक्रोसॉफ्ट विंडोज, मैकओएस, [[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> | ||
8086 में वास्तविक मोड प्रोग्राम 0 स्तर (उच्चतम | 8086 में वास्तविक मोड प्रोग्राम 0 स्तर (उच्चतम प्रिविलेज स्तर) पर निष्पादित होते हैं जबकि 8086 में वर्चुअल मोड 3 स्तर पर सभी प्रोग्राम निष्पादित करता है।<ref>{{cite book |author=Sunil Mathur |title=Microprocessor 8086: Architectu | ||