Официальная поддержка Windows 95 прекратилась 31 декабря 2001 года. Однако даже спустя 25 лет часть этой операционной системы от Microsoft продолжает функционировать в ее наследнице — Windows 11. В том числе и в актуальном функциональном обновлении 26H2, которое Microsoft выпустила 26 сентября.
Изображение: нейросеть qwen
По данным ресурса Windows Latest, этим компонентом является EmulateHeap. Этот патч совместимости позволяет пользователям современных операционных систем Microsoft запускать старое программное обеспечение или игры, созданные во времена Windows 95.
EmulateHeap имитирует работу менеджера памяти из Windows 95 в более новых системах. Дело в том, что тот диспетчер обладал рядом преимуществ — особенно важных для игр, — которых нет в последующих версиях Windows.
При выполнении программ Windows временно задействует ресурсы оперативной памяти. Как только приложение завершает свою работу, занимаемая им память освобождается. Однако иногда может возникнуть ошибка типа «use-after-free» (использование памяти после её освобождения). В этом случае программа обращается к области памяти, которая уже была освобождена, что может привести к её аварийному завершению.
Один из таких программных дефектов присутствовал в игре SimCity, выпущенной в 1989 году. Однако на компьютерах, работавших под управлением ОС семейства Windows 3.x (появившихся в 1990 году), это было незаметно, поскольку в Windows 3.0 и аналогичных версиях использовалась иная архитектура памяти.
Но когда SimCity тестировали в бета-версии Windows 95, симулятор начал «вылетать». Вместо того чтобы ждать исправления (патча) от разработчиков SimCity, специалисты Microsoft просто изменили код Windows 95, позволив игре обращаться к памяти, которая фактически уже была освобождена.
Это исправление в Windows 95 изначально задумывалось как исключение специально для SimCity. Однако позже выяснилось, что и другие игры и программы также полагались на эту особенность системы управления памятью. В более поздних версиях Windows такие приложения переставали работать и аварийно завершались. Чтобы решить эту проблему, в Microsoft создали механизм EmulateHeap. Этот патч перенаправляет вызовы функций (например, HeapCreate или LocalLock) в систему эмуляции управления памятью, характерную для Windows 95.
В Windows 11 компонент EmulateHeap по-прежнему присутствует в системных файлах. Согласно платформе Microsoft Ignite, чтобы найти эту настройку для старых игр или программ, нужно щелкнуть правой кнопкой мыши по файлу с расширением .exe. Затем следует выбрать пункт «Свойства» и перейти на вкладку «Совместимость». Там нужно установить флажок напротив опции «Запустить программу в режиме совместимости с: Windows 95».

