Что общего между первым SimCity, Windows 95 и Windows 11? На первый взгляд кажется, что это не так уж и много. Но если присмотреться, то можно обнаружить странную связь: спустя 31 год после публикации в последней операционной системе Microsoft (Windows 11, версия 26H2) все еще присутствуют остатки кода из Windows 95.
Код находится в управлении памятью. Остаток служит для защиты старых программ, которые больше не работают с современными технологиями. В частности, это специальная функция совместимости под названием EmulateHeap. По словам разработчика Microsoft Рэймонда Чена, это основано на недавно скомпилированном исходном коде тогдашнего менеджера памяти Windows 95.
Однако это не дыра в безопасности и не доказательство того, что управление памятью в Windows 11 основано на устаревшей технологии. Скорее, это целевая помощь устаревшему ПО. Корни уходят в первый SimCity для Windows. В то время в игре произошла программная ошибка, из-за которой программное обеспечение получило доступ к ранее освобожденным областям памяти.
Это не имело никаких последствий в Windows 3.x, поскольку данные сохранялись в памяти. Однако игра больше не работала в бета-версиях Windows 95. Поэтому Microsoft установила проверку: если система распознавала игру, она переключала управление памятью в специальный режим, который не сразу повторно использовал удаленную память. Бывший инженер Microsoft Джоэл Спольски сообщил об этом эпизоде в 2000 году. Эту тему часто поднимают снова и снова.
Как работает EmulateHeap и почему он до сих пор в Windows 11?
Помимо SimCity, корректная работа других приложений в более новых версиях зависела от управления памятью Windows 95. Поэтому Microsoft интегрировала перекомпилированный менеджер кучи во все более поздние версии Windows в качестве исправления совместимости. Сегодня функция EmulateHeap перенаправляет команды памяти приложения на функции замены, имитирующие Windows 95, чтобы запустить программу. Старый код загружается только в том случае, если исправление активно для конкретной программы.
Причина очевидна: Microsoft хочет гарантировать, что старое программное обеспечение продолжит работать под Windows 11 в рамках обратной совместимости. Но даже несмотря на то, что код все еще существует, он не всегда работает надежно: после обновлений Windows пользователи сообщали об отсутствии звука в GTA Vice City или о сбоях в Need for Speed: Most Wanted, когда исправление было активно.
Как обнаружить EmulateHeap в Windows 11:
Согласно Windows Latest, если вы хотите проверить эту функцию, вы можете сделать это с помощью бесплатных инструментов совместимости приложений, которые можно установить через Windows ADK. После установки откройте Администратор совместимости в 32-битной версии и найдите EmulateHeap в списке возможных исправлений совместимости, если вы создаете новую базу данных для режима совместимости в разделе «Пользовательские базы данных».
Участвуйте и комментируйте
Каково ваше мнение по этой теме? Редакция PCGH будет рада услышать ваше обоснованное мнение в комментариях к данному отчету. Если у вас еще нет учетной записи Extreme, мы приглашаем вас зарегистрироваться на форуме. При оставлении комментариев обратите внимание на действующие правила форума. Не стесняйтесь следить за PCGH на 🔈 Youtube. или 💬 WhatsApp и получайте новости о видеокартах, процессорах и играх прямо в свою ленту.
Quelle: через последнюю версию Windows