क्या 64 बिट प्रोसेसर में 32 बिट ओएस चल सकता है?


25

32 बिट OS और 64 बिट OS में क्या अंतर है? क्या 64 बिट प्रोसेसर में 32 बिट ओएस चल सकता है?


यदि आप विंडोज के बारे में बात कर रहे हैं (और Win32 टैग से संकेत मिलता है कि लगता है), तो हाँ, बिल्कुल - विस्टा और Win7 64-बिट समर्थन लगभग सभी 32-बिट ऐप्स को एक कंपैटिबिलिटी लेयर के माध्यम से - मुझे अभी तक कुछ भी नहीं मिला है जो doesn विस्टा 64-बिट (सिस्टम-स्तरीय ड्राइवरों को छोड़कर) पर सिर्फ ठीक काम नहीं है
marc_s

5
यह प्रश्न अधिक लगता है कि क्या आप विन विस्टा x86 को एक ऐसे बॉक्स पर स्थापित कर सकते हैं जिसमें 64-बिट प्रोसेसर है, बजाय इसके कि क्या x86 ऐप विन विस्टा x64 पर चलता है।
KTC

जवाबों:


34

आपका प्रश्न आर्किटेक्चर विशिष्ट है। x64 मूल रूप से x86 आर्किटेक्चर का विस्तार है। यह 64 बिट एड्रेस स्पेस को सपोर्ट करता है। यह कुछ नए निर्देश और नए रजिस्टर प्रदान करता है।

आप एक x64 मशीन पर 32-बिट x86 विंडोज चला सकते हैं। ध्यान दें कि आप इटेनियम 64-बिट सिस्टम पर ऐसा नहीं कर सकते।


16

64 बिट प्रोसेसर 32 और 64 ओएस (कम से कम x64 कैन) दोनों चला सकता है। एक 32 बिट प्रोसेसर केवल 32 देशी चला सकता है।

अंतर ज्यादातर एक पॉइंटर / संदर्भ के आकार के बारे में है। 64 बिट मशीनों पर, आप 64 बिट एड्रेस-रेंज में एक पते को संदर्भित कर सकते हैं (इस प्रकार आपको 2 ^ 64 बाइट्स मेमोरी दे सकते हैं)। 32 बिट पर आप केवल 2 ^ 32 बाइट्स (= 4 जीबी) का पता कर सकते हैं। अब यदि आप वर्तमान कंप्यूटरों को देखते हैं तो यह स्पष्ट है कि दुनिया 64 बिट पर क्यों जा रही है: 32 बिट अब आसानी से सभी रैम को संबोधित नहीं कर सकते हैं।

X64 (AMD / Intel) पर आपको 64 बिट के अतिरिक्त लाभ हैं। सीपीयू में अधिक रजिस्टर हैं और इस प्रकार अधिक कुशल कोड की अनुमति देता है।

अन्य आर्किटेक्चर पर 64 और 32 बिट के बीच का अंतर कम स्पष्ट है। उदाहरण के लिए निनटेंडो 64 (याद रखें?) 64 बिट मशीन थी लेकिन इसका अधिकांश कोड 32 बिट था। तो उस मामले में 64 बिट एक विपणन चाल के रूप में अधिक सेवा की।


3

वर्तमान में स्वीकृत उत्तर आम तौर पर सही है लेकिन विशेष रूप से ऐसा नहीं है। वास्तव में "32-बिट सीपीयू" या "" 64-बिट सीपीयू "नामक एक भी चीज नहीं है - यह एक ऐसा विवरण है जो सीपीयू की वास्तुकला के केवल एक छोटे से हिस्से को संदर्भित करता है। विशेष रूप से, यह संख्या का संदर्भ देता है। सीपीयू और मेमोरी के बीच पता चयन लाइनों, यानी स्मृति संचालन के लिए उपलब्ध तथाकथित पता स्थान

योर के दिनों में जब सीपीयू जब लोग एक प्रोसेसर और मेमोरी के बीच तारों को बैठते और लपेटते (लपेटते) थे, तो आपको 32 या (सैद्धांतिक रूप से उपयोग करना होगा, क्योंकि यह उस समय मौजूद नहीं था) सीपीयू और मेमोरी कंट्रोलर के बीच 64 तारों का उपयोग किया जाएगा, जो यह निर्दिष्ट करने के लिए उपयोग किया जाएगा कि आप किस मेमोरी एड्रेस को एक्सेस करना चाहते हैं। उदाहरण के लिए, मान लें कि हमारे पास 2-बिट मेमोरी आर्किटेक्चर है: 00 भेजने पर पता 0 का चयन होगा, 01 पता 1 का चयन करेगा, 10 पता 2 का चयन करेगा, और 11 पता का चयन करेगा 3. यह 2-बिट हमें 2 ^ 2 बाइट्स देता है। RAM की (4 बाइट्स)।

यदि आप एक 32-बिट CPU लेते हैं और आप CPU और मेमोरी कंट्रोलर के बीच 32 और तारों को जोड़ते हैं ताकि आप जादुई रूप से अधिक मेमोरी को सपोर्ट कर सकें, तो अब आपके पास "64-बिट CPU" है जो 32-बिट चला सकता है कोड या 64-बिट कोड। इसका क्या मतलब है और यह कैसे होता है? ठीक है, आइए इस उत्तर के पहले भाग से हमारे 2-बिट सीपीयू लें और एक अन्य तार जोड़ें, इसे 3-बिट सीपीयू में बदलकर, हमें 4 बाइट्स से 2 ^ 3 या 8 बाइट्स रैम तक ले जाना चाहिए।

मौजूदा "2-बाइट" कोड चलेगा, ऊपर (00-11) जैसे पिछले 2 तारों के मूल्यों को सेट करता है। हम डिफ़ॉल्ट रूप से शून्य होने के लिए अतिरिक्त कनेक्शन को वायर करेंगे, इसलिए वास्तव में जब 2-बाइट कोड चलता है, जब यह 00 का चयन करता है, तो यह वास्तव में 000 का चयन करता है और जब यह 11 का चयन करता है तो यह वास्तव में 011 का चयन करता है। आसान।

अब एक प्रोग्रामर "देशी" 3-बाइट कोड लिखना चाहता है और अतिरिक्त पता स्थान का लाभ उठाने के लिए अपने सॉफ़्टवेयर को लिखता है। वह सीपीयू से कहती है कि वह जानती है कि वह क्या कर रही है और वह नए, अतिरिक्त तारों का मैनुअल नियंत्रण लेगी। उसका सॉफ्टवेयर अतिरिक्त तार (ओं) के बारे में जानता है और सही ढंग से 000-111 भेजता है, जिससे उसे इस नए सीपीयू आर्किटेक्चर द्वारा समर्थित मेमोरी की सीमा तक पूर्ण पहुंच मिलती है।

लेकिन ऐसा नहीं है। वास्तव में, यह आमतौर पर नहीं है कि चीजें कैसे होती हैं। जब 64-बिट CPU को पहली बार पेश किया गया था (और कई थे), वे सभी पूरी तरह से नए आर्किटेक्चर / डिज़ाइन के साथ गए थे। उन्होंने सिर्फ एक अतिरिक्त 32 तारों का सौदा नहीं किया और कहा "यहाँ आप जाओ, यह 64-बिट सीपीयू है जिसे आप 32-बिट या 64-बिट मोड में उपयोग कर सकते हैं," बल्कि उन्होंने कहा "यह हमारा नया सीपीयू है। यह केवल इस पूरी तरह से नई मशीन की भाषा में प्रोग्रामिंग करता है, इस पूरी तरह से नए तरीके से व्यवहार करता है, कभी भी पुराने x86 / i386 32-बिट सीपीयू की तुलना में कहीं अधिक सुरुचिपूर्ण ढंग से एक bazillion विभिन्न समस्याओं को हल करता है, और यह एक देशी 64-बिट वास्तुकला है। । "

यह इंटेल इटेनियम की कहानी थी, जिसे अब बड़े पैमाने पर डूबने के कारण "इटानिक" के नाम से जाना जाता है। यह नए 64-बिट युग में हेराल्ड माना जाता था, और यह निहारना कुछ था। परिवर्तनीय लंबाई निर्देश, विशाल कैश, 64-बिट पता स्थान, रजिस्टरों के टन, सुपर रोमांचक, सुपर कूल, और सभी के लिए विरासत कोड के 20 वर्षों को फिर से लिखने या फिर से लिखने के लिए सभी को समझाने के लिए सुपर कठिन। जब एएमडी और इंटेल वास्तव में प्रतिस्पर्धा कर रहे थे तब यह वापस आ गया था, और एएमडी के पास यह कहने का शानदार विचार था "चलो यह सब भूल जाओ 'दुनिया की सभी समस्याओं को हल करें' और बस 323 तारों को i386 में जोड़ें और 32-बिट संगत 64 बनाएं- बिट सीपीयू ”और x86_64 CPU आर्किटेक्चर का जन्म हुआ।

वास्तव में, यदि आप प्रमुख ऑपरेटिंग सिस्टम (लिनक्स, विंडोज, बीएसडी आदि) के लिए कर्नेल नाम और स्रोतों को देखते हैं, तो आप उन्हें AMD64 CPU और AMD64 आर्किटेक्चर के संदर्भ में लेट पाएंगे। एएमडी ने सभी को 32-बिट अनुप्रयोगों के साथ संगतता को संरक्षित करते हुए 64-बिट दुनिया पर स्विच करने के लिए एक जीत की रणनीति बनाई, इस तरह से कि 32-बिट ओएस 64-बिट हार्डवेयर या 32-बिट अनुप्रयोगों पर भी चल सकता है। 64-बिट हार्डवेयर पर 64-बिट OS पर चल सकता है। इंटेल ने अपने "Intel EM64T" आर्किटेक्चर (जो मूल रूप से AMD64 के समान था) और x86_64 के साथ बाद में सुइट का अनुसरण किया, जबकि इटानिक और अन्य MIPS64 और ALPHA64 जैसे डेस्कटॉप या सर्वर मार्केट में अधिक नहीं देखे गए।

tl; डॉ। amd64 उर्फ ​​x86_64 सीपीयू को 32- और 64-बिट कर्नेल और कोड दोनों के साथ संगत करने के लिए डिज़ाइन किया गया है, लेकिन अधिकांश 64-बिट सीपीयू निश्चित रूप से पीछे की ओर संगत नहीं हैं। 32-बिट CPU मेमोरी के अधिकांश 4GiB तक पहुँच सकता है, जबकि 64-बिट CPU एक आश्चर्यजनक 16 EiBs (16 × 1024 ^ 6 बाइट्स, या 4 बिलियन बार 4GIB जितनी मेमोरी) एक्सेस कर सकता है ।


1
आपके पास कुछ तथ्यात्मक त्रुटियां हैं: 1) इटेनियम ने वैरिएबल लंबाई के निर्देशों का परिचय नहीं दिया था (हर x86 उनके पास है); इसने बहुत लंबे शब्द निर्देश जोड़े, जो कई 64 बिट मात्रा पर समवर्ती संचालन करने में सक्षम थे। 2) x86_64 केवल अधिक पता लाइनों पर थप्पड़ नहीं था; इसमें अतिरिक्त रजिस्टरों का एक समूह भी जोड़ा गया, और सभी रजिस्टरों (और उन पर चलने वाले ALU) को 32 से 64 बिट्स तक चौड़ा किया। इसकी तुलना 88० this६/86० ,86 से करें, जिसमें ४ और एड्रेस लाइन्स और सेगमेंट सेलेक्टर रजिस्टर जोड़े गए थे, लेकिन उन सभी को १६ बिट्स पर रखा, जैसे कि ,० ,० के पहले।
Psusi

-1

एक 32 और 64 बिट ओएस दोनों 64 बिट प्रोसेसर पर चल सकते हैं, लेकिन 64 बिट ओएस 64 बिट प्रोसेसर की पूर्ण शक्ति (बड़े रजिस्टर, अधिक निर्देश) का उपयोग कर सकते हैं - संक्षेप में यह एक ही समय में अधिक काम कर सकता है। एक 32 बिट प्रोसेसर केवल 32 बिट विंडोज ओएस का समर्थन करता है।


3
यह आम तौर पर गलत है, हालांकि विशेष रूप से x64 के लिए सही है।
क्रिसइंमॉन्टनॉन

1
एक 32 बिट प्रोसेसर ऐसे प्रोसेसर आर्किटेक्चर पर चलने के लिए डिज़ाइन किए गए किसी भी ऑपरेटिंग सिस्टम को चलाएगा।
वैक्सहेड

32-बिट x 86 OS स्पष्ट रूप से ARM64 पर नहीं चल सकता है, इसलिए 32 and 64 bit OS can run on a 64 bit processorयह आमतौर पर सही नहीं है
phuclv

@ Phúc 64 बिट प्रोसेसर हो सकता है, जो उनके 32 बिट ट्विन को सपोर्ट नहीं करता है। हालाँकि आप अपने तर्क में झूठे तर्क का इस्तेमाल करते हैं। 32 बिट्स माइक्रोएसआरसी पर सनोस 4.4.1 एआरएम 32 पर भी नहीं चलेगा। अपने तर्क साधनों का उपयोग करना, यह आमतौर पर सही नहीं है कि 32 बिट प्रोसेसर 32 बिट प्रोसेसर पर चल सकता है। अगर मैं आपकी तरह सामान्य ज्ञान को अनदेखा करता हूं, तो मैं तर्क दे सकता हूं कि 32 बिट एआरएम ओएस इंटेल i386 / x64 पर चलता है, क्योंकि एंड्रॉइड डेवलपर्स अपने विंटेल मशीनों पर एंड्रॉइड एआरएम इमेज चलाते हैं। बेशक ओएस सही प्रोसेसर परिवार के लिए है और बेशक ओएस भौतिक हार्डवेयर पर चलता है और अनुकरण नहीं करता है (पर्याप्त कहा गया है, बाहर)
टीनो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.