मैंने नीचे अपने उत्तर के लिए बहुत कुछ किया है, लेकिन मैंने अपने मूल उत्तर को संदर्भ के लिए बरकरार रखा है।
TL: DR: वर्चुअल मशीन एक उपकरण है, और जब वे एक ओएस का उपयोग करने की आसान क्षमता प्रदान करते हैं, तो आपको सिस्टम के पूर्ण उपयोग करने के लिए कंप्यूटर के आपके प्राथमिक उपयोग के बारे में बहुत जानकारी होनी चाहिए। ।
आपका प्रश्न एक आभासी मशीन का उपयोग करने के ग्राफिकल और इंटरफ़ेस प्रदर्शन संभावनाओं की ओर बहुत दृढ़ता से लगता है और इसलिए मैं वहां की संभावनाओं के बारे में जवाब दूंगा।
मुख्य समस्या यह है कि अतिथि ऑपरेटिंग सिस्टम को उपकरणों तक सुरक्षित रूप से प्रबंधित करने के लिए (और इस प्रकार अतिथि OS को होस्ट और ब्रेकिंग चीज़ों को रौंदने से रोकें) उन सभी उपकरणों को जिन्हें आप उपयोग करना चाहते हैं, उन्हें "एमुलेटेड" होना चाहिए।
इसका मतलब है कि ग्राफिक्स कार्ड है कि अपने अतिथि ओएस देख सकते है नहीं एक ही ग्राफिक्स कार्ड है कि अपने मेजबान ओएस देख सकते हैं। आप अतिथि में 3D रेंडरिंग जैसी सुविधाओं को सक्षम करने में सक्षम हो सकते हैं, लेकिन यह आपके अतिथि में एक मध्यवर्ती ड्राइवर द्वारा नियंत्रित किया जाता है जो 3 डी के लिए एक सुरक्षित तरीके से होस्ट तक अनुरोधों को पारित करता है।
यह बहुत ही संदिग्ध है कि एक समर्थित एचडीएमआई डिस्प्ले के लिए ब्लू-रे डिस्क को खेलने के लिए आवश्यक सुविधाओं को अतिथि ग्राफिक्स कार्ड ड्राइवरों द्वारा अनुकरण किया जाता है और इसलिए यह संभवतः काम नहीं करेगा।
मूल रूप से कुछ भी जो आपके मेजबान पर हार्डवेयर समर्थन की आवश्यकता है, यदि आपके अतिथि में, ठीक से काम करने की संभावना नहीं है। मुझे नहीं पता कि वाईडीआई कैसे काम करता है, लेकिन अगर इसे टेलीविजन पर साझा करने के लिए आपकी वीडियो कार्ड मेमोरी तक सीधे पहुंच की आवश्यकता होती है, तो यह तब तक काम नहीं करेगा जब तक कि आप इसे अपने होस्ट (लिनक्स) ऑपरेटिंग सिस्टम से उपयोग न करें।
प्रदर्शन के संदर्भ में इसके अलावा, एक वीएम करीब हो सकता है अगर यह मुख्य ओएस था, तो क्या होगा, लेकिन हार्ड ड्राइव डिवाइस एक्सेस या अन्य संसाधनों के साथ विवाद के मामले में हमेशा दंड होगा जो मेजबान उपयोग कर रहा है।
शुरुआत में...
शुरुआत में हमारे पास एक कंप्यूटर था, वह कंप्यूटर केवल एक ऑपरेटिंग सिस्टम चला सकता था। यह ऑपरेटिंग सिस्टम केवल विशेष प्रोसेसर और मशीन में मौजूद अन्य हार्डवेयर पर अच्छी तरह से चलने के लिए था, अन्य ऑपरेटिंग सिस्टम केवल बुरी तरह से चलाने में सक्षम थे, यदि सभी उपलब्ध देशी हार्डवेयर पर।
लोगों को किसी अन्य प्लेटफ़ॉर्म पर एक विशेष प्लेटफ़ॉर्म के लिए सॉफ़्टवेयर का उपयोग करने में सक्षम होने के लिए (उदाहरण के लिए, कमोडोर अमीगा पर प्री-ओएसएक्स मैकओएस सॉफ़्टवेयर का उपयोग करके) "सॉफ़्टवेयर स्थापित करने" से अधिक की आवश्यकता होती है। इन दो मशीनों ने पूरी तरह से अलग प्रोसेसर आर्किटेक्चर और सहायक हार्डवेयर का उपयोग किया। बस एक ही रास्ता नहीं था कि एक ओएस दूसरी मशीन के हार्डवेयर पर चल सके।
अनुकरण
एमुलेशन वर्चुअलाइजेशन के चचेरे भाई की तरह है, वे वास्तव में संबंधित हैं और समान लक्ष्य हैं। एक दूसरे के रूप में भीख माँगता था।
इन अलग-अलग हार्डवेयर प्लेटफार्मों का मतलब यह था कि यदि आप अपनी मशीन पर किसी अन्य OS से एक सॉफ्टवेयर का उपयोग करना चाहते हैं, तो उस मशीन के बारे में सब कुछ का विश्लेषण करना होगा ताकि यह पता चले कि यह कैसे काम करता है, और फिर कोड का एक टुकड़ा लिखा गया जो कार्य करता है। उसी तरह जैसे हार्डवेयर पार्ट ने किया। यह हर टुकड़ा, प्रोसेसर, ग्राफिक्स कंट्रोलर, मेमोरी कंट्रोलर, सब कुछ के लिए किया जाना था ।
फिर इन सभी टुकड़ों को एक साथ रखा जाता है और जैसा कि प्रत्येक टुकड़ा थोड़ा सा हार्डवेयर का अनुकरण कर रहा है, हमने इसे एक अनुकरणीय मशीन कहा है । हम तब इस उत्सर्जित मशीन के ऊपर एक ऑपरेटिंग सिस्टम चलाते हैं।
समस्या यह है कि यह दृष्टिकोण धीमा है। यदि आप मूल हार्डवेयर की 1/10 वीं गति प्राप्त कर सकते हैं तो बस आप भाग्यशाली थे। आपको वस्तुतः पूर्ण गति के पास कहीं पर भी अनुकरण किए गए कंप्यूटर को चलाने के लिए अपने लक्ष्य की अनुकरण करने वाली मशीन की तुलना में कई बार तेजी से मशीन की आवश्यकता होती है।
तो क्या बदला?
खैर, यहाँ अच्छी बात है। वास्तव में ज्यादा नहीं। एकमात्र बड़ा बदलाव यह था कि हार्डवेयर प्लेटफॉर्म को मानकीकृत किया गया था। हमने प्रत्येक OS और OSes के लिए कस्टम हार्डवेयर प्राप्त करना बंद कर दिया है, या एक ही मानक प्लेटफ़ॉर्म पर बनाया गया है।
जो घटक इन दिनों मैक बनाते हैं, वे बड़े और बड़े होते हैं, वही घटक जो पीसी बनाते हैं। लिनक्स हमेशा पीसी हार्डवेयर पर चलता है इसलिए वहां कुछ भी नया नहीं है।
यदि आप एक ओएस से दूसरे पर सॉफ़्टवेयर चलाना चाहते हैं, तो एक लंबे समय के लिए अनुकरण करना अभी भी आदर्श था। या आप डुअल-बूट कर सकते हैं और या तो आपरेटिंग सिस्टम चला सकते हैं, जैसा कि आप चाहते हैं, लेकिन यह दर्दनाक और कष्टप्रद है अगर आप लिनक्स में कोडिंग से विंडोज में गेम खेलना चाहते हैं।
और फिर..
वहां यह विचार आया कि जैसा कि अंतर्निहित हार्डवेयर समान है, दोनों ओएस इसे साझा क्यों नहीं कर सकते हैं?
हमने QEMU और WiNE और इसी तरह के सॉफ्टवेयर समाधानों के साथ समाप्त किया। QEMU लंबे समय से मशीनों के हार्ड इम्यूलेशन के लिए एक पसंदीदा था, जबकि WiNE ने अपने OS API कॉल को फंसाने और पैच करके लिनक्स पर विंडोज एप्लिकेशन चलाने की अनुमति दी और कोड को प्रोसेसर पर मूल रूप से चलने दिया।
QEMU ने WiNE के समान कुछ किया, लेकिन बहुत निचले स्तर पर किया। यह अभी भी प्रभावी रूप से एक एमुलेटर है, लेकिन प्रत्येक हार्डवेयर कॉल के लिए जो उन्हें बनाया गया था, उन्होंने "पैच और रीडायरेक्ट" पद्धति का उपयोग किया ताकि कोई भी कॉल अपने स्वयं के अनुकरण किए गए हार्डवेयर प्लेटफ़ॉर्म पर चले। क्योंकि किसी प्रोग्राम में अधिकांश कामकाजी कोड में वास्तव में हार्डवेयर कॉल शामिल नहीं थे (ज्यादातर परिणाम प्रदर्शित करने के लिए एक कॉल के साथ गणना की सरल धाराएं हैं)।
इसके परिणामस्वरूप तात्कालिक गति को बढ़ावा मिला, जो अब नहीं-वास्तव में अनुकरणीय मशीन में लगभग हर कार्यक्रम के लिए है । प्रोग्राम स्लोडाउन के साथ चले, यह निर्भर करता है कि मशीन ने कितनी अच्छी तरह अनुकरण किया जा सकता है इसके बजाय उन्होंने "वर्चुअल" हार्डवेयर का कितना उपयोग किया। 1/10 वीं गति पर चलने के बजाय वे अब लगभग उसी गति से चल रहे थे जैसे कि वे मूल रूप से थे।
इसलिए, अगर हम अभी प्रोसेसर पर चल रहे हैं, तो मेरा ग्राफिक्स कार्ड काम क्यों नहीं करता है?
इन नई वर्चुअल मशीनों के साथ एकमात्र समस्या यह है कि उनके स्वभाव से एक ऑपरेटिंग सिस्टम यह मानता है कि यह कंप्यूटर में मौजूद सभी हार्डवेयर का प्रत्यक्ष नियंत्रण है , ताकि वे स्मृति प्रबंधन जैसी सुविधाएं प्रदान कर सकें, और हार्डवेयर तक पहुंच को नियंत्रित कर सकें।
हालांकि इसका मतलब यह है कि वर्चुअल मशीनें कम से कम विधि में, पूरी तरह से उत्सर्जन से दूर नहीं हो सकती हैं। उन्हें अभी भी सॉफ़्टवेयर में कुछ कार्यों का अनुकरण करना है, उदाहरण के लिए वर्चुअल मशीन में चलने वाले ओएस के लिए एक ग्राफिक्स कार्ड, या नेटवर्क कार्ड प्रस्तुत करना होगा ताकि "अतिथि" ऑपरेटिंग सिस्टम को लगता है कि उस हार्डवेयर का पूर्ण नियंत्रण है। मुख्य ओएस (सुरक्षा की आवश्यकताओं के अनुसार) को सीधे हार्डवेयर तक पहुंचने वाले कार्यक्रमों के खिलाफ खुद को संरक्षित करना चाहिए और यह अतिथि ऑपरेटिंग सिस्टम पर प्रतिबंध लगाता है।
ऐसा करने के लिए उन्हें कंप्यूटर में हर चीज के लिए हार्डवेयर के "आभासी" टुकड़ों का अनुकरण करना होगा। सभी कोड अब प्रोसेसर द्वारा मूल रूप से चलाए जा रहे हैं, इसलिए यह धीमा नहीं है, लेकिन वर्चुअल हार्डवेयर के उन टुकड़ों में से प्रत्येक को सॉफ्टवेयर में लिखा जाना चाहिए, और यह प्रदर्शन में एक छोटा जुर्माना और संभवतः कार्यक्षमता के मामले में एक बड़ा जुर्माना दोनों लगाता है। ।
इसका मतलब यह है कि आपका वर्चुअल ग्राफिक्स कार्ड आपके असली ग्राफिक्स कार्ड की तरह सुविधाओं को नहीं कर सकता है और न ही होगा । सबसे अधिक प्रदर्शन प्राप्त करने के लिए वर्चुअल हार्डवेयर को सबसे अधिक उपयोग की जाने वाली सुविधाओं का समर्थन करने के लिए लिखा जा सकता है, और 3 डी रेंडरिंग अब एक वर्चुअल मशीन में संभव है, लेकिन यह अभी भी वास्तविक हार्डवेयर के समान नहीं है।
इसका मतलब यह है कि मेजबान ऑपरेटिंग सिस्टम को सबसे अच्छा हार्डवेयर विकल्प मिलता है, जबकि अतिथि ऑपरेटिंग सिस्टम को जेनेरिक हार्डवेयर विकल्प मिलते हैं।
एक वर्चुअल मशीन असली हार्डवेयर जितना अच्छा नहीं है, यह केवल एक उपकरण है जो एक सिस्टम से दूसरे सिस्टम पर काम करना आसान बनाता है।
तो मैं क्या करूं?
आपको चुनना होगा कि आप अपने कंप्यूटर का मुख्य उद्देश्य क्या चाहते हैं।
यदि आप अपने उच्च शक्ति वाले ग्राफिक्स कार्ड पर नवीनतम गेम खेलना चाहते हैं और अपने 400 "एचडीएमआई टीवी पर पूर्ण 1080p फिल्में चलाने के लिए उसी ग्राफिक्स कार्ड का उपयोग करते हैं, लेकिन केवल कभी-कभी कुछ लिनक्स प्रोग्रामिंग करना चाहते हैं, तो विंडोज आपका सबसे अच्छा दांव हो सकता है अतिथि के रूप में लिनक्स के साथ।
यदि आप लिनक्स कर्नेल पर काम करना चाहते हैं, अपने कंप्यूटर में उपकरणों के लिए हार्डवेयर ड्राइवर बना रहे हैं, और कभी-कभी विंडोज के लिए कुछ सॉफ्टवेयर लिखते हैं और इसे "मानक" विंडोज सिस्टम के अच्छे सन्निकटन पर परीक्षण करते हैं तो हो सकता है कि आप लिनक्स के साथ बेहतर हों अतिथि के रूप में होस्ट और विंडोज के रूप में।
यदि आपको मैक के उपयोग में आसानी है, लेकिन विंडोज के लिए प्रोग्राम करना चाहते हैं (या कोई ऐसा सॉफ्टवेयर पैकेज है जो आप चाहते हैं कि केवल विंडोज है) तो वह भी एक विकल्प है।
मैं यह नहीं कह रहा हूं कि लिनक्स गेम नहीं खेल सकता है, या यह कि MacOS प्रोग्रामर के लिए नहीं है क्योंकि यह केवल झूठ का एक पैकेट होगा। यह सिर्फ इतना है कि एक व्यक्ति जो कह सकते हैं जो ओएस अधिक है कि आप क्या करना चाहते हैं के लिए अनुकूल हो सकता है है आप ।
आपको वास्तव में समझना होगा कि आप अपनी मशीन को पहले क्या करना चाहते हैं । तभी आप यह पता लगा सकते हैं कि वर्चुअल मशीन आपके लिए क्या कर सकती है।
अपने सवालों के जवाब देने के लिए:
Will the graphics and video rendering quality will be just as good?
नहीं। अनुकरण किए गए ग्राफिक्स कार्ड मेजबान ग्राफिक्स कार्ड की कुछ विशेषताएं प्रदान कर सकते हैं, लेकिन यह संभवतः हार्डवेयर वीडियो त्वरण या CUDA प्रोग्रामिंग सुविधाओं जैसे जटिल सुविधाओं का समर्थन नहीं करेगा।
Will there be any hardware issue such as using HDMI or WiDi?
फिर, इन अतिरिक्त सुविधाओं की संभावना जो भी उपलब्ध / आभासी हार्डवेयर उपलब्ध है की एक विशेषता नहीं होगी।
Will applications run just as smoothly as long as enough RAM is allocated?
अधिकांश एप्लिकेशन (जब तक उन्हें विशिष्ट हार्डवेयर सुविधाओं की आवश्यकता नहीं होती है) लगभग उतनी ही तेजी से चलेगा, जितनी वे वास्तविक हार्डवेयर पर होंगे, तो जब तक आप मेजबान या स्मृति के अतिथि को भूखा न रखें।