विंडोज़ ऑन आर्म पर x86 अनुवाद कैसे काम करता है?

click fraud protection

बहुत सारे विंडोज़ एप्लिकेशन x86 के लिए लिखे गए थे, और फिर भी वे आर्म सीपीयू पर काम कर सकते हैं। यहां बताया गया है कि यह कैसे संभव है.

विंडोज़ हमेशा से ही बनाई गई है इंटेल और एएमडी से x86 सीपीयू, लेकिन जब से एक दशक पहले विंडोज़ आरटी स्मार्टफोन के लिए आया, तब से ऑपरेटिंग सिस्टम धीरे-धीरे अधिक अनुकूल होता जा रहा है आर्म सीपीयू. आज, विंडोज़ 10 और विंडोज़ 11 दोनों आर्म सीपीयू के लिए पूर्ण समर्थन प्रदान करते हैं, लेकिन एक समस्या है। जबकि ऑपरेटिंग सिस्टम स्वयं इन सीपीयू पर बिल्कुल ठीक चलता है, अधिकांश एप्लिकेशन ने आर्म-संगत संस्करण लॉन्च नहीं किया है। हालाँकि विंडोज़ आर्म चिप्स पर चल सकती है, लेकिन वास्तव में उपयोग करने के लिए कुछ प्रोग्राम होना एक समस्या होगी।

हालाँकि, Microsoft ने अपनी आस्तीन में एक तरकीब निकाली है: आर्म-आधारित मशीनों पर x86 ऐप्स चलाने के लिए एक एमुलेटर. यह वह प्रमुख चीज़ है जिसने 2017 में अनुवादक के आने के बाद से विंडोज़ ऑन आर्म को गति दी है। यहां बताया गया है कि एमुलेटर कैसे काम करता है, और यदि आर्म पीसी x86 चिप्स के लिए बने सॉफ़्टवेयर को चलाना चाहते हैं तो उन्हें इसका उपयोग करने की आवश्यकता क्यों है।

वास्तविक समय में आर्म सीपीयू के लिए x86 कोड का अनुकरण

एक प्रकार के प्रोसेसर के लिए बनाए गए कोड का अनुकरण करने का विचार ताकि इसे दूसरे पर चलाया जा सके, कोई नई बात नहीं है। गेम इम्यूलेशन इस प्रकार काम करता है, जिसका उपयोग पुराने वीडियो गेम को बहुत अलग हार्डवेयर के साथ नए उपकरणों पर चलाने के लिए किया जाता है। जब आप आर्म पीसी पर x86 ऐप चलाते हैं, तो विंडोज़ ऐप के कोड के ब्लॉक लेता है और इसे किसी ऐसी चीज़ में संकलित करता है जो आर्म चिप पर चल सकता है। यह सब वास्तविक समय में किया जाता है, और विंडोज़ को अनुवादित सभी कोड को कैश करना पड़ता है, जिसका अर्थ है कि उसे बार-बार दोबारा अनुवाद नहीं करना पड़ता है।

दुर्भाग्य से, हार्डवेयर के लिए डिज़ाइन किए गए कोड की तुलना में अनुकरणीय ऐप्स पर प्रदर्शन खराब होने वाला है। यह कहना कठिन है कि विंडोज़ पर एम्युलेटेड कोड चलाकर आप कितना प्रदर्शन खो रहे हैं क्योंकि परीक्षण डेटा बहुत कम है, लेकिन तुलना के लिए, एप्पल का रोसेटा 2 अनुवादक (जो x86 ऐप्स को आर्म में भी अनुवादित करता है) लगभग 20% का नुकसान होता है। उस संख्या को कम करना संभव है, लेकिन आमतौर पर, अनुकरण और अनुवाद के परिणामस्वरूप प्रदर्शन दंड मिलता है, चाहे कुछ भी हो।

x86 एप्लिकेशन एमुलेशन के बिना आर्म पर क्यों नहीं चल सकते?

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

x86 इंटेल और एएमडी सीपीयू का आईएसए है, जो ऐतिहासिक रूप से एकमात्र सीपीयू है जिस पर विंडोज भी चल सकता है। इस बीच, आर्म का उपयोग ज्यादातर स्मार्टफोन के लिए किया गया है, और पीसी सॉफ्टवेयर और फोन सॉफ्टवेयर के बीच ओवरलैप बहुत कम है। स्वाभाविक रूप से, अधिकांश प्रोग्राम या तो x86 या आर्म के लिए बनाए जाते हैं, और विंडोज़ ऑन आर्म के लिए, यह एक बड़ी समस्या थी अनुवाद 2020 में सामने नहीं आया, जबकि विंडोज़ आरटी (आर्म को सपोर्ट करने वाला विंडोज़ का पहला संस्करण) सामने आया 2012.

लगभग एक दशक हो गया है जब विंडोज़ ने आर्म का समर्थन करना शुरू किया था, तो सभी मूल ऐप्स कहाँ हैं? प्राथमिक मुद्दा यह है कि किसी भिन्न ISA के लिए सॉफ़्टवेयर को फिर से लिखने में समय और विशेषज्ञता लगती है, खासकर यदि डेवलपर्स इसे अच्छी तरह से करना चाहते हैं। जो डेवलपर्स किसी ऐप को एक आईएसए से दूसरे आईएसए में पोर्ट करने के लिए उचित देखभाल नहीं करते हैं, उनके परिणामस्वरूप गड़बड़ियां और बग हो सकते हैं। इसका एक बेहतरीन उदाहरण विंडोज ऑन आर्म के लिए फोटोशॉप है। यह मूल रूप से विंडोज़ ऑन आर्म पर चलता है, अभी तक लेनोवो थिंकपैड X13s की हमारी समीक्षा में, हमें कई त्रुटियों और बहुत सारी चेतावनियों का सामना करना पड़ा कि OpenCL और OpenGL समर्थित नहीं थे। विंडोज़ पर आर्म का उपयोग करने वाले बहुत छोटे उपयोगकर्ता आधार के साथ, डेवलपर्स के लिए देखभाल के लिए प्रोत्साहन कम है।

इसलिए, जब डेवलपर्स मूल सॉफ़्टवेयर बनाने के लिए संसाधनों को समर्पित नहीं कर सकते हैं या नहीं करेंगे, तो विकल्प अनुकरण है। हालाँकि विंडोज़ ऑन आर्म के लिए x86 ऐप्स का अनुवाद करना सही नहीं है, लेकिन यह प्रभावशाली है कि यह बिल्कुल काम करता है, और कभी-कभी प्रदर्शन खोने से यह जानने लायक होता है कि ऐप उम्मीद के मुताबिक चलेगा। कम से कम जब तक विंडोज़ ऑन आर्म उस बिंदु तक नहीं पहुँच जाता जहाँ डेवलपर्स इसे अनदेखा नहीं कर सकते, अनुवाद और अनुकरण इसके हार्डवेयर-सॉफ़्टवेयर पारिस्थितिकी तंत्र को बहुत आवश्यक बढ़ावा देते हैं।