CPU प्रिविलेज रिंग्स: रिंग 1 और 2 का उपयोग क्यों नहीं किया जाता है?


102

X86 CPU विशेषाधिकार के छल्ले के बारे में कुछ प्रश्न:

  • अधिकांश ऑपरेटिंग सिस्टम द्वारा उपयोग किए जाने वाले छल्ले 1 और 2 क्यों नहीं हैं? क्या यह सिर्फ अन्य आर्किटेक्चर के साथ कोड संगतता बनाए रखने के लिए है, या एक बेहतर कारण है?

  • क्या कोई ऑपरेटिंग सिस्टम है जो वास्तव में उन छल्लों का उपयोग करता है? या वे पूरी तरह से अप्रयुक्त हैं?


इस मदद कर सकता है compgroups.net/comp.lang.asm.x86/Privilege-levels-1-and-2
Alexius

जवाबों:


111

एक हॉबीस्ट ऑपरेटिंग सिस्टम लेखक के रूप में, मैंने पाया कि क्योंकि पेजिंग (आधुनिक सुरक्षा मॉडल का एक प्रमुख हिस्सा) में केवल विशेषाधिकार प्राप्त (रिंग 0,1,2) और अनप्रविलेज की अवधारणा है, तो रिंग 1 और 2 का लाभ बहुत कम था।

1 और 2 के छल्ले वाले इंटेल में इंटेल का इरादा डिवाइस चालकों को उस स्तर पर रखने के लिए है, इसलिए वे विशेषाधिकार प्राप्त हैं, लेकिन कुछ कर्नेल कोड से अलग हैं।

रिंग्स 1 और 2 एक तरह से "ज्यादातर" विशेषाधिकार प्राप्त हैं। वे पर्यवेक्षक पृष्ठों तक पहुंच सकते हैं, लेकिन अगर वे विशेषाधिकार प्राप्त निर्देश का उपयोग करने का प्रयास करते हैं, तो वे अभी भी रिंग 3 की तरह जीपीएफ करेंगे। इसलिए यह ड्राइवरों के लिए एक बुरी जगह नहीं है क्योंकि इंटेल की योजना है ...

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


28
WHOA VirtualBox रिंग 1 का उपयोग करता है ?! यह शुद्ध अजीब है !! जानकारी के लिए बहुत बहुत धन्यवाद, यह एक महान जवाब है! +1
user541686

10
ओएस / 2 ने I / O कोड के लिए रिंग 2 का बड़े पैमाने पर उपयोग किया। यही कारण है कि वर्चुअलाइजेशन करना इतना कठिन है।
किनोकिजुफ

से superuser.com/questions/1402537/... : "चल रहा अंगूठी अंगूठी 1 में 0 कोड, अतिरिक्त अनुदेश दोष का एक बहुत का कारण बनता है के रूप में अंगूठी 1 किसी भी विशेषाधिकार प्राप्त निर्देश, अमल करने के लिए जो अतिथि की रिंग -0 बहुत सारे शामिल अनुमति नहीं है प्रत्येक के साथ। इन दोषों में, VMM को वांछित व्यवहार को प्राप्त करने के लिए कोड में कदम रखना चाहिए और अनुकरण करना चाहिए। जबकि यह काम करता है, इन हजारों दोषों का अनुकरण करना बहुत महंगा है और वर्चुअलाइज्ड अतिथि के प्रदर्शन को गंभीर रूप से प्रभावित करता है। "
डस्टिन Oprea

24

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


7

रिंग सिक्योरिटी पर विकिपीडिया के पेज के अनुसार , रिंग 1 और 2 का इस्तेमाल ड्राइवरों (रिंग 1), गेस्ट ऑपरेटिंग सिस्टम (रिंग 1) और i / o विशेषाधिकार प्राप्त कोड (रिंग 2) के लिए किया जाता है, हाइपरवाइजर -1/0 में बैठते हैं (निर्भर करता है) हाइपर-विज़ोर) 1 नहीं जैसा कि मैंने पहले कहा था।

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


1
मुझे लगता है कि आप -कहीं चूक गए । क्या आपको यकीन है कि हाइपरविजर्स रिंग 1 का उपयोग करते हैं?
user541686

हे, सोच नहीं था, -1 में हाइपर-
विज़र्स

4
विंडोज़ केवल दो रिंगों का उपयोग करता है क्योंकि इसे अन्य प्रोसेसर (अब डिफेक्ट) पर चलाने के लिए डिज़ाइन किया गया था जिसमें केवल दो थे।
डेविड

मेरे दिमाग में, स्विचिंग मोड्स के लिए बहुत कम ओवरहेड है। जो मैं समझता हूं, उससे केवल हार्डवेयर ही सीपीयू को अधिक विशेषाधिकार प्राप्त कर सकते हैं (जैसे कि आईओ-समाप्त होने वाली रुकावट)। यदि यह विशेषाधिकार स्विचिंग हार्डवेयर में होता है, तो मुझे संदेह है कि यह रिंग स्विच करने के लिए गैर-तुच्छ है। मुझे लगता है कि विंडोज, लिनक्स, या मैकओएस केवल दो सबसे चरम छल्ले का उपयोग करते हैं क्योंकि आर्किटेक्ट ओएस-होस्टेड वर्चुअलाइजेशन जैसी चीजों के लिए मध्य रिंग आरक्षित करते हैं।
नैट सीमर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.