موقف من الحياة اليومية#

شاب قاعد على مكتب قدام لابتوب، وحاطط إيده على دقنه وبيفكر، وجنب اللابتوب موبايل.
صورة توضيحية مولّدة بالذكاء الاصطناعي

داخل تحمّل برنامج من موقعه الرسمي.
لقيت 3 زراير: x64 وArm64 و32-bit.
تدوس على أنهي واحد؟

وفي نفس اليوم، حاولت تشغّل برنامج نظام افتراضي (Virtual Machine) علشان تجرّب نظام تشغيل تاني.
البرنامج طلّع رسالة إن الـ Virtualization مش شغالة.
طب هي مش شغالة ليه، والمعالج جديد؟

خلاصة سريعة#

  • الـ ISA (Instruction Set Architecture) · معمارية مجموعة التعليماتمجموعة التعليمات التي يفهمها المعالج وطريقة كتابتها، وهي ما يُقصد غالبًا بمعمارية المعالج. والبرنامج المترجم لمعمارية معينة لا يعمل مباشرة على معالج من معمارية أخرى.عرض في القاموس (المعمارية) هي «اللغة» اللي المعالج بيفهمها، والبرنامج لازم يكون معمول بنفس اللغة علشان يشتغل على طول.
  • أشهر معماريتين: x86 · معمارية x86معمارية معالجات بدأت بمعالج Intel 8086 سنة 1978، وتستخدمها معالجات Intel وAMD. ويبقى الكود القديم المكتوب لها قابلًا للتشغيل على المعالجات الحديثة.عرض في القاموس ونسختها الـ 64-bit (x64 (x86-64 / AMD64) · معمارية x86 بنسختها 64-bitامتداد بنظام 64-bit لمعمارية x86 يحافظ على التوافق مع البرامج القديمة، ويضيف عناوين ذاكرة بطول 64-bit ومسجّلات أكثر. واسمها عند AMD هو AMD64، وعند Intel هو Intel 64.عرض في القاموس) في كمبيوترات Intel وAMD، وArm · معمارية Armمعمارية معالجات من نوع RISC تطورها شركة Arm وترخّصها لشركات أخرى تصنع المعالجات. وتتميز بأداء عالٍ مقابل استهلاك قليل للطاقة، لذلك تنتشر في الهواتف والأجهزة اللوحية وبعض الحواسيب المحمولة.عرض في القاموس في الموبايلات وبعض اللابتوبات.
  • الـ 64-bit بيستخدم رامات أكتر بكتير من الـ 32-bit، وWindows 11 بقى 64-bit بس.
    وعلشان تشغّل Virtual Machine، الـ Virtualization لازم تكون مدعومة في المعالج وشغالة من الـ UEFI.

ببساطة#

فكّر في المعالج كأنه موظف بيفهم لغة واحدة بس.
البرنامج عبارة عن ورقة تعليمات مكتوبة بلغة معينة.

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

والـ Architecture هي اللغة دي، والمترجم اسمه Emulation · المحاكاةتشغيل برنامج مكتوب لمعمارية معالج على معالج من معمارية أخرى، بترجمة تعليماته أثناء التشغيل. ومنه تشغيل برامج x86 وx64 على حواسيب Windows التي تعمل بمعالجات Arm.عرض في القاموس (محاكاة).

البرنامج المعمول لـ x64 بيشتغل على طول على معالج x64، وعلى معالج Arm64 بيعدّي على الـ Emulation الأول.

بالتفصيل#

يعني إيه Architecture؟#

في مقال المعالج عرفنا إن المعالج بينفذ تعليمات صغيرة، زي «حمّل» و«اجمع» و«خزّن».

مجموعة التعليمات اللي المعالج بيفهمها، وشكل كتابتها، اسمها ISA (Instruction Set Architecture)، ودي اللي بنقصدها لما نقول «الـ Architecture بتاعة المعالج».
ولما مبرمج يعمل برنامج، البرنامج بيتحوّل لتعليمات Architecture معينة.
علشان كده صفحة التحميل بتسألك: معالجك بيفهم أنهي Architecture؟

x86 وx64#

  • x86: الـ Architecture دي بدأت بمعالج Intel 8086 سنة 1978.
    وIntel بتقول إن الكود المعمول لمعالجات سنة 1978 لسه بيشتغل على معالجاتها الحديثة، يعني الـ Architecture دي بتحافظ على البرامج القديمة.
  • x64: امتداد 64-bit لـ x86، وبيشغّل البرامج القديمة برضه (Backward compatible).
    وليها أكتر من اسم لنفس الحاجة تقريبًا: x86-64، وAMD64 عند AMD، وIntel 64 عند Intel.

ومعالجات Intel وAMD اللي في الكمبيوترات واللابتوبات العادية بتستخدم الـ Architecture دي.
وزرار x64 في صفحة التحميل معناه البرنامج معمول للمعالجات دي.

Arm#

  • Arm هي Architecture من نوع RISC (Reduced Instruction Set Computer) · حاسوب مجموعة التعليمات المختصرةطريقة لتصميم المعالج تعتمد على تعليمات بسيطة، كل تعليمة تنفذ عملًا صغيرًا لكن بسرعة. ومن أشهر معمارياتها Arm.عرض في القاموس (Reduced Instruction Set Computer): تعليمات أبسط، كل تعليمة بتعمل حاجة صغيرة، بس بتتنفذ بسرعة.
  • وقصادها نوع CISC (Complex Instruction Set Computer) · حاسوب مجموعة التعليمات المعقدةطريقة لتصميم المعالج تعتمد على تعليمات أكثر تعقيدًا، قد تنفذ التعليمة الواحدة منها عدة خطوات. وهي الطريقة المقابلة لـ RISC.عرض في القاموس (Complex Instruction Set Computer) اللي تعليماته أعقد.
  • ميزة Arm الكبيرة: أداء عالي مقابل كهربا قليلة، علشان كده منتشرة في الموبايلات والتابلت، وكمان في لابتوبات وأجهزة تانية.
  • وشركة Arm نفسها مش بتصنّع المعالجات للأجهزة: هي بتطوّر الـ Architecture وبتدّي ترخيص للشركات اللي بتصنّع المعالجات.

وزرار Arm64 في صفحة التحميل معناه البرنامج معمول للمعالجات دي بنسخة 64-bit.

Windows على معالجات Arm#

فيه لابتوبات عليها Windows ومعالجها Arm.
طب البرامج اللي معمولة لـ x64 بتشتغل عليها إزاي؟

  • Windows 11 على Arm بيشغّل برامج x86 وx64 عن طريق Emulation: بيترجم تعليمات البرنامج لتعليمات Arm64 وهو شغال، وبيحتفظ بالترجمة علشان المرة الجاية تبقى أسرع.
  • ومن Windows 11 24H2 فيه محاكي جديد اسمه Prism أسرع من اللي قبله.
  • بس فيه حاجة ماينفعش تتحاكى: الـ Drivers (التعريفات اللي بتشغّل القطع زي الطابعة وكارت الشاشة).
    الـ Emulation بيشتغل مع البرامج العادية بس، والـ Drivers لازم تكون معمولة لـ Arm64.

علشان كده، لو فيه نسخة Arm64 من البرنامج، هي الأحسن على جهاز Arm، لأنها بتشتغل من غير ترجمة.

32-bit و64-bit#

الرقم ده بيوصف إزاي المعالج والنظام بيتعاملوا مع الذاكرة.
والفرق الأوضح في أقصى رامات النظام يقدر يستخدمها، وده من أرقام Microsoft لـ Windows 10:

  • 32-bit: لحد 4 GB بس، في كل النسخ.
  • 64-bit: لحد 128 GB في نسخة Home، و2 TB في Pro.
أقصى رامات بيستخدمها Windows 10 حسب النسخة، بأرقام Microsoft. والصناديق بتوضّح الفرق، ومش بالنسبة الحقيقية.

وكمان:

  • Windows 11 بقى 64-bit بس، ومفيش منه نسخة 32-bit.
  • البرامج الـ 32-bit بتشتغل عادي على Windows الـ 64-bit، عن طريق جزء في النظام اسمه WOW64، ومش محتاج تشغّله بنفسك.
  • لكن البرامج القديمة جدًا الـ 16-bit مابتشتغلش على Windows الـ 64-bit خالص.
  • ولو عندك Windows 32-bit وعايز تنقل لـ 64-bit، مفيش ترقية مباشرة: لازم تمسح الهارد وتسطّب نسخة 64-bit من الأول، وبعدين تسطّب برامجك تاني.

ونرجع للموقف: لو جهازك فيه معالج Intel أو AMD وعليه Windows 64-bit، اختار x64.
ولو معالجه Arm، اختار Arm64 لو موجودة.

دعم الـ Virtualization#

الـ Virtual Machine (جهاز افتراضي) هو نظام تشغيل كامل شغال كبرنامج جوه نظامك، زي إنك تشغّل Linux جوه Windows.
وعلشان ده يشتغل بكفاءة، المعالج فيه ميزة اسمها Hardware Virtualization (Intel VT-x / AMD-V) · دعم المعالج للأنظمة الافتراضيةميزة في المعالج تسمح بتشغيل أنظمة تشغيل افتراضية داخل النظام بكفاءة، واسمها عند Intel هو VT-x وعند AMD هو AMD-V أو SVM. ويجب أن يدعمها المعالج وأن تكون مفعّلة من إعدادات UEFI أو BIOS.عرض في القاموس:

  • عند Intel اسمها VT-x (Intel Virtualization Technology).
  • عند AMD اسمها AMD-V أو SVM.

عندها شرطين:

1 - المعالج يدعمها، ومع Intel لازم الـ BIOS كمان يدعمها.

2 - تكون شغالة (Enabled) من إعدادات الـ UEFI (Unified Extensible Firmware Interface) · الواجهة الموحدة للبرامج الثابتة القابلة للتوسعنوع أحدث من برامج الإقلاع الثابتة حلّ محل BIOS التقليدي في كثير من الحواسيب الحديثة.عرض في القاموس أو الـ BIOS، لأنها في بعض الأجهزة بتبقى مقفولة.

ودي إجابة السؤال التاني في الموقف: المعالج جديد ويدعمها، بس الخاصية مقفولة من الـ UEFI.

جرّب بنفسك#

على Windows: النظام 32-bit ولا 64-bit؟

1 - افتح Settings ← System ← About.

2 - النتيجة المتوقعة: تحت Device specifications، جنب System type، هتلاقي نوع النظام.

على Windows: الـ Virtualization شغالة؟

1 - اضغط Ctrl + Shift + Esc علشان تفتح الـ Task Manager.

2 - اختار Performance، وبعدها CPU.

3 - النتيجة المتوقعة: سطر Virtualization، وجنبه Enabled لو شغالة، أو Disabled لو مقفولة.

لو مقفولة: من Settings ← System ← Recovery ← Advanced startup، وبعدها Troubleshoot ← Advanced options ← UEFI Settings.
وهناك دوّر على Intel Virtualization Technology أو VT-x أو AMD-V أو SVM، والاسم بيختلف من شركة للتانية.

على Linux:

1 - افتح الطرفية، واكتب:

نافذة الطرفية
uname -m

2 - النتيجة المتوقعة على معالج Intel أو AMD بنظام 64-bit:

الناتج المتوقع
x86_64

3 - وعلشان تشوف الـ Architecture ودعم الـ Virtualization مع بعض، اكتب:

نافذة الطرفية
lscpu

4 - النتيجة المتوقعة: سطر Architecture فيه نوع الـ Architecture، وسطر Virtualization فيه اسم الميزة لو المعالج بيدعمها، مثلًا:

الناتج المتوقع
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Virtualization:      VT-x

والسطر CPU op-mode(s) معناه إن المعالج يقدر يشتغل 32-bit و64-bit.

للمتعمقين

ليه 32-bit معناها 4 GB؟

لو العنوان في الذاكرة طوله 32 بت، فعدد العناوين المختلفة 2^32 = 4,294,967,296، وده 4 GB بالظبط لو كل عنوان بايت.
ولما العنوان يبقى 64 بت، عدد العناوين بيبقى أكبر بكتير.

البرنامج الواحد ليه حدود هو كمان

حتى على Windows الـ 64-bit، البرنامج الـ 32-bit ليه مساحة ذاكرة 2 GB افتراضيًا، وممكن توصل 4 GB لو المبرمج فعّل إعداد معين.
أما البرنامج الـ 64-bit فمساحته على x64 بتوصل 128 TB من Windows 8.1 وبعده.

أسماء x64

  • الـ AMD64 فيها وضع اسمه Long mode، وجواه وضعين: 64-bit mode للبرامج الـ 64-bit، وCompatibility mode للبرامج القديمة.
  • وIntel بتسمّي الـ Architecture الـ 32-bit IA-32، والـ 64-bit Intel 64.

الـ Virtualization والبرامج التانية

لو أداة Intel Processor Identification Utility قالت إن VT-x مش شغال، والـ Task Manager قال إن الـ Virtualization شغالة، فده معناه إن فيه برنامج Hypervisor تاني شغال على الجهاز ومستخدم الميزة.

أخطاء شائعة#

  • «x64 ده لمعالجات AMD بس علشان اسمه AMD64»: لأ.
    x64 وx86-64 وAMD64 وIntel 64 أسماء لنفس الـ Architecture تقريبًا، وبتشتغل على معالجات Intel وAMD.
  • «البرنامج الـ 32-bit مش هيشتغل على Windows الـ 64-bit»: لأ.
    بيشتغل عادي عن طريق WOW64، والبرامج الـ 16-bit القديمة جدًا بس هي اللي مابتشتغلش.
  • «المعالج بيدعم الـ Virtualization يبقى هي شغالة»: مش شرط.
    ممكن تكون مقفولة من الـ UEFI، ولازم تتفتح من هناك.

المصطلحات#

  • المعالج (CPU (Central Processing Unit) · المعالج (وحدة المعالجة المركزية)الجزء الذي ينفّذ تعليمات البرامج في الحاسوب، تعليمةً بعد تعليمة. ويتكون أساسًا من وحدة الحساب والمنطق والمسجّلات ووحدة التحكم.عرض في القاموس): الجزء الذي ينفّذ تعليمات البرامج في الحاسوب.
  • معمارية مجموعة التعليمات (ISA (Instruction Set Architecture) · معمارية مجموعة التعليماتمجموعة التعليمات التي يفهمها المعالج وطريقة كتابتها، وهي ما يُقصد غالبًا بمعمارية المعالج. والبرنامج المترجم لمعمارية معينة لا يعمل مباشرة على معالج من معمارية أخرى.عرض في القاموس): مجموعة التعليمات التي يفهمها المعالج وطريقة كتابتها.
  • معمارية x86 (x86 · معمارية x86معمارية معالجات بدأت بمعالج Intel 8086 سنة 1978، وتستخدمها معالجات Intel وAMD. ويبقى الكود القديم المكتوب لها قابلًا للتشغيل على المعالجات الحديثة.عرض في القاموس): معمارية بدأت بمعالج Intel 8086 سنة 1978.
  • معمارية x86 بنسختها 64-bit (x64 (x86-64 / AMD64) · معمارية x86 بنسختها 64-bitامتداد بنظام 64-bit لمعمارية x86 يحافظ على التوافق مع البرامج القديمة، ويضيف عناوين ذاكرة بطول 64-bit ومسجّلات أكثر. واسمها عند AMD هو AMD64، وعند Intel هو Intel 64.عرض في القاموس): امتداد 64-bit لمعمارية x86، ويُسمى أيضًا x86-64 وAMD64 وIntel 64.
  • معمارية Arm (Arm · معمارية Armمعمارية معالجات من نوع RISC تطورها شركة Arm وترخّصها لشركات أخرى تصنع المعالجات. وتتميز بأداء عالٍ مقابل استهلاك قليل للطاقة، لذلك تنتشر في الهواتف والأجهزة اللوحية وبعض الحواسيب المحمولة.عرض في القاموس): معمارية من نوع RISC تتميز بأداء عالٍ مقابل استهلاك قليل للطاقة.
  • حاسوب مجموعة التعليمات المختصرة (RISC (Reduced Instruction Set Computer) · حاسوب مجموعة التعليمات المختصرةطريقة لتصميم المعالج تعتمد على تعليمات بسيطة، كل تعليمة تنفذ عملًا صغيرًا لكن بسرعة. ومن أشهر معمارياتها Arm.عرض في القاموس): تصميم للمعالج يعتمد على تعليمات بسيطة وسريعة.
  • حاسوب مجموعة التعليمات المعقدة (CISC (Complex Instruction Set Computer) · حاسوب مجموعة التعليمات المعقدةطريقة لتصميم المعالج تعتمد على تعليمات أكثر تعقيدًا، قد تنفذ التعليمة الواحدة منها عدة خطوات. وهي الطريقة المقابلة لـ RISC.عرض في القاموس): تصميم للمعالج يعتمد على تعليمات أكثر تعقيدًا.
  • المحاكاة (Emulation · المحاكاةتشغيل برنامج مكتوب لمعمارية معالج على معالج من معمارية أخرى، بترجمة تعليماته أثناء التشغيل. ومنه تشغيل برامج x86 وx64 على حواسيب Windows التي تعمل بمعالجات Arm.عرض في القاموس): تشغيل برنامج مكتوب لمعمارية على معالج من معمارية أخرى بترجمة تعليماته.
  • دعم المعالج للأنظمة الافتراضية (Hardware Virtualization (Intel VT-x / AMD-V) · دعم المعالج للأنظمة الافتراضيةميزة في المعالج تسمح بتشغيل أنظمة تشغيل افتراضية داخل النظام بكفاءة، واسمها عند Intel هو VT-x وعند AMD هو AMD-V أو SVM. ويجب أن يدعمها المعالج وأن تكون مفعّلة من إعدادات UEFI أو BIOS.عرض في القاموس): ميزة في المعالج لتشغيل أنظمة افتراضية بكفاءة.
  • الواجهة الموحدة للبرامج الثابتة القابلة للتوسع (UEFI (Unified Extensible Firmware Interface) · الواجهة الموحدة للبرامج الثابتة القابلة للتوسعنوع أحدث من برامج الإقلاع الثابتة حلّ محل BIOS التقليدي في كثير من الحواسيب الحديثة.عرض في القاموس): برنامج الإقلاع الثابت الذي حلّ محل BIOS التقليدي في كثير من الحواسيب الحديثة.

اختبر نفسك#

لابتوب عليه Windows 11 ومعالجه Intel. صفحة التحميل فيها x64 وArm64. تختار أنهي؟

إظهار الإجابة

الإجابة الصحيحة: x64، لأن معالجات Intel بتستخدم x86 بنسختها 64-bit

معالجات Intel وAMD بتستخدم x86، وWindows 11 كله 64-bit، فالنسخة المناسبة x64.
ونسخة Arm64 معمولة لمعالجات Arm.

لابتوب بمعالج Arm عليه Windows 11، وعايز تشغّل عليه برنامج معمول لـ x64. إيه اللي هيحصل؟

إظهار الإجابة

الإجابة الصحيحة: هيشتغل عن طريق الـ Emulation، لكن الـ Drivers لازم تكون معمولة لـ Arm64

Windows 11 على Arm بيشغّل برامج x86 وx64 عن طريق Emulation.
لكن الـ Emulation للبرامج العادية بس، والـ Drivers لازم تكون معمولة لـ Arm64.

معالجك بيدعم VT-x، والـ Task Manager مكتوب فيه Virtualization: Disabled. الحل إيه؟

إظهار الإجابة

الإجابة الصحيحة: تشغيل الميزة من إعدادات الـ UEFI أو الـ BIOS

المعالج بيدعمها، بس هي مقفولة.
افتحها من إعدادات الـ UEFI أو الـ BIOS، وغيّر الإعداد ده بس.