الملخص:
يحتوي Windows 11 بالفعل على واجهة مستخدم حديثة، وآليات أمان متقدمة، وقدرات ذكاء اصطناعي متزايدة، ولكن في أعماق نظام التشغيل، لا تزال Microsoft تحتفظ ببعض التعليمات البرمجية من عصر Windows 95. والمثير للدهشة أن هذه الرموز لا تُترك في النظام كملفات قديمة فحسب، بل لا يزال من الممكن تشغيلها في ظل ظروف معينة، مما يوفر دعم التوافق لبعض التطبيقات التي تعتمد على سلوك إدارة الذاكرة القديمة. ص> ص>

في Windows 11 26H2، لا تزال Microsoft تحتفظ بآلية إصلاح توافق التطبيقات التي تسمى EmulateHeap. فهو يسمح لبعض البرامج القديمة باستخدام تعليمات برمجية تم تصميمها على غرار مدير الذاكرة في Windows 95 لمنع هذه البرامج من التعطل بسبب التغييرات في الطريقة التي يدير بها Windows الحديث الذاكرة. ص>
يمكن إرجاع تاريخ هذه الآلية إلى التسعينيات. في ذلك الوقت، تم الكشف عن خطأ برمجي في لعبة كلاسيكية تسمى "SimCity". بدلاً من مجرد مطالبة المطورين بإصلاح اللعبة، قامت Microsoft مباشرة بتعديل سلوك نظام التشغيل Windows 95 بحيث يمكن الاستمرار في تشغيل اللعبة. منذ ذلك الحين، استخدمت Microsoft آلية توافق أكثر تنظيمًا لمساعدة البرامج القديمة الأخرى التي تواجه مشكلات مماثلة على الاستمرار في العمل في الإصدارات الجديدة من Windows. ص>
يكشف هذا التاريخ أيضًا عن مبدأ تصميم مهم لنظام التشغيل Windows لفترة طويلة: بالنسبة لنظام تشغيل يحتوي على نظام بيئي برمجي ضخم، يكون الحفاظ على تشغيل البرامج القديمة بشكل طبيعي في بعض الأحيان أكثر أهمية من تنظيف الكود التاريخي بالكامل. ص>
خطأ في الذاكرة في "SimCity" يطالب Microsoft بتعديل نظام التشغيل
ص>لفهم سبب وجود EmulateHeap، عليك أولاً فهم خطأ برمجي شائع: الاستمرار في القراءة بعد تحرير الذاكرة. ص>
عند تشغيل التطبيق، فإنه يحتاج إلى طلب الذاكرة من نظام التشغيل لحفظ البيانات. عندما لا تكون هناك حاجة للبيانات، يجب على البرنامج تحرير الذاكرة المقابلة حتى يتمكن النظام من إعادة تخصيصها لاستخدامات أخرى. ص>
إذا قام أحد البرامج بتحرير كتلة من الذاكرة ولكنه استمر في قراءة البيانات منها، فسيحدث خطأ يسمى "الاستخدام بعد التحرر". يعد هذا عيبًا برمجيًا نموذجيًا يمكن أن يتسبب في قيام البرنامج بقراءة بيانات غير صالحة، أو تعطله، أو حتى التسبب في حدوث مشكلات أمنية في بعض الحالات. ص>
اعتمدت بعض البرامج في بيئات Windows المبكرة بشكل غير متوقع على هذا السلوك الخاطئ. ص>
وفقًا لمقال نشره جويل سبولسكي، المؤسس المشارك لـ Stack Overflow ومهندس Microsoft السابق في عام 2000، فإن إصدارات Windows المبكرة من "SimCity" واجهت مشكلات مماثلة. اعترف جون روس، مطور هذا الإصدار، لاحقًا بأنه ترك خطأً عن طريق الخطأ: ستستمر اللعبة في قراءة البيانات المخزنة في الأصل هناك بعد تحرير الذاكرة. ص>
يرتبط سبب عدم الكشف عن هذه المشكلة على الفور بطريقة إدارة الذاكرة لنظام التشغيل Windows 3.x في ذلك الوقت. في ظل ظروف معينة، بعد أن يقوم البرنامج بتحرير الذاكرة، لا يتم استبدال البيانات ذات الصلة على الفور باستخدامات أخرى، لذلك عندما تستمر اللعبة في القراءة، لا يزال من الممكن الحصول على المحتوى الأصلي. ص>
بعبارة أخرى، هناك خطأ في اللعبة نفسها، إنه مجرد سلوك نظام التشغيل القديم الذي يحدث لإخفاء المشكلة. ص>
عندما قامت شركة Microsoft بتطوير نظام التشغيل Windows 95، تغيرت الأمور. اعتمد النظام الجديد آلية مختلفة لإدارة الذاكرة، وبدأ خلل في "SimCity" في الإصدار التجريبي من Windows 95. ص>
لقد واجهت مايكروسوفت خيارين: إما أن تطلب من مطوري الألعاب إصلاح البرنامج، أو السماح لنظام التشغيل بالاستمرار في تحمل الخطأ. ص>
وفي النهاية، اختارت مايكروسوفت الخيار الأخير. ص>
أضاف المهندسون جزءًا من تعليمات التوافق البرمجية المخصصة لـ "SimCity" إلى نظام التشغيل Windows 95. وعندما يكتشف النظام أن اللعبة قيد التشغيل، فإنه يتحول إلى وضع تخصيص ذاكرة خاص لا يقوم بتحرير الذاكرة المرتبطة على الفور. ص>
وبهذه الطريقة، حتى إذا استمرت اللعبة في قراءة البيانات الأصلية بعد تحرير الذاكرة، فمن المرجح أن تحصل على النتائج المتوقعة وتتجنب الأعطال. ص>
من منظور هندسة البرمجيات الحديثة، يعتبر هذا النهج فريدًا تمامًا. عادةً، لا يرغب مطورو أنظمة التشغيل في تغيير سلوك النظام لتغطية أخطاء البرمجة في برامج الطرف الثالث. لكن هدف مايكروسوفت في ذلك الوقت كان التأكد من قدرة النظام الجديد على تشغيل البرامج الموجودة، بدلا من إجبار المستخدمين على التخلي عن برامجهم الأصلية من أجل ترقية نظام التشغيل. ص>
لقد أصبح هذا القرار أيضًا حالة نموذجية في تاريخ توافق Windows. ص>

من "SimCity" إلى EmulateHeap: تتوسع آلية التوافق تدريجيًا
ص>المعاملة الخاصة لـ SimCity هي مجرد البداية. ص>
مع تطور نظام Windows تدريجيًا، اكتشفت Microsoft أنه ليس هذه اللعبة فحسب، بل التطبيقات الأخرى أيضًا تعتمد على بعض السلوكيات الخاصة في آلية إدارة الذاكرة للإصدارات الأقدم من Windows. ص>
شرح مهندس مايكروسوفت ريموند تشين هذه المشكلة في عمود خاص بتكنولوجيا Windows نُشر عام 2010. وستستمر بعض البرامج القديمة في قراءة البيانات من الذاكرة بعد تحريرها، على افتراض أن القيم الأصلية لا تزال موجودة. ص>
عند تشغيل هذه البرامج في إصدارات Windows اللاحقة، بسبب التغييرات في تخصيص الذاكرة وأساليب إعادة التدوير، فإنها قد تقرأ المحتوى الذي تم الكتابة فوقه ببيانات أخرى، ثم تتعطل. ص>
إذا قامت Microsoft بكتابة جزء خاص من التعليمات البرمجية لكل برنامج به مثل هذه المشكلات، فلن تكون تكلفة الصيانة مرتفعة فحسب، بل سيكون من الصعب أيضًا التعامل مع العدد المتزايد من البرامج القديمة. ص>
ونتيجة لذلك، أطلقت Microsoft آلية لإصلاح التوافق تسمى EmulateHeap. ص>
على عكس التعليمات البرمجية الخاصة بـ SimCity، يوفر EmulateHeap أسلوبًا أكثر عمومية. فهو يعترض مكالمات التطبيقات إلى الواجهات المتعلقة بإدارة الذاكرة ويعيد توجيه هذه الاستدعاءات إلى تطبيق بديل يحاكي سلوك نظام التشغيل Windows 95. ص>
يتضمن ذلك سلسلة من الواجهات المتعلقة بإدارة ذاكرة الكومة، بما في ذلك HeapCreate وLocalLock وGlobalReAlloc. من خلال إضافة طبقة توافق بين التطبيقات وآليات إدارة الذاكرة الأساسية، يمكن للنظام السماح لبعض البرامج القديمة بمواصلة العمل بالطريقة المألوفة لها. ص>
والأمر الأكثر إثارة للدهشة هو أن Microsoft اعتمدت تطبيقًا مباشرًا إلى حد ما. ص>
وفقًا لشرح ريموند تشين، قام مهندسو Microsoft بنسخ الكود المصدري لمدير الذاكرة الكومة لنظام التشغيل Windows 95 مباشرةً، وأعادوا ترجمته، وأضفوه إلى إطار عمل توافق التطبيقات في Windows. ص>
يعني هذا أنه تم بالفعل الاحتفاظ برمز إدارة ذاكرة Windows 95 المهم جدًا في البنية الأساسية الحديثة المتوافقة مع Windows. ص>
ومع ذلك، هذا لا يعني أن نظام التشغيل Windows 11 يقوم بتشغيل مدير الذاكرة لنظام التشغيل Windows 95. ص>
EmulateHeap هي آلية توافق يتم تمكينها عند الطلب. فقط عندما يتم تكوين تطبيق معين لاستخدام هذا الإصلاح، سيتم تحميل التعليمات البرمجية القديمة المقابلة. بالنسبة للبرامج العادية التي لا تقوم بتمكين هذه الميزة، لن يقوم Windows بالتبديل تلقائيًا إلى أسلوب إدارة الذاكرة في Windows 95 بسبب آلية التوافق هذه. ص>
بالإضافة إلى ذلك، فإن EmulateHeap ليس هو نفس وظيفة رمز التوافق المكتوب خصيصًا لـ "SimCity" بواسطة Microsoft. يعكس كلاهما فلسفة التصميم الخاصة بشركة Microsoft المتمثلة في محاولة الحفاظ على تشغيل البرامج القديمة بشكل طبيعي، لكن أساليبهما في حل المشكلات ونطاق تطبيقهما مختلفان. ص>
كيفية العثور على EmulateHeap في نظام التشغيل Windows 11؟ ص> ص>
بالنسبة للمستخدمين الذين يرغبون في فهم آلية التوافق الداخلي لنظام التشغيل Windows، توفر Microsoft أداة تسمى "مسؤول التوافق" لعرض إصلاحات توافق التطبيقات التي يدعمها النظام. ص>
تم تضمين هذه الأداة في مجموعة أدوات التقييم والنشر لـ Windows (Windows ADK) وهي مخصصة في المقام الأول لمسؤولي النظام ومحترفي تكنولوجيا المعلومات. يدعم إصدار الأداة ذات الصلة الذي أصدرته Microsoft في سبتمبر 2026 نظام التشغيل Windows 11 26H2. ص>

أفاد Windows Last أن المؤلف عثر على EmulateHeap على جهاز الكمبيوتر الخاص به الذي يعمل بنظام Windows 11 26H2. الخطوات المحددة هي كما يلي:
أولاً، قم بتنزيل Windows ADK من موقع Microsoft الرسمي على الويب وابدأ برنامج التثبيت. في واجهة اختيار الوظيفة، ما عليك سوى تحديد أدوات توافق التطبيقات، وهي أداة توافق التطبيقات، ثم أكمل التثبيت. ص>
بعد اكتمال التثبيت، ابحث عن Compatibility Administrator في قائمة ابدأ وافتح الإصدار 32 بت. نظرًا لأن عددًا كبيرًا من البرامج القديمة من عصر Windows 95 تستخدم بنية 32 بت، فإن الإصدار 32 بت هو أداة تستحق الاستخدام أولاً عند التحقق من آليات التوافق هذه. ص>
بعد فتح البرنامج، انقر بزر الماوس الأيمن فوق قاعدة بيانات جديدة في منطقة قواعد البيانات المخصصة، وحدد إنشاء جديد، ثم أدخل وضع التوافق. بعد ذلك، ابحث عن EmulateHeap في قائمة إصلاحات التوافق المتاحة لرؤية هذه الميزة. ص>



من المهم ملاحظة أن العثور على حل للتوافق في القائمة لا يعني أنه سيجعل كافة البرامج القديمة تعمل بشكل صحيح. ص>
واجهت Microsoft مشكلات مماثلة من قبل. بعد تحديث Windows 11 22H2، أبلغ بعض المستخدمين أن لعبة "Grand Theft Auto: Vice City" واجهت مشكلات فقدان الصوت وتعطلت لعبة "Need for Speed: Most Wanted" بعد تمكين بعض إصلاحات التوافق. ص>
وهذا يعني أن إصلاح التوافق نفسه قد يتسبب أيضًا في حدوث تعارضات مع مكونات النظام الأخرى أو رمز اللعبة. وحتى لو كانت هناك آلية معينة قادرة على حل نوع من المشاكل التاريخية، فهذا لا يعني أنها مناسبة لجميع البرامج. ص>
لذلك، ليست هناك حاجة للمستخدمين العاديين لتمكين EmulateHeap فقط لمحاولة تشغيل لعبة قديمة. إذا واجهت مشكلة تتعلق بعدم تشغيل البرامج القديمة، فمن الأفضل البحث عن توصيات توافق محددة لهذا البرنامج قبل اتخاذ قرار بشأن تطبيق الإصلاح. ص>
لماذا لا يقوم Windows بتنظيف هذا الرمز القديم فحسب؟ ص> ص>
من Windows 95 إلى Windows 11، أجرت Microsoft الكثير من التغييرات على نظام التشغيل. سواء كان الأمر يتعلق بإدارة الذاكرة، أو أنظمة الرسومات، أو آليات الأمان، أو بيئة تشغيل برنامج التشغيل والتطبيقات، فإن Windows الحديث يختلف بشكل كبير عن أنظمة التسعينيات. ص>
لكن نظام التشغيل ليس منتجًا يمكن هدمه وإعادة بنائه في أي وقت، بغض النظر عن البرامج القديمة. ص>
على مدى عقود من التطوير، اعتمدت ملايين التطبيقات على الواجهات والسلوكيات التي يوفرها Windows. يتم تطوير بعض هذه البرامج بشكل صارم وفقًا للوثائق الرسمية، بينما يعتمد البعض الآخر دون قصد على سلوك إصدارات معينة من النظام. ص>
طالما أن هذه البرامج لا تزال قيد الاستخدام، تحتاج Microsoft إلى مراعاة التأثير المحتمل لتعديل الآليات الأساسية. ص>
بالنسبة للبرامج العادية، قد تتسبب مشكلات التوافق بعد ترقيات نظام التشغيل في حدوث بعض الإزعاجات فقط. ولكن بالنسبة لبرامج المؤسسات، والأدوات الاحترافية، والبرامج القديمة التي لا تزال تؤدي مهام عمل حقيقية، فقد تكون انقطاعات التوافق أكثر ضررًا. ص>
ونتيجة لذلك، حافظت Microsoft منذ فترة طويلة على إطار عمل كبير لتوافق التطبيقات. ولا تقتصر وظيفته على إخبار البرنامج القديم بإصدار Windows الذي يعمل عليه فحسب، بل أيضًا اعتراض بعض مكالمات النظام، أو ضبط سلوكيات معينة، أو تمكين إصلاحات التوافق المتخصصة بناءً على برنامج معين. ص>
عادة ما تكون هذه التدابير شفافة للمستخدمين. عند بدء تشغيل برنامج قديم، سيقوم النظام بتطبيق الإصلاحات المقابلة في الخلفية، وقد لا يكون المستخدمون على علم بأن نظام التشغيل قد قام بتغيير بعض سلوكيات البرنامج. ص>
EmulateHeap هو مثال على هذا النظام. ص>
إن وجوده لا يعني أن Microsoft تعتقد أن نظام التشغيل Windows 95 يتمتع بإدارة أفضل للذاكرة مقارنة بالأنظمة الحديثة، ولكنه يعني أن بعض البرامج القديمة اعتمدت على سلوك الماضي. ولتجنب كسر هذه البرامج، اختارت Microsoft الاحتفاظ بمجموعة من التطبيقات القديمة في إطار التوافق بدلاً من فرض إعادة كتابة جميع البرامج وفقًا لقواعد الأنظمة الحديثة. ص>
هذا النهج له مزايا وتكاليف على حد سواء. يمكنه إطالة عمر خدمة البرامج القديمة وتقليل العوائق التي يواجهها المستخدمون في ترقية النظام، ولكنه سيزيد أيضًا من تعقيد صيانة نظام التشغيل، مما يتسبب في وجود بعض التعليمات البرمجية التاريخية في الأنظمة الحديثة لفترة طويلة. ص>
لا تتلقى جميع البرامج الكلاسيكية معاملة متساوية
إن استعداد Microsoft للاحتفاظ برموز التوافق الخاصة لبعض البرامج القديمة لا يعني أن كافة البرامج الكلاسيكية يمكن أن تستمر في العمل في أنظمة Windows الحديثة. ص>
من الأمثلة النموذجية على ذلك لعبة 3D Pinball، التي تم دمجها في نظام التشغيل Windows، وهي لعبة كرة ودبابيس ثلاثية الأبعاد. أحد أسباب عدم توفر اللعبة مع إصدار 64 بت من Windows هو وجود مشكلات في توافق 64 بت تتطلب عملاً إضافيًا، ولم تخصص Microsoft الموارد لإصلاحها بالكامل. ص>
وهذا على النقيض من الوضع مع EmulateHeap. ص>
بالنسبة لبعض البرامج المستخدمة على نطاق واسع، والتي لها قيمة تجارية مهمة، أو التي يمكن الاستمرار في تشغيلها مع تعديلات محدودة نسبيًا، فقد تكون Microsoft على استعداد لاستثمار الموارد في الحفاظ على التوافق. بالنسبة للبرامج الأخرى، قد تختار Microsoft عدم تقديم الدعم إذا كانت تكلفة الإصلاح مرتفعة جدًا أو إذا انخفض طلب المستخدم بشكل ملحوظ. ص>
وبالتالي، فإن التوافق مع Windows ليس التزامًا لا حدود له. فهو يتطلب مقايضات مستمرة بين تكاليف الصيانة، واحتياجات المستخدم، والمخاطر الأمنية، والتعقيد الفني. ص>
من الجدير بالذكر أن Microsoft واصلت تحديث واجهة Windows في السنوات الأخيرة. على سبيل المثال، تقوم الشركة تدريجيًا باستبدال بعض مربعات حوار الخصائص المتبقية من عصر Windows 95 بواجهات جديدة تعتمد على WinUI 3.
ولكن يمكن إجراء تحديث الواجهة وصيانة التوافق الأساسي في نفس الوقت. ربما تكون النافذة التي شاهدها المستخدم قد اعتمدت تقنية تصميم جديدة، ولكن لا يزال يتم الاحتفاظ ببعض التعليمات البرمجية القديمة داخل النظام لضمان عدم فقدان التطبيقات التاريخية للتوافق بسبب تحديثات الواجهة أو بنية النظام. ص>
يعد هذا أيضًا أحد الاختلافات المهمة بين Windows والعديد من منصات البرامج الحديثة نسبيًا: لا يحتاج Windows إلى دعم التطبيقات الحديثة فحسب، بل يحتاج أيضًا إلى استيعاب أكبر قدر ممكن من النظام البيئي الضخم للبرامج الذي تم تشكيله على مدار عقود. ص>
تقليد التوافق الذي يستمر من Windows 95 إلى Windows 11
ص>قد تبدو قصة EmulateHeap مجرد حكاية فنية عن الألعاب القديمة ومديري الذاكرة، ولكنها في الواقع تعكس إستراتيجية أساسية طويلة الأمد لنظام Windows. ص>
عندما واجهت "SimCity" مشكلات في الإصدار التجريبي من Windows 95، اختارت Microsoft تعديل نظام التشغيل ليتحمل الخطأ الموجود في اللعبة. منذ ذلك الحين، ومع تعرض المزيد من البرامج القديمة للاعتماد على سلوك النظام التاريخي، أنشأت Microsoft تدريجيًا آلية أكثر اكتمالًا لإصلاح التوافق. ص>
اليوم، لا يزال نظام التشغيل Windows 11 يحتفظ بالتعليمات البرمجية التي يمكنها محاكاة سلوك إدارة الذاكرة لنظام التشغيل Windows 95، ويمكن للمستخدمين العثور عليها من خلال أدوات الإدارة التي توفرها Microsoft. ص>
وهذا لا يعني أن نظام التشغيل Windows الحديث لا يزال يعتمد على البنية الأساسية لنظام التشغيل Windows 95، ولا يعني أن أجهزة الكمبيوتر العادية تعمل بنظام تشغيل قديم في الخلفية. ما تم ترحيله بالفعل هو بعض أكواد التوافق وأفكار تصميم Microsoft لتجنب كسر البرامج القديمة قدر الإمكان. ص>
بالنسبة لنظام تشغيل عمره عقود من الزمن، يمثل هذا النهج عبئًا تقنيًا وميزة تنافسية في نفس الوقت. عندما يقوم المستخدمون بالترقية إلى إصدار جديد من Windows، فإنهم غالبًا ما يرغبون في الاستمرار في استخدام البرنامج الذي اشتروه، والأدوات المألوفة لديهم، ومسارات العمل التي تراكمت لديهم على مر السنين. من خلال الاحتفاظ ببعض التعليمات البرمجية القديمة، قامت Microsoft بتقليل مخاطر التوافق الناتجة عن ترقية نظام التشغيل. ص>
من هذا المنظور، فإن مدير الذاكرة لنظام التشغيل Windows 95 المخفي في نظام التشغيل Windows 11 ليس من الآثار التاريخية البسيطة، ولكنه مظهر ملموس لالتزام Microsoft طويل الأمد بتوافق البرامج. حتى مع استمرار تغير واجهات نظام التشغيل واستمرار ترقية الأنظمة الأساسية للأجهزة، فقد تستمر بعض التعليمات البرمجية القديمة لعقود من الزمن في العمل ببساطة لأنها تسمح للعبة أو برنامج قديم بمواصلة التشغيل على أجهزة الكمبيوتر الحالية. ص>

التعليقات