कैसे शराब एक एमुलेटर नहीं है?


23

जैसा कि मैं एमुलेटर (एक सरल तरीके से) को समझता हूं, वे सिस्टम वाई द्वारा उपयोग किए जाने वाले फ़ंक्शन में सिस्टम एक्स के फ़ंक्शन का उपयोग करके प्रोग्राम के फ़ंक्शन कॉल का अनुवाद या स्थानापन्न करते हैं जिसमें प्रोग्राम चलाया जा रहा है। वाइन परियोजना का दावा है कि वाइन एक एमुलेटर नहीं है, क्योंकि:

एक वर्चुअल मशीन या एमुलेटर की तरह आंतरिक विंडोज लॉजिक का अनुकरण करने के बजाय, वाइन विंडोज एपीआई को अन्य तरीकों से प्रदर्शन और मेमोरी पेनल्टी को खत्म करने और आपको अपने डेस्कटॉप में विंडोज एप्लिकेशन को साफ-साफ एकीकृत करने की अनुमति देता है।

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


7
आम तौर पर जब कंप्यूटर दिमाग वाले लोग "एमुलेटर" शब्द का उपयोग करते हैं, तो उनका मतलब हार्डवेयर इम्यूलेटर, सॉफ्टवेयर होता है जो हार्डवेयर का अनुकरण करता है। इस मायने में वाइन एक एमुलेटर नहीं है। हालाँकि शब्द के शब्दकोश अर्थ में, वाइन विंडोज का अनुकरण करता है, और इस अर्थ में आप वाइन को विंडोज एमुलेटर कह सकते हैं।
क्रिस्टोफर हम्मरस्ट्रॉम

1
WINE भी थोड़ा फैला हुआ backronym है, एक प्रकार का हास्य जो व्यक्तित्व को अपील करता है कि वह WINE पहले स्थान पर बनाए।
RBerteig

जवाबों:


29

ठीक है, मेजबान गैर-विंडोज सिस्टम पर इम्यूलेटर और वर्चुअल मशीनें आंतरिक विंडोज लॉजिक का अनुकरण कैसे करती हैं? क्या ऐसा नहीं है कि विंडोज सिस्टम को होस्ट के अपने संबंधित कॉल में अनुवाद करके?

नहीं, या कम से कम इस अर्थ में नहीं कि वाइन क्या करता है - शाब्दिक अनुवाद प्रणाली द्वारा उपयोगकर्ता अंतरिक्ष में एक से एक कॉल करता है। एक एमुलेटर इसे अधिक सर्किट वाले मार्ग के माध्यम से करता है; यह सीधे सिस्टम कॉल का अनुवाद नहीं करता है।

एक सच्चा एमुलेटर एक वर्चुअल मशीन बनाता है (जैसे x86-64), वर्चुअल ऑपरेटिंग सिस्टम नहीं । फिर आप मशीन की उस शैली को लक्षित करने वाले किसी भी ऑपरेटिंग सिस्टम को सिद्धांत रूप में चला सकते हैं। आमतौर पर एक "एमुलेटर" में ऑपरेटिंग सिस्टम शामिल है, लेकिन यह वास्तव में ऐसा नहीं है जो यह अनुकरण कर रहा है; इसमें जो OS शामिल है, वह वही है जो वास्तविक मशीन पर चलता है।

एमुलेटर को कभी-कभी होस्ट मशीन से अलग हार्डवेयर का अनुकरण करने के लिए उपयोग किया जाता है, लेकिन एक दूसरे के अंदर एक ओएस चलाने के उद्देश्य से भी हार्डवेयर समान है।

WINE इस से अलग है कि यह वास्तव में विंडोज़ नहीं है। आप एक x86-64 एमुलेटर को उसके अंदर खिड़कियों की एक वास्तविक प्रतिलिपि के साथ चला सकते हैं, लेकिन यह नहीं है कि वाइन क्या है। उनका दावा है कि यह वास्तव में एक एमुलेटर की तुलना में अधिक कुशल है - समझ में आता है कि सिर्फ ट्रांसलेटिंग सिस्टम कॉल के लिए ओवरहेड शायद वीएम चलाने से कम है। नुकसान यह है कि वाइन केवल खिड़कियां हो सकती हैं; आप इसे किसी अन्य VM के साथ उपयोग नहीं कर सकते क्योंकि आप एक सामान्य VM कर सकते थे ।


13

जावा वर्चुअल मशीन पर विचार करें। कोई भी JVM किसी अन्य का अनुकरण नहीं करता है, वे सभी विनिर्देश के कार्यान्वयन हैं। वाइन win32 एपीआई का अनुकरण नहीं कर रहा है, यह इसका एक कार्यान्वयन है। विशेष रूप से मिलान करने के लिए चश्मा और वास्तविकता जरूरी नहीं है, Microsoft के कार्यान्वयन और वाइन के कार्यान्वयन दोनों में बग्गी कोड काम करने के लिए वर्कआर्ड हैं, और यह जरूरी नहीं है कि कार्यान्वयन किसी भी परियोजना के लिए एक बेहतर लक्ष्य है।


4

वाइन एक शिम है जो विंडोज़ एपीआई कॉल को स्वीकार करता है और उन्हें मक्खी से संबंधित लिनक्स एपीआई कॉल (ओं) में परिवर्तित करता है। एक भौतिक मशीन के बजाय एक एमुलेटर या वर्चुअल मशीन। स्पष्ट रूप से एक शिम अधिक कुशल है, लेकिन वांछित कार्यक्षमता की नकल करने में पूरी तरह से सक्षम नहीं हो सकता है।


0

एमुलेटर प्रोसेसर और / या ओएस को वर्चुअलाइज करता है जो एमुलेटर एप्लिकेशन में ओएस / प्रोसेसर प्लेटफॉर्म के तर्क और व्यवहार को बनाकर एक विंडोज एप्लिकेशन चलाता है जो खुद दूसरे ओएस / प्रोसेसर प्लेटफॉर्म के शीर्ष पर चलता है। वाइन विंडोज ओएस / प्रोसेसर व्यवहार का वर्चुअलाइजेशन नहीं करता है, बल्कि विंडोज एप्लिकेशन को विंडोज ओएस के समान अमूर्त स्तर पर चलाता है। यह यूनिक्स-आधारित ओएस / प्रोसेसर प्लेटफॉर्म पर सीधे चलने के लिए विंडोज एपीआई को फिर से लागू करके ऐसा करता है। यही है, वाइन विंडोज ओएस के मुख्य तत्वों का एक पुन: कार्यान्वयन है, संकलित DLL का एक सेट जो सीधे विंडोज एपीआई कॉल अनुरोधों को समान यूनिक्स-आधारित कोड में अनुवाद करता है जो सीधे भौतिक प्रोसेसर के साथ संचार करता है।

इसका मतलब यह है कि कभी-कभी रन-टाइम संदर्भ होते हैं जो वाइन + लिनक्स को विंडोज से अधिक तेजी से विंडोज एप्लिकेशन चलाने की अनुमति देगा! एक एमुलेटर की संभावना कभी भी नहीं हो सकती है क्योंकि इसका कोड उच्च स्तर के अमूर्त स्तर पर यूनिक्स-आधारित प्लेटफॉर्म के शीर्ष पर सीपीयू / विनओएस प्लेटफॉर्म का अनुकरण करने में व्यस्त होगा। इस मामले में, विंडोज एप्लिकेशन को चलाने के लिए अधिक अनुवाद और इंटरफेस आवश्यक हैं। (नीचे चित्र देखें)

संक्षेप में, वाइन विंडोज का पुन: कार्यान्वयन है, विंडोज का अनुकरण नहीं।

यहाँ छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.