मैं जावा वर्चुअल मशीन और .NET CLR और बेनजी के उत्तर के बीच अंतर जानने के लिए this question पढ़ रहा था और मुझे आश्चर्य हुआ कि पहली जगह वर्चुअल मशीनों की आवश्यकता क्यों है।वर्चुअल मशीनों की आवश्यकता क्यों है?
बेनजी के स्पष्टीकरण की मेरी समझ से, वर्चुअल मशीन के जेआईटी कंपाइलर इंटरमीडिएट कोड को सीपीयू पर चलने वाले वास्तविक असेंबली कोड में व्याख्या करता है। इसका कारण यह है कि सीपीयू के पास अक्सर अलग-अलग रजिस्ट्रार होते हैं और बेनजी के अनुसार, "कुछ रजिस्ट्रार विशेष उद्देश्य होते हैं, और प्रत्येक निर्देश अलग-अलग रजिस्टरों में अपने ऑपरेटरों की अपेक्षा करता है।" यह समझ में आता है कि वर्चुअल मशीन जैसे मध्यस्थ दुभाषिया की आवश्यकता है ताकि एक ही कोड किसी भी CPU पर चलाया जा सके।
लेकिन, अगर ऐसा है, तो मुझे समझ में नहीं आता है कि मशीन कोड में संकलित सी या सी ++ कोड किसी भी कंप्यूटर पर तब तक चलने में सक्षम है जब तक कि यह सही ओएस न हो। फिर एक पेंटियम का उपयोग करके मेरी विंडोज मशीन पर संकलित एक सी प्रोग्राम क्यों एक एएमडी का उपयोग कर मेरी अन्य विंडोज मशीन पर चलाने में सक्षम हो जाएगा?
यदि सी कोड किसी भी CPU पर चलाया जा सकता है तो वर्चुअल मशीन का उद्देश्य क्या है? क्या ऐसा है कि किसी भी ओएस पर एक ही कोड चलाया जा सकता है? मुझे पता है कि जावा में बहुत अधिक ओएस पर वीएम संस्करण हैं लेकिन क्या विंडोज़ के अलावा अन्य ओएस के लिए सीएलआर है?
या क्या मुझे कुछ और याद आ रही है? क्या ओएस असेंबली कोड की कुछ अन्य व्याख्या करता है जो इसे विशेष CPU या कुछ अनुकूलित करने के लिए चलाता है?
मैं इस बारे में बहुत उत्सुक हूं कि यह सब कैसे काम करता है, इसलिए एक स्पष्ट स्पष्टीकरण की सराहना की जाएगी।
नोट: कारण मैंने जेवीएम बनाम सीएलआर प्रश्न में टिप्पणियों के रूप में मेरे प्रश्नों को पोस्ट नहीं किया है क्योंकि मेरे पास टिप्पणियां पोस्ट करने के लिए पर्याप्त अंक नहीं हैं = बी।
संपादित करें: सभी महान उत्तरों के लिए धन्यवाद! तो ऐसा लगता है कि मैं जो खो रहा था वह था कि हालांकि सभी प्रोसेसर में अंतर होता है, हालांकि एक सामान्य मानकीकरण होता है, मुख्य रूप से एक्स 86 आर्किटेक्चर, जो सामान्य सुविधाओं का एक बड़ा सेट प्रदान करता है ताकि एक एक्स 86 प्रोसेसर पर संकलित सी कोड अधिकांश भाग के लिए काम करेगा एक और X86 प्रोसेसर पर। यह वर्चुअल मशीनों के लिए औचित्य को आगे बढ़ाता है, उल्लेख नहीं है कि मैं कचरा संग्रह के महत्व के बारे में भूल गया हूं।
अरे, इसलिए मुझे सूचित नहीं किया कि अन्य लोग पोस्ट कर रहे थे। मैंने सोचा कि मेरे पास यह सब सवाल है! ;- पी –
हाँ, हमें कुछ प्रकार की AJAX विंडो की आवश्यकता है ताकि हम यह जान सकें कि हम किसके खिलाफ दौड़ रहे हैं! हाहा – Daniel
वाह आपका जवाब बहुत अच्छा है! कैस्पर का जवाब भी बहुत अच्छा था, लेकिन मैं आपको सबसे अच्छा देने जा रहा हूं क्योंकि आपका बहुत विस्तृत था। धन्यवाद, मैंने बहुत कुछ सीखा! – Daniel