X86 वर्चुअलाइजेशन
x86 वर्चुअलाइजेशन x86/x86-64 सीपीयू पर हार्डवेयर-समर्थित वर्चुअलाइजेशन क्षमताओं का उपयोग है।
1990 के दशक के अंत में जटिल सॉफ्टवेयर तकनीकों द्वारा x86 वर्चुअलाइजेशन प्राप्त किया गया था, जो उचित प्रदर्शन प्राप्त करने के दौरान प्रोसेसर की हार्डवेयर-समर्थित वर्चुअलाइजेशन क्षमताओं की कमी की भरपाई के लिए आवश्यक था। 2005 और 2006 में, Intel (Intel वर्चुअलाइजेशन (VT-x)|VT-x) और उन्नत माइक्रो डिवाइसेस (#AMD वर्चुअलाइजेशन (AMD-V)|AMD-V) दोनों ने सीमित हार्डवेयर-असिस्टेड वर्चुअलाइजेशन समर्थन प्रस्तुत किया जो सरल वर्चुअलाइजेशन सॉफ़्टवेयर की अनुमति देता है परन्तु कम गति लाभ की प्रस्तुतकश की।[1] ग्रेटर हार्डवेयर समर्थन, जिसने पर्याप्त गति सुधार की अनुमति दी, पश्चात के प्रोसेसर मॉडल के साथ आया।
सॉफ्टवेयर आधारित वर्चुअलाइजेशन
निम्नलिखित चर्चा केवल x86 आर्किटेक्चर संरक्षित मोड के वर्चुअलाइजेशन पर केंद्रित है।
संरक्षित मोड में ऑपरेटिंग सिस्टम कर्नेल एक उच्च विशेषाधिकार जैसे सुरक्षा रिंग 0 पर चलता है, और अनुप्रयोग कम विशेषाधिकार जैसे रिंग 3 पर चलता है।[citation needed] सॉफ़्टवेयर-आधारित वर्चुअलाइज़ेशन में, एक होस्ट OS की हार्डवेयर तक सीधी पहुँच होती है, जबकि अतिथि OS की हार्डवेयर तक सीमित पहुँच होती है, बिल्कुल होस्ट OS के किसी अन्य एप्लिकेशन की तरह। इस सीमा को पार करने के लिए x86 सॉफ्टवेयर-आधारित वर्चुअलाइजेशन में उपयोग किए जाने वाले एक दृष्टिकोण को रिंग डेप्रिविलेजिंग कहा जाता है, जिसमें अतिथि OS को 0 से अधिक (कम विशेषाधिकार प्राप्त) रिंग पर चलाना शामिल है।[2] संरक्षित मोड के वर्चुअलाइजेशन को संभव बनाने वाली तीन तकनीकें:
- बाइनरी अनुवाद का उपयोग रिंग 3 निर्देशों के संदर्भ में कुछ रिंग 0 निर्देशों को फिर से लिखने के लिए किया जाता है, जैसे कि इंटरप्ट फ़्लैग # सेटिंग और क्लियरिंग, जो अन्यथा चुपचाप विफल हो जाएगा या रिंग 0 के ऊपर निष्पादित होने पर अलग व्यवहार करेगा,[3][4]: 3 क्लासिक हार्डवेयर-असिस्टेड वर्चुअलाइजेशन | ट्रैप-एंड-एमुलेट वर्चुअलाइजेशन को असंभव बनाना।[4]: 1 [5] प्रदर्शन में सुधार करने के लिए, अनुवादित बुनियादी ब्लॉक को एक सुसंगत तरीके से कैश करने की आवश्यकता होती है जो कोड पैचिंग (उदाहरण के लिए वीएक्सडी में प्रयुक्त), अतिथि ओएस द्वारा पृष्ठों का पुन: उपयोग, या स्वयं-संशोधित कोड का पता लगाता है।[6]
- एक प्रोसेसर द्वारा उपयोग की जाने वाली कई प्रमुख डेटा संरचनाओं को छाया स्मृति होना चाहिए। क्योंकि अधिकांश ऑपरेटिंग सिस्टम पृष्ठांकित पृष्ठांकित आभासी स्मृति उपयोग करते हैं, और अतिथि OS को मेमोरी प्रबंधन इकाई तक सीधे पहुंच प्रदान करने का अर्थ सूत्र द्वारा नियंत्रण का नुकसान होगा, x86 MMU के कुछ कार्यों को अतिथि OS के लिए सॉफ़्टवेयर में डुप्लीकेट करने की आवश्यकता होती है। तकनीक को शैडो पेज टेबल के रूप में जाना जाता है।[7]: 5 [4]: 2 इसमें अतिथि ओएस को वास्तविक पृष्ठ तालिका प्रविष्टियों तक पहुंच के प्रयासों को फंसाने और सॉफ्टवेयर के बजाय उन्हें अनुकरण करने से इनकार करना शामिल है। x86 आर्किटेक्चर प्रोसेसर में खंड वर्णनकर्ता को स्टोर करने के लिए हिडन स्टेट का उपयोग करता है, इसलिए एक बार सेगमेंट डिस्क्रिप्टर को प्रोसेसर में लोड कर दिया जाता है, जिस मेमोरी से उन्हें लोड किया गया है वह अधिलेखित हो सकता है और डिस्क्रिप्टर को प्रोसेसर से वापस लाने का कोई तरीका नहीं है। . इसलिए शैडो डिस्क्रिप्टर टेबल का उपयोग अतिथि OS द्वारा डिस्क्रिप्टर टेबल में किए गए परिवर्तनों को ट्रैक करने के लिए किया जाना चाहिए।[5]* आई/ओ डिवाइस एमुलेशन: अतिथि OS पर असमर्थित डिवाइस को एक एमुलेटर द्वारा अनुकरण किया जाना चाहिए जो होस्ट OS में चलता है।[8]
आईबीएम सिस्टम/370 जैसे मूल रूप से वर्चुअलाइज करने योग्य आर्किटेक्चर पर चलने वाले वीएम की तुलना में इन तकनीकों में एमएमयू वर्चुअलाइजेशन समर्थन की कमी के कारण कुछ प्रदर्शन ओवरहेड होते हैं।[4]: 10 [9]: 17 and 21
पारंपरिक मेनफ्रेम पर, क्लासिक हाइपरवाइजर#क्लासिफिकेशन हाइपरवाइजर सेल्फ-स्टैंडिंग था और यह किसी भी ऑपरेटिंग सिस्टम पर निर्भर नहीं था या किसी उपयोगकर्ता एप्लिकेशन को ही चलाता था। इसके विपरीत, पहले x86 वर्चुअलाइजेशन उत्पाद वर्कस्टेशन कंप्यूटरों के उद्देश्य से थे, और होस्ट ओएस (टाइप 2 हाइपरविजर) के तहत चलने वाले कर्नेल मॉड्यूल में हाइपरविजर को एम्बेड करके होस्ट ओएस के अंदर अतिथि ओएस चलाते थे।[8] कुछ विवाद रहा है कि क्या बिना हार्डवेयर सहायता वाला x86 आर्किटेक्चर वर्चुअलाइज करने योग्य है जैसा कि पोपेक और गोल्डबर्ग वर्चुअलाइजेशन आवश्यकताओं द्वारा वर्णित है। VMware के शोधकर्ताओं ने 2006 में प्रोग्रामिंग लैंग्वेज और ऑपरेटिंग सिस्टम पेपर के लिए आर्किटेक्चरल सपोर्ट पर अंतर्राष्ट्रीय सम्मेलन में बताया कि उपरोक्त तकनीकों ने पोपेक और गोल्डबर्ग के तीन मानदंडों को पूरा करने के अर्थ में x86 प्लेटफॉर्म को वर्चुअलाइज करने योग्य बनाया, हालांकि क्लासिक ट्रैप-एंड- द्वारा नहीं। तकनीक का अनुकरण करें।[4]: 2–3
डेनाली (ऑपरेटिंग सिस्टम), L4 माइक्रोकर्नेल परिवार, और Xen जैसी अन्य प्रणालियों द्वारा एक अलग मार्ग लिया गया, जिसे पैरावर्चुअलाइजेशन के रूप में जाना जाता है, जिसमें परिणामी वर्चुअल मशीन पर चलने के लिए ऑपरेटिंग सिस्टम को में porting करना शामिल है, जो वास्तविक x86 निर्देश के भागों को लागू नहीं करता है। सेट जो वर्चुअलाइज करना मुश्किल है। Paravirtualized आई/ओ के महत्वपूर्ण प्रदर्शन लाभ हैं जैसा कि ऑपरेटिंग सिस्टम सिद्धांतों'03 Xen पेपर पर मूल संगोष्ठी में प्रदर्शित किया गया है।[10] x86-64 (X86-64#AMD64) के प्रारंभिक संस्करण ने लंबे मोड में विभाजन समर्थन की कमी के कारण केवल सॉफ्टवेयर के पूर्ण वर्चुअलाइजेशन की अनुमति नहीं दी, जिससे हाइपरविजर की मेमोरी की सुरक्षा असंभव हो गई, विशेष रूप से सुरक्षा ट्रैप हैंडलर का जो अतिथि कर्नेल एड्रेस स्पेस में चलता है।[11][12]: 11 and 20 संशोधन डी और पश्चात में 64-बिट एएमडी प्रोसेसर (एक नियम के रूप में, जो 90 एनएम या उससे कम में निर्मित हैं) ने लंबे मोड में विभाजन के लिए बुनियादी समर्थन जोड़ा, जिससे बाइनरी के माध्यम से 64-बिट होस्ट में 64-बिट अतिथि चलाना संभव हो गया। अनुवाद। Intel ने अपने x86-64 कार्यान्वयन (Intel 64) में विभाजन समर्थन नहीं जोड़ा, जिससे Intel सीपीयू पर 64-बिट सॉफ़्टवेयर-केवल वर्चुअलाइज़ेशन असंभव हो गया, परन्तु Intel VT-x समर्थन 64-बिट हार्डवेयर असिस्टेड वर्चुअलाइज़ेशन को Intel प्लेटफ़ॉर्म पर संभव बनाता है।[13][14]: 4
कुछ प्लेटफार्मों पर, 32-बिट होस्ट ओएस पर 64-बिट अतिथि चलाना संभव है यदि अंतर्निहित प्रोसेसर 64-बिट है और आवश्यक वर्चुअलाइजेशन एक्सटेंशन का समर्थन करता है।
हार्डवेयर-असिस्टेड वर्चुअलाइजेशन
2005 और 2006 में, इंटेल और उन्नत माइक्रो डिवाइसेस (स्वतंत्र रूप से काम कर रहे) ने x86 आर्किटेक्चर के लिए नए x86# एक्सटेंशन बनाए। x86 हार्डवेयर वर्चुअलाइजेशन की पहली पीढ़ी ने विशेषाधिकार प्राप्त निर्देशों के मुद्दे को संबोधित किया। वर्चुअलाइज्ड सिस्टम मेमोरी के कम प्रदर्शन के मुद्दे को मेमोरी मैनेजमेंट यूनिट वर्चुअलाइजेशन के साथ संबोधित किया गया था जिसे पश्चात में चिपसेट में जोड़ा गया था।
सेंट्रल प्रोसेसिंग यूनिट
वर्चुअल 8086 मोड
Intel 80286#OS समर्थन के साथ Intel 80286 संरक्षित मोड पर आधारित, जो अपने आप में समवर्ती DOS अनुप्रयोगों को अच्छी तरह से चलाने के लिए पर्याप्त नहीं था, Intel ने अपने Intel 80386 चिप में वर्चुअल 8086 मोड प्रस्तुत किया, जिसने 386 और पश्चात में वर्चुअलाइज्ड 8086 प्रोसेसर की प्रस्तुतकश की चिप्स। संरक्षित मोड को वर्चुअलाइज करने के लिए हार्डवेयर समर्थन, हालांकि, 20 साल पश्चात उपलब्ध हुआ।[15]
{{Anchor|AMD-V}एएमडी वर्चुअलाइजेशन (एएमडी-वी)
![](https://upload.wikimedia.org/wikipedia/commons/thumb/6/66/AMD_Phenom_die_equalized.png/300px-AMD_Phenom_die_equalized.png)
एएमडी ने अपनी पहली पीढ़ी के वर्चुअलाइजेशन एक्सटेंशन को कोड नाम पैसिफिक के तहत विकसित किया, और शुरू में उन्हें एएमडी सिक्योर वर्चुअल मशीन (एसवीएम) के रूप में प्रकाशित किया,[16] परन्तु पश्चात में ट्रेडमार्क एएमडी वर्चुअलाइजेशन, संक्षिप्त रूप से एएमडी-वी के तहत उनका विपणन किया।
23 मई 2006 को, एएमडी ने एथलॉन 64 (एएमडी एथलॉन 64 माइक्रोप्रोसेसरों की सूची # ऑरलियन्स (एफ2 और एफ3, 90 एनएम)| ऑरलियन्स), 64 वस्त्रों का अपमान करना (एएमडी एथलॉन 64 माइक्रोप्रोसेसरों की सूची # विंडसर (एफ2 और एफ3, 90 एनएम) | विंडसर) और एथलॉन 64 एफएक्स (एएमडी एथलॉन 64 माइक्रोप्रोसेसरों की सूची # विंडसर (एफ2, 90 एनएम) | विंडसर) इस तकनीक का समर्थन करने वाले पहले एएमडी प्रोसेसर के रूप में।
एएमडी-वी क्षमता एथलॉन 64 और एथलॉन 64 एक्स2 परिवार के प्रोसेसर में सॉकेट AM2 , एएमडी ट्यूरियन # ट्यूरियन 64 एक्स2, और ओपर्टन दूसरी पीढ़ी पर संशोधन एफ या जी के साथ भी है।[17] और तीसरी पीढ़ी,[18] AMD Phenom और Phenom II प्रोसेसर। AMD Accelerated Processing Unit प्रोसेसर AMD-V को सपोर्ट करते हैं। एएमडी-वी किसी भी सॉकेट 939 प्रोसेसर द्वारा समर्थित नहीं है। एकमात्र Sempron प्रोसेसर जो इसका समर्थन करते हैं, वे हैं APUs और AMD Sempron माइक्रोप्रोसेसरों की सूची# ह्यूरॉन (65 nm, लो पावर), AMD Sempron माइक्रोप्रोसेसरों की सूची# Regor (सॉकेट AM3, डुअल-कोर, C3, 45 एनएम), AMD Sempron की सूची माइक्रोप्रोसेसर# सरगास (सॉकेट AM3, सिंगल-कोर, C2 और C3, 45 एनएम) डेस्कटॉप सीपीयू।
फैमिली 0x10 बार्सेलोना लाइन से शुरू होने वाले AMD Opteron सीपीयूs, और Phenom II सीपीयूs, रैपिड वर्चुअलाइजेशन इंडेक्सिंग नामक दूसरी पीढ़ी की हार्डवेयर वर्चुअलाइजेशन तकनीक का समर्थन करते हैं (पहले इसके विकास के दौरान नेस्टेड पेज टेबल्स के रूप में जाना जाता था), पश्चात में Intel द्वारा विस्तारित पृष्ठ तालिका ्स (EPT) के रूप में अपनाया गया। .
2019 तक, सभी ज़ेन (माइक्रोआर्किटेक्चर)-आधारित एएमडी प्रोसेसर एएमडी-वी का समर्थन करते हैं।
AMD-V के लिए सीपीयू फ्लैग (x86) svm है। इसे dmesg या sysctl के माध्यम से BSD ऑपरेटिंग सिस्टम की तुलना में और Linux के माध्यम से चेक किया जा सकता है /proc/सीपीयूinfo
.[19]AMD-V के निर्देशों में VMRUN, VMLOAD, VMSAVE, CLGI, VMMCALL, INVLPGA, SKINIT और STGI शामिल हैं।
कुछ मदरबोर्ड के साथ, एप्लिकेशन द्वारा इसका उपयोग करने से पहले उपयोगकर्ताओं को BIOS सेटअप में AMD SVM सुविधा को सक्षम करना होगा।[20]
इंटेल वर्चुअलाइजेशन (वीटी-एक्स)
पहले कोडनाम वेंडरपूल, VT-x x86 प्लेटफॉर्म पर वर्चुअलाइजेशन के लिए इंटेल की तकनीक का प्रतिनिधित्व करता है। 13 नवम्बर 2005 को, Intel ने VT-x का समर्थन करने वाले पहले Intel प्रोसेसर के रूप में Pentium 4 के दो मॉडल (मॉडल 662 और 672) जारी किए। वीटी-एक्स क्षमता के लिए सीपीयू फ्लैग वीएमएक्स है; लिनक्स में, इसे के माध्यम से चेक किया जा सकता है /proc/सीपीयूinfo
, या macOS के माध्यम से sysctl machdep.सीपीयू.features
.[19]
VMX वर्चुअल मशीन एक्सटेंशन के लिए खड़ा है, जो 13 नए निर्देश जोड़ता है: VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXOFF, VMXON, INVEPT, INVVPID, और VMFUNC।[21] ये निर्देश एक आभासी निष्पादन मोड में प्रवेश करने और बाहर निकलने की अनुमति देते हैं जहां अतिथि OS स्वयं को पूर्ण विशेषाधिकार (रिंग 0) के साथ चलने वाला मानता है, परन्तु होस्ट OS सुरक्षित रहता है।
As of 2015[update], लगभग सभी नए सर्वर, डेस्कटॉप और मोबाइल इंटेल प्रोसेसर प्राथमिक अपवाद के रूप में कुछ इंटेल एटम प्रोसेसर के साथ वीटी-एक्स का समर्थन करते हैं।[22] कुछ मदरबोर्ड के साथ, उपयोगकर्ताओं को Intel के VT-x फीचर को BIOS सेटअप में सक्षम करना चाहिए, इससे पहले कि एप्लिकेशन इसका उपयोग कर सकें।[23] इंटेल ने एक्सटेंडेड पेज टेबल्स (EPT) को शामिल करना शुरू किया,[24] पेज-टेबल वर्चुअलाइजेशन के लिए एक तकनीक,[25] नेहलेम (माइक्रोआर्किटेक्चर) वास्तुकला के पश्चात से,[26][27] 2008 में जारी किया गया। 2010 में, वेस्टमेयर (माइक्रोआर्किटेक्चर) ने तार्किक प्रोसेसर को सीधे वास्तविक मोड में लॉन्च करने के लिए समर्थन जोड़ा – अप्रतिबंधित अतिथि नामक सुविधा, जिसके लिए कार्य करने के लिए EPT की आवश्यकता होती है।[28][29] हैसवेल (माइक्रोआर्किटेक्चर) माइक्रोआर्किटेक्चर (2013 में घोषित) के पश्चात से, इंटेल ने वीएमसीएस शैडोइंग को एक ऐसी तकनीक के रूप में शामिल करना शुरू कर दिया है जो वीएमएम के वर्चुअलाइजेशन#नेस्टेड वर्चुअलाइजेशन को तेज करता है।[30] वर्चुअल मशीन कंट्रोल स्ट्रक्चर (VMCS) मेमोरी में एक डेटा संरचना है जो प्रति VM में एक बार मौजूद होता है, जबकि इसे VMM द्वारा प्रबंधित किया जाता है। विभिन्न वीएम के बीच निष्पादन संदर्भ के प्रत्येक परिवर्तन के साथ, वीएम के वर्चुअल प्रोसेसर की स्थिति को परिभाषित करते हुए, वीएमसीएस को वर्तमान वीएम के लिए बहाल किया जाता है।[31] जैसे ही एक से अधिक वीएमएम या नेस्टेड वीएमएम का उपयोग किया जाता है, एक समस्या एक तरह से प्रकट होती है जो आवश्यक छाया पृष्ठ तालिका प्रबंधन के आविष्कार के समान होती है, जैसा कि #SWBASED वर्णित है। ऐसे मामलों में, VMCS को कई बार (नेस्टिंग के मामले में) शैडो करने की आवश्यकता होती है और प्रोसेसर द्वारा कोई हार्डवेयर समर्थन नहीं होने की स्थिति में सॉफ्टवेयर में आंशिक रूप से लागू किया जाता है। छाया VMCS को अधिक कुशल बनाने के लिए, Intel ने VMCS शैडोइंग के लिए हार्डवेयर समर्थन लागू किया।[32]
वर्चुअलाइजेशन के माध्यम से (वीआईए वीटी)
VIA नैनो 3000 सीरीज प्रोसेसर और उच्च समर्थन VIA VT वर्चुअलाइजेशन तकनीक Intel VT-x के साथ संगत है।[33] EPT, Zhaoxin ZX-C में मौजूद है, जो VIA नैनो माइक्रोप्रोसेसरों की सूची #QuadCore-E|VIA QuadCore-E और VIA Eden माइक्रोप्रोसेसरों की सूची #Eden C के समान है, जो VIA नैनो माइक्रोप्रोसेसरों की नैनो सूची #Nano C के समान है।[34]
{{Anchor|INTERRUPT}इंटरप्ट वर्चुअलाइजेशन (AMD AVIC और Intel APICv)
2012 में, AMD ने अपने उन्नत वर्चुअल इंटरप्ट कंट्रोलर (AVIC) की घोषणा की, जो वर्चुअलाइजेशन वातावरण में ओवरहेड कमी को लक्षित करता है।[35] यह तकनीक, जैसा कि घोषित किया गया है, उन्नत प्रोग्रामेबल इंटरप्ट कंट्रोलर का समर्थन नहीं करती है।[36] 2016 में, AVIC AMD परिवार के 15h मॉडल 6Xh पर उपलब्ध है (कैरिज़ो) प्रोसेसर और नए।[37] इसके अलावा 2012 में, इंटेल ने इंटरप्ट और एडवांस्ड प्रोग्रामेबल इंटरप्ट कंट्रोलर वर्चुअलाइजेशन के लिए एक समान तकनीक की घोषणा की, जिसकी घोषणा के समय कोई ब्रांड नाम नहीं था।[38] पश्चात में, इसे APIC वर्चुअलाइजेशन (APICv) के रूप में ब्रांडेड किया गया।[39] और यह इंटेल सीपीयू की आइवी ब्रिज (माइक्रोआर्किटेक्चर) श्रृंखला में व्यावसायिक रूप से उपलब्ध हो गया, जिसे Xeon E5-26xx v2 (2013 के अंत में लॉन्च किया गया) और Xeon E5-46xx v2 (2014 की शुरुआत में लॉन्च) के रूप में बेचा गया।[40]
ग्राफिक्स प्रोसेसिंग यूनिट
ग्राफिक्स वर्चुअलाइजेशन x86 आर्किटेक्चर का हिस्सा नहीं है। Intel ग्राफिक्स वर्चुअलाइजेशन टेक्नोलॉजी (GVT) ग्राफ़िक्स वर्चुअलाइज़ेशन को नवीनतम जेन ग्राफ़िक्स आर्किटेक्चर के भाग के रूप में प्रदान करता है। हालांकि AMD Accelerated Processing Unit x86-64 निर्देश सेट को लागू करता है, वे AMD के अपने ग्राफिक्स आर्किटेक्चर (TeraScale (माइक्रोआर्किटेक्चर), ग्राफिक्स कोर अगला और RDNA (माइक्रोआर्किटेक्चर)) को लागू करते हैं जो ग्राफिक्स वर्चुअलाइजेशन का समर्थन नहीं करते हैं।[citation needed] Larrabee (microआर्किटेक्चर ) x86 पर आधारित एकमात्र ग्राफिक्स माइक्रोआर्किटेक्चर था, परन्तु संभवतः इसमें ग्राफिक्स वर्चुअलाइजेशन के लिए समर्थन शामिल नहीं था।
चिपसेट
मेमोरी और आई/ओ वर्चुअलाइजेशन चिपसेट द्वारा किया जाता है।[41] आमतौर पर इन सुविधाओं को BIOS द्वारा सक्षम किया जाना चाहिए, जो उनका समर्थन करने में सक्षम होना चाहिए और उनका उपयोग करने के लिए भी सेट होना चाहिए।
आई/ओ MMU वर्चुअलाइजेशन (AMD-Vi और Intel VT-d)
एक इनपुट/आउटपुट मेमोरी मैनेजमेंट यूनिट (IOMMU) अतिथि आभासी मशीन ों को प्रत्यक्ष मेमोरी एक्सेस और बाधा डालना रीमैपिंग के माध्यम से ईथरनेट, त्वरित ग्राफिक्स कार्ड और हार्ड-ड्राइव नियंत्रकों जैसे परिधीय उपकरणों का सीधे उपयोग करने की अनुमति देता है। इसे कभी-कभी पीसीआई पासथ्रू कहा जाता है।[42]
एक IOMMU ऑपरेटिंग सिस्टम को बाउंस बफ़र्स को समाप्त करने की अनुमति देता है जिसकी आवश्यकता उन परिधीय उपकरणों के साथ संवाद करने के लिए होती है जिनके मेमोरी एड्रेस स्पेस ऑपरेटिंग सिस्टम के मेमोरी एड्रेस स्पेस से छोटे होते हैं, मेमोरी एड्रेस ट्रांसलेशन का उपयोग करके। उसी समय, एक आईओएमएमयू ऑपरेटिंग सिस्टम और हाइपरविजर को डीएमए हमले से बग्गी या दुर्भावनापूर्ण हार्डवेयर को रोकने के लिए भी अनुमति देता है।
AMD और Intel दोनों ने अपने IOMMU विनिर्देशों को जारी किया है:
- AMD की आई/ओ वर्चुअलाइजेशन तकनीक, AMD-Vi, जिसे मूल रूप से IOMMU कहा जाता है[43]
- निर्देशित आई/ओ (VT-d) के लिए इंटेल की वर्चुअलाइजेशन तकनीक,[44] कोर 2 आर्किटेक्चर के पश्चात से अधिकांश हाई-एंड (परन्तु सभी नहीं) नए इंटेल प्रोसेसर में शामिल हैं।[45]
सीपीयू समर्थन के अलावा, मदरबोर्ड चिपसेट और सिस्टम फ़र्मवेयर (BIOS या एकीकृत एक्सटेंसिबल फर्मवेयर इंटरफ़ेस) दोनों को IOMMU आई/ओ वर्चुअलाइज़ेशन कार्यक्षमता को प्रयोग करने योग्य बनाने के लिए पूरी तरह से समर्थन करने की आवश्यकता है। फ़ंक्शन स्तर रीसेट (FLR) का समर्थन करने वाले केवल पारंपरिक पीसीआई या पीसीआई एक्सप्रेस उपकरणों को इस तरह से वर्चुअलाइज किया जा सकता है, क्योंकि यह वर्चुअल मशीनों के बीच विभिन्न पीसीआई डिवाइस फ़ंक्शन को पुन: असाइन करने के लिए आवश्यक है।[46][47] यदि असाइन किया जाने वाला डिवाइस संदेश संकेतित व्यवधान (एमएसआई) का समर्थन नहीं करता है, तो इसे असाइनमेंट के लिए अन्य डिवाइसों के साथ इंटरप्ट लाइनों को साझा नहीं करना चाहिए।[48] PCI/PCI-X-to-पीसीआईएक्सप्रेस ब्रिज के पीछे रूट किए गए सभी पारंपरिक पीसीआईउपकरणों को केवल एक बार अतिथि वर्चुअल मशीन को सौंपा जा सकता है; पीसीआई एक्सप्रेस उपकरणों पर ऐसा कोई प्रतिबंध नहीं है।
नेटवर्क वर्चुअलाइजेशन (वीटी-सी)
- कनेक्टिविटी के लिए इंटेल की वर्चुअलाइजेशन टेक्नोलॉजी (वीटी-सी)।[49]
पीसीआई-SIG सिंगल रूट आई/ओ वर्चुअलाइजेशन (एसआर-आईओवी)
पीसीआई-SIG सिंगल रूट आई/ओ वर्चुअलाइजेशन (एसआर-आईओवी) पीसीआई-SIG द्वारा मानकीकृत पीसीआईExpress (पीसीआईई) नेटिव हार्डवेयर पर आधारित सामान्य (गैर-x86 विशिष्ट) आई/ओ वर्चुअलाइजेशन विधियों का सेट प्रदान करता है:[50]
- एड्रेस ट्रांसलेशन सर्विसेज (एटीएस) एड्रेस ट्रांसलेशन के जरिए पीसीआई एक्सप्रेस में नेटिव आईओवी को सपोर्ट करती है। ऐसे अनुवादों को कॉन्फ़िगर करने के लिए नए लेन-देन के लिए समर्थन की आवश्यकता होती है।
- सिंगल-रूट इनपुट/आउटपुट वर्चुअलाइजेशन | सिंगल-रूट आईओवी (एसआर-आईओवी या एसआरआईओवी) मौजूदा सिंगल-रूट कॉम्प्लेक्स पीसीआई एक्सप्रेस टोपोलॉजी में देशी आईओवी का समर्थन करता है। इसे कई वर्चुअलाइज्ड कॉन्फ़िगरेशन स्पेस को कॉन्फ़िगर करने के लिए नई डिवाइस क्षमताओं के लिए समर्थन की आवश्यकता है।[51]
- मल्टी-रूट आईओवी (एमआर-आईओवी) एसआर-आईओवी पर निर्माण करके नए टोपोलॉजी (उदाहरण के लिए, ब्लेड सर्वर) में देशी आईओवी का समर्थन करता है ताकि एक सामान्य पीसीआई एक्सप्रेस पदानुक्रम साझा करने वाले कई रूट कॉम्प्लेक्स प्रदान किए जा सकें।
एसआर-आईओवी में, इनमें से सबसे सामान्य, एक होस्ट वीएमएम समर्थित डिवाइस को उनके कॉन्फ़िगरेशन स्पेस की वर्चुअल शैडो बनाने और आवंटित करने के लिए कॉन्फ़िगर करता है ताकि वर्चुअल मशीन अतिथि ऐसे शैडो डिवाइस संसाधनों को सीधे कॉन्फ़िगर और एक्सेस कर सकें।[52] एसआर-आईओवी सक्षम होने के साथ, वर्चुअलाइज्ड नेटवर्क इंटरफेस सीधे मेहमानों के लिए सुलभ हैं,[53] वीएमएम की भागीदारी से बचना और परिणामस्वरूप उच्च समग्र प्रदर्शन;[51]उदाहरण के लिए, एसआर-आईओवी नासा के वर्चुअलाइज्ड डेटासेंटर में नंगी मशीन नेटवर्क बैंडविड्थ का 95% से अधिक प्राप्त करता है[54] और अमेज़ॅन वेब सेवाओं में।[55][56]
यह भी देखें
- एप्लीकेशन वर्चुअलाइजेशन सॉफ्टवेयर की उपेक्षा
- प्लेटफॉर्म वर्चुअलाइजेशन सॉफ्टवेयर की उपेक्षा
- हार्डवेयर-असिस्टेड वर्चुअलाइजेशन
- हाइपरविजर
- आई/ओ वर्चुअलाइजेशन
- नेटवर्क वर्चुअलाइजेशन
- ओएस-स्तरीय वर्चुअलाइजेशन
- वर्चुअलाइजेशन विकास की समयरेखा
- आभासी मशीन
- आईओएमएमयू - सहायक हार्डवेयर की सूची
- द्वितीय स्तर का पता अनुवाद (एसएलएटी)
- संदेश संकेतित व्यवधान (एमएसआई)
संदर्भ
- ↑ A Comparison of Software and Hardware Techniques for x86 Virtualization, Keith Adams and Ole Agesen, VMware, ASPLOS’06 October 21–25, 2006, San Jose, California, USA Archived 2010-08-20 at the Wayback Machine"Surprisingly, we find that the first-generation hardware support rarely offers performance advantages over existing software techniques. We ascribe this situation to high VMM/guest transition costs and a rigid programming model that leaves little room for software flexibility in managing either the frequency or cost of these transitions.
- ↑ "इंटेल वर्चुअलाइजेशन टेक्नोलॉजी प्रोसेसर वर्चुअलाइजेशन एक्सटेंशन और इंटेल ट्रस्टेड एक्जीक्यूशन टेक्नोलॉजी" (PDF). Intel.com. 2007. Archived (PDF) from the original on 2015-05-21. Retrieved 2016-12-12.
- ↑ "USENIX Technical Program - Abstract - Security Symposium - 2000". Usenix.org. 2002-01-29. Archived from the original on 2010-06-10. Retrieved 2010-05-02.
- ↑ 4.0 4.1 4.2 4.3 4.4 "A Comparison of Software and Hardware Techniques for x86 Virtualization" (PDF). VMware. Archived (PDF) from the original on 20 August 2010. Retrieved 8 September 2010.
- ↑ 5.0 5.1 U.S. Patent 6,397,242
- ↑ U.S. Patent 6,704,925
- ↑ "Virtualization: architectural considerations and other evaluation criteria" (PDF). VMware. Archived (PDF) from the original on 6 February 2011. Retrieved 8 September 2010.
- ↑ 8.0 8.1 U.S. Patent 6,496,847
- ↑ "वीएमवेयर और हार्डवेयर असिस्ट टेक्नोलॉजी" (PDF). Archived (PDF) from the original on 2011-07-17. Retrieved 2010-09-08.
- ↑ "ज़ेन और वर्चुअलाइजेशन की कला" (PDF). Archived (PDF) from the original on 2014-09-29.
- ↑ "How retiring segmentation in AMD64 long mode broke VMware". Pagetable.com. 2006-11-09. Archived from the original on 2011-07-18. Retrieved 2010-05-02.
- ↑ "वीएमवेयर और सीपीयू वर्चुअलाइजेशन टेक्नोलॉजी" (PDF). VMware. Archived (PDF) from the original on 2011-07-17. Retrieved 2010-09-08.
- ↑ "VMware KB: Hardware and firmware requirements for 64bit guest operating systems". Kb.vmware.com. Archived from the original on 2010-04-19. Retrieved 2010-05-02.
- ↑ "Software and Hardware Techniques for x86 Virtualization" (PDF). Archived from the original (PDF) on 2010-01-05. Retrieved 2010-05-02.
- ↑ Yager, Tom (2004-11-05). "Sending software to do hardware's job | Hardware - InfoWorld". Images.infoworld.com. Archived from the original on 2014-10-18. Retrieved 2014-01-08.
- ↑ "33047_SecureVirtualMachineManual_3-0.book" (PDF). Archived (PDF) from the original on 2012-03-05. Retrieved 2010-05-02.
- ↑ "What are the main differences between Second-Generation AMD Opteron processors and first-generation AMD Opteron processors?". amd.com. Archived from the original on April 15, 2009. Retrieved 2012-02-04.
- ↑ "What virtualization enhancements do Quad-Core AMD Opteron processors feature?". amd.com. Archived from the original on April 16, 2009. Retrieved 2012-02-04.
- ↑ 19.0 19.1 To see if your processor supports hardware virtualization Archived 2012-11-25 at the Wayback Machine Intel 2012.
- ↑ Inc, QNAP Systems. "How to enable Intel VTx and AMD SVM? | QNAP". QNAP Systems, Inc. - Network Attached Storage (NAS) (in English). Retrieved 2020-12-23.
{{cite web}}
:|last=
has generic name (help) - ↑ INTEL (October 2019). "Intel® 64 and IA-32 Architectures Software Developer's Manual". intel.com. Intel Corporation. Retrieved 2020-01-04.
- ↑ "इंटेल वर्चुअलाइजेशन प्रौद्योगिकी सूची". Ark.intel.com. Archived from the original on 2010-10-27. Retrieved 2010-05-02.
- ↑ "Windows Virtual PC: Configure BIOS". Microsoft. Archived from the original on 2010-09-06. Retrieved 2010-09-08.
- ↑ Neiger, Gil; A. Santoni; F. Leung; D. Rodgers; R. Uhlig (2006). "Intel Virtualization Technology: Hardware Support for Efficient Processor Virtualization" (PDF). Intel Technology Journal. Intel. 10 (3): 167–178. doi:10.1535/itj.1003.01. Archived from the original (PDF) on 2012-09-25. Retrieved 2008-07-06.
- ↑ Gillespie, Matt (2007-11-12). "Best Practices for Paravirtualization Enhancements from Intel Virtualization Technology: EPT and VT-d". Intel Software Network. Intel. Archived from the original on 2008-12-26. Retrieved 2008-07-06.
- ↑ "First the Tick, Now the Tock: Next Generation Intel Microarchitecture (Nehalem)" (PDF) (Press release). Intel. Archived (PDF) from the original on 2009-01-26. Retrieved 2008-07-06.
- ↑ "Technology Brief: Intel Microarchitecture Nehalem Virtualization Technology" (PDF). Intel. 2009-03-25. Archived (PDF) from the original on 2011-06-07. Retrieved 2009-11-03.
- ↑ [1] "Intel added unrestricted guest mode on Westmere micro-architecture and later Intel CPUs, it uses EPT to translate guest physical address access to host physical address. With this mode, VMEnter without enable paging is allowed."
- ↑ [2] "If the “unrestricted guest” VM-execution control is 1, the “enable EPT” VM-execution control must also be 1"
- ↑ "4th-Gen Intel Core vPro Processors with Intel VMCS Shadowing" (PDF). Intel. 2013. Retrieved 2014-12-16.
- ↑ Understanding Intel Virtualization Technology (VT). Archived September 8, 2014, at the Wayback Machine Retrieved 2014-09-01
- ↑ The 'what, where and why' of VMCS shadowing. Archived 2014-09-03 at the Wayback Machine Retrieved 2014-09-01
- ↑ VIA Introduces New VIA Nano 3000 Series Processors Archived January 22, 2013, at the Wayback Machine
- ↑ "Notebook Solution: Kaixian ZX-C Processor + VX11PH Chipset" (PDF).
- ↑ Wei Huang, Introduction of AMD Advanced Virtual Interrupt Controller Archived 2014-07-14 at the Wayback Machine, XenSummit 2012
- ↑ Jörg Rödel (August 2012). "Next-generation Interrupt Virtualization for KVM" (PDF). AMD. Archived (PDF) from the original on 2016-03-04. Retrieved 2014-07-12.
- ↑ "[Xen-devel] [RFC PATCH 0/9] Introduce AMD SVM AVIC". www.mail-archive.com. Archived from the original on 2 February 2017. Retrieved 4 May 2018.
- ↑ Jun Nakajimaa (2012-12-13). "Reviewing Unused and New Features for Interrupt/APIC Virtualization" (PDF). Intel. Archived (PDF) from the original on 2015-04-21. Retrieved 2014-07-12.
- ↑ Khang Nguyen (2013-12-17). "APIC Virtualization Performance Testing and Iozone". software.intel.com. Archived from the original on 2014-07-14. Retrieved 2014-07-12.
- ↑ "Product Brief Intel Xeon Processor E5-4600 v2 Product Family" (PDF). Intel. 2014-03-14. Archived (PDF) from the original on 2014-07-14. Retrieved 2014-07-12.
- ↑ "Intel platform hardware support for I/O virtualization". Intel.com. 2006-08-10. Archived from the original on 2007-01-20. Retrieved 2012-02-04.
- ↑ "लिनक्स वर्चुअलाइजेशन और पीसीआई पासथ्रू". IBM. Archived from the original on 1 November 2009. Retrieved 10 November 2010.
- ↑ "AMD I/O Virtualization Technology (IOMMU) Specification Revision 1.26" (PDF). Archived (PDF) from the original on 2011-01-24. Retrieved 2011-05-24.
- ↑ "Intel Virtualization Technology for Directed I/O (VT-d) Architecture Specification". Archived from the original on 2013-04-03. Retrieved 2012-02-04.
- ↑ "Intel Virtualization Technology for Directed I/O (VT-d) Supported CPU List". Ark.intel.com. Archived from the original on 2010-10-27. Retrieved 2012-02-04.
- ↑ "PCI-SIG Engineering Change Notice: Function Level Reset (FLR)" (PDF). pcisig.com. 2006-06-27. Archived (PDF) from the original on 2016-03-04. Retrieved 2014-01-10.
- ↑ "Xen VT-d". xen.org. 2013-06-06. Archived from the original on 2014-02-09. Retrieved 2014-01-10.
- ↑ "How to assign devices with VT-d in KVM". linux-kvm.org. 2014-04-23. Archived from the original on 2015-03-10. Retrieved 2015-03-05.
- ↑ "कनेक्टिविटी के लिए इंटेल वर्चुअलाइजेशन टेक्नोलॉजी (वीटी-सी)" (PDF). Intel.com. Archived (PDF) from the original on 2016-02-22. Retrieved 2018-02-14.
- ↑ "PCI-SIG I/O Virtualization (IOV) Specifications". Pcisig.com. 2011-03-31. Archived from the original on 2012-01-15. Retrieved 2012-02-04.
- ↑ 51.0 51.1 "Intel Look Inside: Intel Ethernet" (PDF). Intel. November 27, 2014. p. 104. Archived (PDF) from the original on March 4, 2016. Retrieved March 26, 2015.
- ↑ Yaozu Dong, Zhao Yu, Greg Rose (2008). "SR-IOV Networking in Xen: Architecture, Design and Implementation". usenix.org. USENIX. Archived from the original on 2014-01-09. Retrieved 2014-01-10.
{{cite web}}
: CS1 maint: uses authors parameter (link) - ↑ Patrick Kutch; Brian Johnson; Greg Rose (September 2011). "An Introduction to Intel Flexible Port Partitioning Using SR-IOV Technology" (PDF). Intel. Archived (PDF) from the original on August 7, 2015. Retrieved September 24, 2015.
- ↑ "NASA's Flexible Cloud Fabric: Moving Cluster Applications to the Cloud" (PDF). Intel. Archived (PDF) from the original on 2012-12-22. Retrieved 2014-01-08.
- ↑ "एडब्ल्यूएस क्लाउड में उन्नत नेटवर्किंग". Scalable Logic. 2013-12-31. Archived from the original on 2014-01-09. Retrieved 2014-01-08.
- ↑ "Enhanced Networking in the AWS Cloud - Part 2". Scalable Logic. 2013-12-31. Archived from the original on 2014-01-10. Retrieved 2014-01-08.