عدي للمحتوى

64-bit (x86-64)

مرجع المعماريةFeex

الـ x86-64 هو الامتداد الـ 64-bit لمعمارية تعليمات الـ x86. بيحدد أوضاع التنفيذ، والمسجلات (registers)، وقواعد العنونة؛ لكنه لوحده مبيحددش متطلبات التطبيق الكاملة للمعالج أو لنظام التشغيل.

اللي محتاج تعرفه

الـ x86-64 هو الامتداد الـ 64-bit لمعمارية تعليمات الـ x86. بيحدد أوضاع التنفيذ، والمسجلات (registers)، وقواعد العنونة؛ لكنه لوحده مبيحددش متطلبات التطبيق الكاملة للمعالج أو لنظام التشغيل.

بيشتغل إزاي

في وضع الـ 64-bit، مسجلات الأغراض العامة تقدر تشيل معاملات 64-bit والمعمارية بتوفر مسجلات إضافية وبيئة برمجة مختلفة عن الـ x86 الـ 32-bit القديم. وضع التوافق بيسمح لنظام التشغيل بدعم التطبيقات القديمة المناسبة، لكن نظام التشغيل هو اللي بيحدد الصيغ والواجهات اللي بيوفرها للتطبيقات. وجود معالج 64-bit مش معناه إن كل تعليمة هتستخدم بيانات 64-bit.

المجالات المفيدة فيها

التطبيق المبني لـ x86-64 ABI بيتوقع المسجل، وقواعد الاستدعاء (calling-convention)، وبيئة التعليمات الأساسية للـ ABI ده. ملف الـ Arm64 الثنائي (binary) بيعتبر معمارية تانية خالص حتى لو الاتنين وصفوا نفسهم بـ 64-bit. الترجمة أو المحاكاة (emulation) ميزة برمجية منفصلة، ومش نتيجة مترتبة على مجرد وجود مسجلات 64-bit.

طريقة فحص الدعم والتمكين

لأجهزة x86، الوظيفة الممتدة 80000001H في CPUID، البت 29 في EDX بتعمل تعداد لقدرة الـ long-mode. نظام التشغيل المدعوم لازم يفعل بيئة التنفيذ وتقسيم الصفحات (paging) المناسبين. افحص معمارية نظام التشغيل الشغال بالإضافة لقدرة المعالج.

قدرة الهاردوير، وبيئة التشغيل الحالية، ومتطلبات الملف الثنائي للتطبيق دي كلها طبقات مختلفة. أسماء المعماريات ومستويات الـ ABI لازم تتفهم كعقود صريحة ومحددة مش كقاعدة عامة بتقول إن الأحدث دايماً متوافق.

اللى الميزة مش بتثبته

تسمية 64-bit مبتثبتش عرض العناوين الفعلية أو الافتراضية المنفذ، ولا الحد الأقصى للـ RAM المثبتة، ولا دعم x86-64-v2/v3/v4، ولا الأهلية لـ Windows أو التوافق مع driver معين. اتأكد من كل متطلب لوحده.

التوافق والأداء فى الممارسة العملية

راجع المتطلبات الموروثة الكاملة والبيئة الفعلية المرئية للعملية (process). بالنسبة للـ VM، افحص النظام الضيف بدل ما تفترض إن موديل المضيف معروض زي ما هو بدون تغيير. النسخة الاحتياطية المدعومة (fallback build) لازم توضح خط الأساس بتاعها بوضوح.

قائمة تحقق عملية للتأكد

  1. سجل الموديل الدقيق للمعالج او المنصة وإصدارات التطبيق ونظام التشغيل وبيئة التشغيل المشاركة. احتفظ بنص الخطأ او المتطلب الفعلى زى ما هو.
  2. راجع مرجع الشركة المصنعة للموديل الدقيق ده، وبعدين افحص الإمكانية الفعلية وحالة التمكين فى البيئة اللى شغال فيها البرنامج.
  3. قارن كل متطلب للملف الثنائى (binary) او الواجهة الخلفية (backend) المختارة. وجود ميزة باسم شبه كده او اسم مستعار او تصنيف تقنى عام مش كفاية.
  4. اتأكد ان التطبيق اختار التنفيذ المطلوب. استخدم أدوات التشخيص الموثقة والبديل الاحتياطى المدعوم لما المتطلبات متتحققش.
  5. اعمل تغيير واحد مدعوم فى المرة الواحدة وكرر نفس عبء العمل. احتفظ بالإعداد الأصلى ومسار الاسترجاع متاحين.

لو الميزة مدرجة بس البرمجيات مش قادرة تستخدمها

ابدأ بالمكون اللى فشل بالتحديد. قاعدة بيانات العتاد بتوصف الإمكانية المسجلة؛ لكن نظام التشغيل او الـ hypervisor ممكن يعرضوا بيئة فعلية تانية. خطأ التعليمة غير الصالحة (illegal-instruction) بيحتاج برضه فحص للتعليمة الفعلية اللى سببت العطل والنسخة المبنية من الثنائى، علشان التلف او وجود تعليمة تانية غير مدعومة ممكن ينتج عنهم نفس العرض.

ثبت إصدار التطبيق او برنامج التشغيل او بيئة التشغيل المدعومة للمنصة بالتحديد، واستخدم بنية الأساس (baseline) او البنية الاحتياطية الموثقة من الشركة المصنعة لو لزم الأمر. تحديث البرامج مش هيخلق تعليمة المعالج نفسه بيفتقدها. تغييرات الـ Firmware وسياسات الأمان لازم تتبع إجراءات الشركة المصنعة للنظام وخطة استرجاع بدل اتباع وصفة تحسين عامة.

المصادر ونطاق الشرح ده

Intel 64 and IA-32 Architectures Software Developer's Manual · x86-64 psABI: مستويات معمارية ومعمارية دقيقة للمعالج

المراجع دى بتحدد السلوك المعمارى ومتطلبات البرمجيات. هى مش بتتحقق بشكل مستقل من كل قيمة ميزة فى صفحة موديل العتاد المربوطة. لدعم الموديل، استخدم أدلة الشركة المصنعة فى الصفحة دى وافحص إعدادات النظام الفعلية. المقال ده مش بيقدم تقييم أداء، او شهادة اعتماد، او تاريخ مراجعة مستقلة.

المصادر والتحقق

حقوق التحرير: Feex. مفيش تاريخ مراجعة مستقل متسجل. إزاي بنعمل أبحاثنا.

هل المقالة دي كانت مفيدة؟

مجرد نعم أو لأ كفاية. اختار سبب لو تحب، أو اكتب ملاحظة سريعة.

هل المقالة دي كانت مفيدة؟