it-swarm.asia

هل يمكن تشغيل نظام تشغيل 32 بت في معالج 64 بت؟

ما الفرق بين 32 بت و 64 بت؟ هل يمكن تشغيل نظام تشغيل 32 بت في معالج 64 بت؟

23
Prabhu

سؤالك هو العمارة محددة. إلى x64 هو في الأساس امتدادا إلى x86 الهندسة المعمارية. وهو يدعم مساحة العنوان 64 بت. ويوفر بعض التعليمات الجديدة والسجلات الجديدة.

يمكنك تشغيل 32 بت x 86 Windows على جهاز x64. لاحظ أنه لا يمكنك القيام بذلك على أنظمة Itanium 64 بت.

32
Mehrdad Afshari

يمكن لمعالج 64 بت تشغيل كلا من 32 و 64 OS (على الأقل x64 يمكن). يمكن للمعالج 32 بت تشغيل 32 أصليًا فقط.

الفرق هو في الغالب عن حجم المؤشر/المرجع. على أجهزة 64 بت ، يمكنك الرجوع إلى عنوان في نطاق عناوين 64 بت (وبالتالي يمنحك 2 ^ 64 بايت من الذاكرة). على 32 بت يمكنك فقط معالجة 2 ^ 32 بايت (= 4 جيجابايت). الآن إذا نظرت إلى أجهزة الكمبيوتر الحالية ، فمن الواضح لماذا ينتقل العالم إلى 64 بت: 32 بت لا يمكن بسهولة معالجة جميع RAM بعد الآن.

على x64 (AMD/Intel) لديك فوائد إضافية من 64 بت. وحدة المعالجة المركزية لديها المزيد من السجلات ، وبالتالي يسمح رمز أكثر كفاءة.

في أبنية أخرى ، الاختلافات بين 64 و 32 بت أقل وضوحًا. على سبيل المثال ، كان نينتندو 64 (تذكر ذلك؟) عبارة عن جهاز 64 بت ، لكن معظم الكود الخاص به كان 32 بت. حتى في هذه الحالة ، خدم 64 بت كخدعة تسويقية.

14
Lemmy

الإجابة المقبولة حاليًا صحيحة بشكل عام ولكن ليس بشكل خاص. في الحقيقة لا يوجد شيء واحد يسمى "وحدة المعالجة المركزية 32 بت" أو "وحدة المعالجة المركزية 64 بت" - وهذا هو الوصف الذي يشير إلى جزء صغير واحد فقط من بنية وحدة المعالجة المركزية. لخطوط اختيار العنوان بين وحدة المعالجة المركزية والذاكرة ، أي مساحة العنوان المتاحة المتاحة لعمليات الذاكرة.

في الأيام الخوالي عندما كانت وحدة المعالجة المركزية عندما اعتاد الناس الجلوس ونسج (التفاف) الأسلاك بين المعالج والذاكرة ، كان عليك استخدام إما 32 أو (نظريًا ، لأنه لم يكن موجودًا في ذلك الوقت) 64 سلكًا بين وحدة المعالجة المركزية ووحدة تحكم الذاكرة التي سيتم استخدامها لتحديد عنوان الذاكرة الذي تريد الوصول إليه. على سبيل المثال ، دعنا نقول أن لدينا بنية ذاكرة 2 بت: إرسال 00 سيحدد العنوان 0 ، 01 سيختار العنوان 1 ، 10 سيختار العنوان 2 ، و 11 سيختار العنوان 3. هذا 2-بت يعطينا 2 ^ 2 بايت of RAM (4 بايت).

إذا كنت تأخذ وحدة المعالجة المركزية 32 بت وقمت بإضافة 32 سلكًا إضافيًا بين وحدة المعالجة المركزية ووحدة التحكم في الذاكرة بحيث يمكنك بشكل سحري دعم المزيد من الذاكرة ، لديك الآن "وحدة المعالجة المركزية 64 بت" التي يمكن تشغيلها 32 بت رمز أو رمز 64 بت. ماذا يعني هذا وكيف يحدث هذا؟ حسنًا ، دعنا نأخذ وحدة المعالجة المركزية 2-بت الخاصة بنا من الجزء السابق من هذه الإجابة ونضيف سلكًا آخر ، ونحولها إلى وحدة المعالجة المركزية 3-بت ، تأخذنا من 4 بايت إلى 2 ^ 3 أو 8 بايت من ذاكرة الوصول العشوائي.

سيتم تشغيل الكود "2 بايت" الموجود ، وتحديد قيم آخر سلكين كما هو موضح أعلاه (00-11). سنقوم بتوصيل الاتصال الإضافي ليكون صفرًا افتراضيًا ، لذا فعندما يتم تشغيل الكود 2 بايت ، وعندما يختار 00 ، فإنه في الواقع يختار 000 وعندما يختار 11 ، فإنه يتم بالفعل اختيار 011. سهل.

الآن يريد مبرمج كتابة رمز 3 بايت "الأصلي" ويكتب برنامجها للاستفادة من مساحة العنوان الإضافية. وهي تخبر وحدة المعالجة المركزية بأنها تعرف ما تفعله وأنها ستتحكم يدويًا في الأسلاك الجديدة الإضافية. يعرف برنامجها السلك (الأسلاك) الإضافية ويرسل بشكل صحيح 000-111 ، مما يتيح لها الوصول الكامل إلى مجموعة الذاكرة التي تدعمها بنية وحدة المعالجة المركزية الجديدة هذه.

ولكن هذا ليس كيف يحدث ذلك. في الواقع ، هذا عادة ليس كيف تحدث الأشياء. عندما تم تقديم وحدات المعالجة المركزية 64 بت لأول مرة (وكان هناك الكثير منها) ، فقد ذهبوا جميعًا مع تصميمات/تصاميم جديدة تمامًا. لم يقتصر الأمر على أسلاك 32 إضافية ويقولون "هنا تذهب ، هذا هو وحدة المعالجة المركزية 64 بت يمكنك استخدامها في وضع 32 بت أو 64 بت ،" لكنهم قالوا "هذا هو وحدة المعالجة المركزية الجديدة لدينا و لا يتطلب الأمر سوى البرمجة بلغة الماكينة الجديدة تمامًا ، ويتصرف بهذه الطريقة الجديدة تمامًا ، ويحل العديد من المشاكل المختلفة بأناقة أكثر بكثير من مثيلتها في x86/i386 32 بت من وحدات المعالجة المركزية القديمة ، وهي بنية أصلية 64 بت. ".

كانت تلك هي قصة إنتل إيتانيوم ، المعروفة الآن باسم "إيتانيك" بسبب حجمها الكبير. كان من المفترض أن تبشر في عصر 64 بت الجديد ، وكان شيئا ما لمح. تعليمات الطول المتغير ، ذاكرات التخزين المؤقت الضخمة ، مساحة العنوان 64 بت ، الكثير من السجلات ، مثيرة للغاية ، رائعة ، وصعبة للغاية لإقناع الجميع بإعادة ترجمة أو كتابة 20 سنة من الشفرة القديمة لـ. كان هذا هو الحال عندما كانت AMD و Intel تتنافسان فعليًا ، وكانت لدى AMD فكرة رائعة تقول "دعنا ننسى كل هذا" حل جميع مشاكل العالم "وإضافة 32 سلكًا إضافيًا إلى i386 وجعل 64 بت متوافق مع 64 بت بت وحدة المعالجة المركزية "والهندسة المعمارية x86_64 وحدة المعالجة المركزية ولدت.

في الواقع ، إذا نظرت إلى أسماء ومصادر kernel لأنظمة التشغيل الرئيسية (Linux ، و Windows ، و BSD ، وما إلى ذلك) ستجدهم ممتلئين بالإشارات إلى AMD64 CPUs و AMD64 architecture. توصلت AMD إلى استراتيجية رابحة لجعل الجميع يتحول إلى عالم 64 بت مع الحفاظ على التوافق مع تطبيقات 32 بت ، بطريقة يمكن أن يعمل نظام التشغيل 32 بت على أجهزة 64 بت أو حتى تطبيقات 32 بت يمكن أن تعمل على نظام التشغيل 64 بت على الأجهزة 64 بت. تابعت Intel مجموعة عاجلاً وليس آجلاً باستخدام بنية "Intel EM64T" الخاصة بها (والتي كانت مطابقة بشكل أساسي لـ AMD64) و x86_64 فاز بها بينما لم تتم رؤية Itanic وغيرها مثل MIPS64 و ALPHA64 في سوق سطح المكتب/الخادم.

tl؛ dr AMD64 aka x86_64 CPUs مصممة لتكون متوافقة مع كل من النواة 32 و 64 بت والرمز ، ولكن معظم وحدات المعالجة المركزية 64 بت هي بالتأكيد ليست متوافقة مع الإصدارات السابقة في نفس الطريقة. يمكن لوحدة المعالجة المركزية 32 بت الوصول إلى أكثر من 4 جيجا بايت من الذاكرة ، بينما يمكن لوحدة المعالجة المركزية 64 بت الوصول إلى 16 جيجابت مذهلة (16 × 1024 ^ 6 بايت ، أو 4 مليار مرات الكثير من الذاكرة مثل 4GiB).

3
Mahmoud Al-Qudsi