2009-07-10 10 views
19

सी भाषा का उपयोग पोर्टेबिलिटी प्राप्त करने के लिए यूनिक्स लिखने के लिए किया गया था - विभिन्न कंप्यूटर्स का उपयोग करके संकलित एक ही सी भाषा प्रोग्राम विभिन्न मशीन निर्देशों का उत्पादन करता है। विंडोज ओएस इंटेल और एएमडी प्रोसेसर दोनों पर कैसे चल सकता है?क्या इंटेल और एएमडी प्रोसेसर में एक ही असेंबलर है?

+0

कृपया आप – Key

+2

सवाल किसी को भी याद करता है स्पष्ट एएमडी के K5 श्रृंखला :) –

+0

अब जब कि एएमडी ARM64 पर काम कर रहा है, इस सवाल यह है कि अस्पष्ट :-) – Jeff

उत्तर

4

जैसा कि आपको संदेह है, मुख्य धारा इंटेल और एएमडी प्रोसेसर के पास एक ही निर्देश सेट है।

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

हालांकि, अधिकांश विंडोज सी ++ (जहां तक ​​मुझे पता है) में लिखा गया है, जो अन्य आर्किटेक्चर के लिए पोर्टेबल होना चाहिए। Windows NT even ran on PowerPC and other architectures

+2

के साथ संगत कर रहे हैं और देखो बना दिया है एक ऑपरेटिंग सिस्टम के लिए लिनक्स कर्नेल जो कई आर्किटेक्चर पर चलता है, यहां तक ​​कि विभिन्न निर्देश सेट के साथ भी। जबकि सी कोड पोर्टेबल है, प्रत्येक लक्ष्य के लिए बहुत सारे असेंबलर को बदला जाना है। –

+3

एक्सबॉक्स 360 एक संशोधित विंडोज 2000 कर्नेल का उपयोग करता है, जो पीपीसी आर्किटेक्चर पर चल रहा है। मुझे पूरा यकीन है कि विंडोज शायद अन्य ऑपरेटिंग सिस्टम के रूप में पोर्टेबल है, माइक्रोसॉफ्ट के लिए वास्तव में जनता के लिए अन्य संस्करण प्रदान करने के लिए एक मजबूत प्रोत्साहन नहीं है (जैसे, दो ग्राहक, या तो)। – Joey

+0

सिम निर्देश निर्देशों के मामले में छोड़कर यह उत्तर अधिकतर सत्य है। जब आप 3DNow !, SSE1/2/3 इत्यादि में मिश्रण करते हैं तो चीजें अलग हो जाती हैं, लेकिन यही कारण है कि x86 कंपाइलर्स आमतौर पर इन निर्देश सेट का समर्थन नहीं करते हैं। – hythlodayr

4

एएमडी इंटेल संगत हैं, अन्यथा वे बाजार की जगह में कभी भी पैर नहीं ले पाएंगे।

वे प्रभावी ढंग से क्लोन संगत हैं।

रयान

2

एएमडी और इंटेल एक ही अनुदेश सेट का उपयोग करें।

जब आप एएमडी प्रोसेसर या इंटेल प्रोसेसर पर विंडोज़ स्थापित करते हैं, तो यह मशीन पर कोड "संकलित" नहीं करता है।

मुझे याद है कि कॉलेज के दौरान इस विषय पर कई लोग उलझन में हैं। उनका मानना ​​है कि "सेटअप" का अर्थ है कि यह आपकी मशीन पर कोड संकलित कर रहा है। यह नहीं है अधिकांश यदि मुक्त विंडोज़ के बाहर सभी विंडोज़ एप्लिकेशन नहीं हैं, तो आपको बाइनरी द्वारा दिया जाता है।

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

24

एएमडी और इंटेल प्रोसेसर (*) में सामान्य निर्देशों का एक बड़ा सेट है, इसलिए एक कंपाइलर या असेंबलर के लिए बाइनरी कोड लिखना संभव है जो दोनों पर "वही" चलाता है।

हालांकि, एक निर्माता से भी अलग प्रोसेसर परिवारों के पास अपने स्वयं के निर्देशों के सेट होते हैं, जिन्हें आमतौर पर "एक्सटेंशन" या जो कुछ भी कहा जाता है। X87 सह-प्रोसेसर को अनदेखा करते हुए, पहली बार मुझे याद है कि यह मार्केटिंग पॉइंट था जब सब कुछ अचानक "एमएमएक्स (टीएम) तकनीक के साथ" चला गया। बाइनरी कोड किसी भी प्रोसेसर पर चलाने की उम्मीद है या तो एक्सटेंशन से बचने की जरूरत है, या सीपीयू प्रकार का उपयोग करने से पहले इसका पता लगाने की जरूरत है।

इंटेल इटेनियम 64 बिट वास्तुकला एएमडी के x86-64 वास्तुकला से पूरी तरह से अलग हो गया था, के लिए बहुत थोड़ी देर के लिए उनके 64 बिट प्रसाद गैर संगत थे (और जबकि x86-64 अनुदेश 64 बिट जोड़कर सेट बढ़ाया इटेनियम, 86 की तरह कुछ भी नहीं था निर्देश)। इंटेल ने पहले ब्लिंक किया और x86-64 अपनाया, हालांकि अभी भी कुछ अंतर हैं: http://en.wikipedia.org/wiki/X86-64#Differences_between_AMD64_and_Intel_64

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

(*) वास्तव में, इंटेल बनाने या एआरएम सहित प्रोसेसर के विभिन्न प्रकार, बना दिया है (इंटेल का ARM प्रोसेसर X स्केल कहा जाता था, लेकिन मुझे लगता है वे कहते हैं कि व्यापार बेच दिया है)। और एएमडी अन्य प्रोसेसर भी बनाते हैं।लेकिन हम जानते हैं कि कौन सा इंटेल/एएमडी प्रोसेसर आपका मतलब है :-)

+4

+1। आंतरिक रूप से, एएमडी और इंटेल आम तौर पर इन सामान्य निर्देशों को अलग-अलग संभालते हैं: कुछ निर्देश दूसरे की तुलना में एक वास्तुकला पर बहुत धीमे निष्पादित कर सकते हैं। –

+0

हां, अच्छा बिंदु। "वही चलता है" ठीक प्रिंट के साथ आता है। –

+0

बिल्कुल सही और लिनक्स के साथ ऐसा मामला है। मैं एक लिनक्स कर्नेल हैकर हूं और यदि आपने कभी अपने स्वयं के लिनक्स कर्नेल को फिर से संकलित किया है, तो आप देखेंगे कि आप सीपीयू प्रकारों का एक बड़ा लक्ष्य लक्षित कर सकते हैं और, ज़ाहिर है, गलत प्रकार चुनना और कोर डंप या लटका में इसे इंस्टॉल करना प्रणाली। इस पर एक-एक करके अच्छा लिखो !!! – Eric

0

क्या इंटेल और एएमडी प्रोसेसर में एक ही असेंबलर है? एक असेंबलर प्रोसेसर पर चलाने के लिए एक प्रोग्राम को इकट्ठा करता है, इसलिए आपका प्रश्न त्रुटिपूर्ण है। प्रोसेसर असेंबलरों का उपयोग नहीं करते हैं।

यदि आपका मतलब है कि इंटेल और एएमडी प्रोसेसर एक ही असेंबलर चला सकता है? तब जवाब हाँ है !!!

सभी एक असेंबलर एक प्रोग्राम है जो संरचित पाठ फ़ाइलों से अन्य कार्यक्रमों को इकट्ठा करता है। विजुअल बेसिक एक असेंबलर का एक उदाहरण है।

संबंधित मुद्दे