الملخص:
لفترة طويلة، كان هناك تفسير معقول على ما يبدو لسبب قدرة Windows 32 بت على استخدام 4 جيجابايت فقط من الذاكرة: لأن عناوين 32 بت يمكن أن تمثل فقط 2 ^ 32 عنوانًا، وهو ما يصل إلى 4 جيجابايت كحد أقصى من الذاكرة. لكن كبير مهندسي مايكروسوفت ريموند تشين أعاد مؤخرًا شرح هذه القضية التاريخية وأشار إلى أن هذا البيان غير كامل. في الواقع، تتمتع معالجات 32 بت x86 ونظام التشغيل Windows منذ فترة طويلة بالقدرة على الوصول إلى أكثر من 4 جيجابايت من الذاكرة الفعلية. كان السبب الرئيسي وراء اختيار Microsoft أخيرًا لقصر إصدار المستهلك العادي من Windows على 4 جيجابايت هو خطر التوافق الخطير في النظام البيئي الضخم والمعقد لبرامج تشغيل الأجهزة في ذلك الوقت. ص> ص>

من منظور إمكانات الأجهزة المحضة، لا تتمتع معالجات 32 بت بإمكانية الوصول إلى 4 جيجابايت من الذاكرة الفعلية فقط. قدمت إنتل ملحق العنوان الفعلي، المعروف أيضًا باسم تقنية PAE (امتداد العنوان الفعلي)، في وقت مبكر من عصر Pentium Pro، مما يتيح لمعالجات 32 بت x86 استخدام عناوين فعلية 36 بت. وبهذه الطريقة، يتم توسيع الذاكرة الفعلية النظرية القابلة للعنونة من 4 جيجابايت إلى 64 جيجابايت. ص>
لا يغير PAE مساحة العنوان الظاهرية لتطبيق 32 بت نفسه. بالنسبة لبرنامج 32 بت عادي، فإنه لا يزال يرى مساحة عنوان افتراضية تبلغ 4 جيجابايت فقط، ويجب أن يكون نظام التشغيل مسؤولاً عن الإدارة ورسم الخرائط بين مساحة العنوان الظاهرية المحدودة هذه والذاكرة الفعلية الأكبر. بمعنى آخر، يحل PAE مشكلة كيفية إدارة نظام التشغيل لأكثر من 4 جيجابايت من الذاكرة الفعلية، بدلاً من السماح لبرنامج واحد 32 بت بالحصول فجأة على أكثر من 4 جيجابايت من مساحة العنوان المتجاورة. ص>
لقد استفادت Microsoft بالفعل من هذه الإمكانية لفترة طويلة. يمكن لبعض إصدارات الخوادم من Windows Server 2003 استخدام أكثر من 4 جيجابايت من الذاكرة من خلال PAE، مع دعم الإصدار Enterprise Edition لما يصل إلى 64 جيجابايت، وإصدار Datacenter الذي يدعم حتى 128 جيجابايت. وهذا يثبت أن عبارة "Windows 32 بت يمكنه من الناحية الفنية استخدام 4 جيجابايت فقط" ليست دقيقة. ص>
المشكلة الحقيقية تكمن في السائق. ص>
عند تمكين PAE، قد يوفر النظام عناوين فعلية تتجاوز نطاق 32 بت لبرنامج تشغيل الأجهزة. بالنسبة لبرامج التشغيل المكتوبة وفقًا لبيئة 32 بت التقليدية، سيؤدي هذا إلى مشكلة خطيرة للغاية: تفترض بعض برامج التشغيل أن العنوان الفعلي لن يتجاوز 32 بت أبدًا، لذلك سوف يقومون مباشرة باقتطاع البتات العالية من العنوان. ص>

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

لذلك، اختارت Microsoft أخيرًا حلاً بدا متحفظًا للغاية ولكنه أكثر أمانًا للمستهلكين العاديين: الحد بشكل نشط من مساحة العنوان الفعلي في إصدار عميل Windows 32 بت ومنع النظام من استخدام أكثر من 4 جيجابايت من الذاكرة الفعلية. ص>
يعد نظاما التشغيل Windows XP وWindows Server 2003 المزود بحزمة الخدمة SP1 عقدتين مهمتين لهذه السياسة. قامت Microsoft بتعديل طبقة تجريد الأجهزة لكليهما للحد من مساحة العنوان الفعلي إلى 4 جيجابايت في إصدار العميل المقابل. والغرض ليس هو عدم قدرة المعالج على الوصول إلى عناوين أعلى، ولكن منع PAE من الكشف عن برامج تشغيل الطرف الثالث غير المتوافقة. ص>
يفسر هذا أيضًا سبب قدرة Windows Server على استخدام أكثر من 4 جيجابايت من الذاكرة، بينما لا يستطيع Windows ذلك بالنسبة للمستخدمين العاديين. ص>
لا يقوم عادةً مسؤولو الخادم بتوصيل ماسح ضوئي USB قديم تم شراؤه بأكثر من عشرة دولارات بخادم الإنتاج، ناهيك عن تثبيت برنامج تشغيل تابع لجهة خارجية منذ أكثر من عشر سنوات من أجل استخدام جهاز إلكتروني استهلاكي عادي. عادةً ما يتم فحص بيئات الخادم بدرجة عالية، وتكون الأجهزة وبرامج التشغيل المستخدمة أكثر ثباتًا، وتستطيع Microsoft اختبار برامج التشغيل المتوفرة مع النظام بشكل كامل. ص>
شرح ريموند تشين هذا الاختلاف بطريقة واضحة جدًا: لن يقوم مسؤولو الخادم فقط بتثبيت برنامج تشغيل لجهاز رخيص مثل المستهلكين العاديين، وعادةً ما يتم التحقق من برامج التشغيل المستخدمة على الخوادم لبيئات العناوين الفعلية العالية. ص>

المستخدمون العاديون هم عكس ذلك تمامًا. قد تحتوي أجهزة الكمبيوتر الاستهلاكية على برامج تشغيل مثبتة لعشرات الأجهزة المختلفة، بعضها من أجهزة عمرها أكثر من عقد من الزمن. بالنسبة لشركة Microsoft، فإن خطر جعل جميع برامج التشغيل هذه متوافقة مع PAE أكبر بكثير من عقوبة الحد من الذاكرة. ص>
في الواقع، حتى لو تم تثبيت ذاكرة سعة 4 جيجابايت في نظام التشغيل Windows 32 بت، فقد لا يتمكن المستخدمون فعليًا من رؤية سعة 4 جيجابايت كاملة. والسبب هو أن مساحة العنوان الفعلية التي تقل عن 4 جيجابايت لا يجب استخدامها فقط لذاكرة النظام، بل يجب أيضًا تعيين ذاكرة الجهاز لبطاقات الرسومات وبطاقات الشبكة وبطاقات الصوت والأجهزة الأخرى. إذا كان الجهاز يشغل جزءًا من مساحة العنوان، فيجب تخصيص جزء من ذاكرة الوصول العشوائي أعلى من حد العنوان البالغ 4 جيجابايت. ص>
ونتيجة لذلك، في العديد من أجهزة الكمبيوتر التي تعمل بنظام التشغيل Windows 32 بت والمثبت عليها ذاكرة وصول عشوائي (RAM) سعة 4 جيجابايت، قد ينتهي الأمر بالنظام إلى استخدام حوالي 3 جيجابايت فقط أو أقل من ذاكرة الوصول العشوائي (RAM). يعد هذا أيضًا أحد الأسباب الأساسية التي تجعل عددًا كبيرًا من أجهزة الكمبيوتر التي تعمل بنظام التشغيل Windows XP تعاني من ظاهرة "تثبيت 4 جيجابايت ولكن يمكن للنظام استخدام حوالي 3 جيجابايت فقط". ص>
كما أنكرت مايكروسوفت أيضًا على وجه التحديد نظرية المؤامرة التي طال أمدها والتي تقول إن مايكروسوفت قامت عمدًا بتقييد الذاكرة في نظام التشغيل Windows 32 بت من أجل إجبار المستهلكين على شراء خادم Windows باهظ الثمن. على الرغم من أن Windows Server يمكنه بالفعل استخدام المزيد من الذاكرة، إلا أن Microsoft تعتقد أن الأسواق وبيئات الأجهزة لكليهما مختلفة تمامًا، والحد الأقصى البالغ 4 جيجابايت في إصدار العميل هو بشكل أساسي لتجنب مشكلات توافق برنامج التشغيل. ص>
علاوة على ذلك، إذا أرادت Microsoft حقًا أن يشتري المستخدمون العاديون Windows Server لحل قيود الذاكرة، فمن الواضح أن سعر هذا الحل كان سخيفًا. كان الإصدار الأدنى من نظام التشغيل Windows Server 2003 الذي يمكنه دعم أكثر من 4 جيجابايت من الذاكرة هو الإصدار Enterprise Edition، والذي وصل سعره إلى 3999 دولارًا أمريكيًا، ولم يكن له أي أهمية عملية بالنسبة للمستهلكين العاديين. ص>

مع الانتشار التدريجي لمعالجات 64 بت وأنظمة التشغيل 64 بت، فقدت هذه المشكلة في النهاية أهميتها العملية. يحتوي Windows 64 بت على مساحة عنوان تزيد عن 4 جيجابايت، مما يسمح له باستخدام كميات كبيرة من الذاكرة الفعلية مع الحفاظ على التوافق. مع دخول أجهزة الكمبيوتر تدريجيًا إلى عصر الذاكرة متعددة الجيجابايت أو حتى عشرات الجيجابايت أو مئات الجيجابايت، تنسحب بنية 32 بت في النهاية من السوق السائدة. ص>
ستتوقف Microsoft تدريجيًا عن الترويج للأنظمة الجديدة التي تستخدم معالجات 32 بت بدءًا من عام 2020، وستقوم في النهاية بإلغاء إصدار 32 بت تمامًا في عصر Windows 11. تنص وثيقة الدعم الرسمية الحالية لشركة Microsoft أيضًا بوضوح على أن نظام التشغيل Windows 11 والإصدارات الأحدث يوفر فقط إصدارات 64 بت. ص>
يعكس هذا التاريخ أيضًا مشكلة مثيرة للاهتمام: كلما زادت وفرة موارد الأجهزة، أصبح من الأسهل على البرامج أن تصبح "سمنه". إذا كانت أجهزة الكمبيوتر محدودة دائمًا بذاكرة تبلغ 4 جيجابايت، فقد يتعين على مطوري البرامج إيلاء المزيد من الاهتمام لاستخدام الذاكرة؛ ومع زيادة ذاكرة الكمبيوتر بسرعة من 4 جيجابايت إلى 8 جيجابايت و16 جيجابايت وحتى 64 جيجابايت، أصبحت العديد من التطبيقات معتادة تدريجيًا على استهلاك المزيد من الموارد. ص>
في الوقت الحاضر، ليس من غير المألوف أن تشغل بعض التطبيقات بسهولة مئات ميغابايت أو حتى غيغابايت من الذاكرة. تعمل Microsoft الآن جاهدة للحفاظ على تشغيل Windows 11 بشكل جيد على أجهزة الكمبيوتر التي تحتوي على ذاكرة سعة 8 جيجابايت، وقد أدى الطلب الهائل على موارد الذاكرة من خلال تطبيقات الذكاء الاصطناعي مرة أخرى إلى جعل الصناعة بأكملها تدرك أهمية كفاءة الذاكرة. ص>
لذلك، على الرغم من أن حد 4 جيجا بايت لنظام التشغيل Windows 32 بت أصبح أخيرًا تاريخًا، فإن السبب وراء ذلك ليس بهذه البساطة حيث أن "معالجات 32 بت لا يمكنها التعامل إلا مع 4 جيجا بايت من الذاكرة." الجواب الحقيقي هو أن Microsoft واجهت نظامًا بيئيًا ضخمًا يتكون من آلاف برامج تشغيل الأجهزة التابعة لجهات خارجية ذات جودة متفاوتة. من الممكن تقنيًا تجاوز 4 جيجابايت، ولكن إذا تسبب الاختراق في تعطل عدد كبير من أجهزة الكمبيوتر الاستهلاكية بشكل عشوائي، فقد تصبح هذه القدرة عبئًا على نظام تشغيل العميل. ص>
من هذا المنظور، فإن حد الـ 4 غيغابايت لنظام التشغيل Windows لا يمثل مجرد عنق الزجاجة الفني، ولكنه اختيار هندسي تم اتخاذه بشكل استباقي لتحقيق الاستقرار والتوافق. كان لدى Windows 32 بت في الواقع طريقة لاختراق 4 جيجابايت لفترة طويلة. ومع ذلك، في مواجهة النظام البيئي لبرامج التشغيل الذي لا يمكن السيطرة عليه في ذلك الوقت، اختارت Microsoft أخيرًا التضحية ببعض قدرات الأجهزة حتى يتمكن المستخدمون العاديون من استخدام أجهزة الكمبيوتر بشكل أكثر استقرارًا. ص> ص>
التعليقات