PAE: الحل لمشكلة محدودية الوصول للذاكرة في أنظمة 32 بت

السلام عليكم ورحمة الله

تكلمنا في تدوينة سابقة عن الفرق بين معماريتي 32 بت و 64 بت والحيرة التي وضعتنا فيها وجود معماريتين لهما احتياجات مختلفة.  وكأحد الحلول الناجحة التي يُمكن أن تُعطي معمارية 32 بت عمر أطول هي تقنية PAE: Physical Address Extension، وهي ميزة لتمكين معالجات 32 بت للوصول لمناطق عناوين حقيقية (Physical) أكبر من 4 قيقا مثل الذاكرة العشوائية والـ Memory mapped devices.

الفكرة في ميزة الـ PAE أن نظام التشغيل يقوم بتمديد طول عناوين الذاكرة في خريطة جدولة الذاكرة من 32 بت إلى رقم أكبر، مثلاً 36 بت في أنظمة x86 لتمكين الوصول إلى ذاكرة مقدارها 64 قيقابايت. ولتحقيق هذه الميزة نحتاج لنظام تشغيل، أو نواة نظام تشغيل تدعم هذه الميزة ومعالج يدعمها أيضاً. ومعالجات أنتل أصبحت تدعم هذه الميزة منذ البنتيوم برو المُنتج في أواخر عام 1995، ونواة لينكس أصبحت تدعمها منذ اﻹصدارة رقم2.3.23

بالنسبة للبرامج أو الـ Processes فإن نظام التشغيل يُعطيها جدول خريطة للذاكرة مختلف لكل برنامج، فكل برنامج يرى فقط ذاكرة ذات 32 بت، والبرنامج اﻷخر يرى ذاكرة 32 بت لكن في حيز حقيقي مختلف. مع ذلك لايستطيع البرنامج الواحد أن يصل إلى أكثر من 4 قيقابايت لأنه مصمم لمعمارية 32 بت. فإذا كان البرنامج الواحد يحتاج لذاكرة أكبر من هذه (مثل برامج التصميم) فالحل هو استخدام نظام 64 بت.

تدعم أنظمة التشغيل هذه الميزة اﻹختيارية بسعات مختلفة، مثلاً 8 قيقا،32 قيقا، 64 قيقا، أو 128 قيقا. كمثال لها، نظام لينكس، هايكو،BSD، لماكنتوش، وسولاريس، أما نظام وندوز فهو يحدد السعة إلى 4 قيقا فقط في معظم إصداراته حسب الترخيص، واﻹصدارات التي تسمح بالوصول إلى أكثر من 4 قيقا هي:

  • Windows 2000 Advanced Server  8 G
  • Windows 2000 Datacenter     32 G
  • Windows Server 2003 Enterprise Edition (SP1)   16 G
  • Windows Server 2003 R2 Enterprise Edition  64 G
  • Windows Server 2003 Datacenter   128 G
  • Windows Server 2008 Enterprise, Datacenter  64 G

المصدر

مما نرى نستنتج أن هذه الميزة المهمة تعطي عمراً أكبر لبرامج وأنظمة التشغيل ذات معمارية 32 بت وتجعلها أقل تأثراً بمشكلة محدودية 4 قيقابايت للعناوين.

في نظام لينكس يُمكن معرفة دعم هذه الميزة في النسخة الحالية من نواة النظام بإستخدام اﻷمر:

uname -a

فإذا كان الناتج يحتوي على المقطع pae يعني أنه مدعوم، كالمثال التالي:

Linux linuxlab-ubuntu12 3.2.0-24-generic-pae #37-Ubuntu SMP Wed Apr 25 10:47:59 UTC 2012 i686 i686 i386 GNU/Linux

وبالطبع يُمكن تثبيت نظام تشغيل 32 بت يدعم ميزة pae في جهاز 64 بت. وهذا مفيد للمبرمج بسبب أنه يمكن أن يُنتج برامج 32 بت للعمل في كل المعماريات واﻷنظمة بدون التضحية بالذاكرة.

Advertisements

8 أفكار على ”PAE: الحل لمشكلة محدودية الوصول للذاكرة في أنظمة 32 بت

  1. * البرنامج الـ 32 نفسه لا النظام لا يستطيع الوصول للذاكرة أكبر من 32 بت
    * النظام الـ 32 مثل البرنامج لا يستطيع الوصول للذاكرة أكبر من 32 بت
    * النظام الـ 32 مع معمارية PAE يستطيع الوصول للذاكرة أكبر من 32 بت عند تخصيص ذاكرة البرامج فقط، لا أعرف إذا أيضا يستطيع الوصول في كافة موارده و إلا اصبح 64؟!!

    لذلك PAE ليست بذات الأهمية لان أغلب الأنظمة لديها نسخة 64 و تستطيع تشغيل برامج 32!.

  2. * نظام التشغيل 32 بت لايستطيع الوصول إلى ذاكرة أكبر من 4 قيقا حتى لو كان المعالج 64 بت بدون استخدام PAE.

    * مشكلة 32 بت هي متعلقة بعناوين الذاكرة التي يتعامل فيها المعالج مع الذاكرة العشوائية لتبادل البيانات مع مسجلاته، باقي الموارد مثل القرص والشبكة ليس لها علاقة بهذا الموضوع.

    * نظام التشغيل ذو 64 لايمكن أن يعمل مع معالج 32 بت، لذلك جائت أهمية الـ PAE ان المعالجات 32 بت تستطيع الوصول لذاكرة أكبر من 4 قيقا.

    * نظام التشغيل 32 بت مع PAE يُعتبر نظام ثنائي المعمارية أي يعمل مع 32 و 64 بدون تضحية بالذاكرة

    والنقطة اﻷخرى في أهميتها هي أنه يمكن إنزال نظام تشغيل 32 بت مع معالج 64 بت وذلك لغرض التوافقية في البيئة الواحدة واﻹستفادة من الذاكرة، تخيل أن عندك عدد كبير من اﻷجهزة في مؤسسة وأردت تخصيص نظام لينكس لها، هل تقوم بتخصيص نسختين واحدة 32 بت وأخرى 64 بت، أم تكتفي بنسخة 32 بت مع خاصية PAE وذلك لضمان أن كل الحزم واحدة. وهذا ماكنت أعمل عليه بالضبط لتحويل مؤسسة أو مجموعة مؤسسات إلى نظام لينكس، فكانت بالنسبة لنا المشكلة هي تعدد المعماريات، علما بأن تخصيص توزيعة وتهيئتها وتجربتها يستهلك منا وقت كبير، لذلك تقنية PAE سوف تحل هذه المشكلة إن شاء الله

  3. همم كلامي في بعض الخطأ
    http://technet.microsoft.com/en-us/library/cc784574%28v=ws.10%29.aspx
    يقول أن البرامج أيضا ستستفيد من هذه الميزة.
    أيضا النقطة التي ذكرتها بخصوص الأجهزة المتعددة هي صحيحة
    سأقوم بتركيب PAE Kernel أظنني رأيته في الـ OpenSuse لان معالجي 64 و الـ OpenSuse 32
    للأسف لاتوجد هذه الميزة على WindowsXP فقط على المخدمات.

  4. بالنسبة لنواة لينكس تحتاج لإعادة ترجمة بإستخدام الخيار pae، لكن لا أدري كيف يتم ذلك، ربما توجد طريقة أسهل، أو فقط إنزال نواة تدعم هذه الميزة.

    لكن في النهاية هي حل موقت، ربما نستخدمه لخمس سنين حتى يكتمل الدعم الطويل لنسخة أوبونتو الأخيرة، بعدها يمكن إفتراض أن كل اﻷجهزة تحولت إلى 64 بت ويكون السوق قد جف من اﻷجهزة ذات معمارية 32 بت.
    الجهاز الذي أكتب منه هذا التعليق كان فيه نسختان من أوبونتو، 32 بت و64 بت، اﻷول كان يعمل في جزء مساحته في القرص الصلب 100 قيقا، والثاني 60 قيقا، قمت بإزالتها اليوم وإنزال نسخة أوبونتو الجديدة 32 بت، وأصبح حجم القرص الذي استخدمه 160 قيقا.

  5. ابو اياس اسعد الله اوقاتك بكل خير

    هل هناك كتاب ثالث حول اوبجكت باسكال ؟

    بعد الكتابين الرائعين نحن متشوقين للمزيد

  6. للأسف لاتوجد خطة اﻵن لكتاب ثالث. الكتاب الثالث يحتاج لخبرة أكبر في مجالات عدة، لذلك اﻵن أقوم بكتابة برامج واستخدام طُرق جديدة في البرمجة لم أكن استخدمها، وسوف أكتب عنها لاحقاً إن شاء الله بعد ما تنجح وتكون لي الخبرة في مواضيع أكثر عمقاً في البرمجة

  7. قمت اليوم بتثبيت نواة لينكس تدعم PAE عن طريق synaptic في أوبونتو 11.10، وقُمت بحذف النواة العادية، وهي نُسخة أقدم من التي تأتي مع أوبنتو 12.04

    Linux motaz-laptop 3.0.0-19-generic-pae #33-Ubuntu i386 GNU/Linux

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s