РАЗРАБОТКА

Windows 11 сохранила диспетчер памяти Windows 95 для старых программ

Windows 11 26H2 всё ещё содержит диспетчер памяти Windows 95: механизм EmulateHeap помогает запускать старые программы с ошибками.

✍️ Редакция iTech News | 20.10.2026 | ⏱ 3 мин | Источник: Habr / Новости
🛠

В Windows 11 26H2 по-прежнему можно найти диспетчер памяти Windows 95 — код, которому уже больше 30 лет. Он не управляет памятью всей системы, а включается точечно для старых приложений, рассчитанных на давно исчезнувшие особенности работы Windows. Для разработчиков и администраторов это хороший пример того, почему обратная совместимость в корпоративной среде иногда важнее архитектурной чистоты.

О сохранённом механизме сообщает Habr / Новости. Речь идёт об исправлении совместимости EmulateHeap: оно подменяет часть функций работы с кучей альтернативными реализациями, повторяющими поведение Windows 95. Среди перехватываемых вызовов — HeapCreate, LocalLock и GlobalReAlloc. Microsoft использует такую прослойку не для всех программ подряд, а только когда соответствующее исправление задано конкретному приложению.

История начинается с оригинальной SimCity от Maxis. В версии для Windows 3.x была ошибка use-after-free: игра продолжала читать область памяти после того, как сама освободила её. В старой системе это часто сходило с рук — освобождённая память не обязательно тут же меняла содержимое. В Windows 95 поведение менеджера памяти изменилось, и SimCity перестала работать в тестовых сборках новой ОС.

Microsoft не стала ждать, пока появится исправленная версия игры. По пересказу истории, который в 2000 году привёл бывший инженер Microsoft и сооснователь Stack Overflow Джоэл Спольски, система распознавала запущенную SimCity и переключала менеджер памяти в особый режим. В нём освобождённые блоки не отдавались сразу. Формально баг оставался багом, но для пользователя важнее было другое: любимая программа запускалась после обновления Windows.

Позже выяснилось, что SimCity — далеко не единственный случай. В 2010 году инженер Microsoft Рэймонд Чен объяснял, что некоторые приложения завязывались на случайные свойства старой кучи: например, рассчитывали увидеть прежние данные по адресу уже освобождённого блока. При переходе на новые реализации памяти такие программы начали аварийно завершаться. Вместо переписывания всей подсистемы совместимости Microsoft взяла исходный код Heap Manager из Windows 95, перекомпилировала его и подключила к инфраструктуре исправлений.

Здесь важна техническая деталь: наличие старого кода в составе Windows 11 не означает, что современный ПК тайно запускает Windows 95 или использует её диспетчер памяти по умолчанию. EmulateHeap подгружается с диска только при активации для нужного приложения. Такой подход снижает риск повлиять на обычные программы и одновременно сохраняет шанс запустить старый софт, исходники которого давно потеряны вместе с командой разработки.

Проверить наличие механизма можно через Compatibility Administrator из Windows Assessment and Deployment Kit. В базе исправлений совместимости EmulateHeap отображается среди доступных shim-исправлений; для программ эпохи Windows 95 имеет смысл открывать 32-битную версию утилиты. Но включать его наугад не стоит: после выпуска Windows 11 22H2 пользователи сообщали о проблемах со звуком в GTA: Vice City и вылетах Need for Speed: Most Wanted при активном EmulateHeap. Совместимость — это не волшебная кнопка, а набор точечных компромиссов.

Для бизнеса такая археология особенно знакома. В организациях десятилетиями живут специализированные учётные системы, производственные клиенты и внутренние утилиты, которые нельзя быстро заменить из-за цены, регуляторных требований или отсутствия разработчика. Поддерживать диспетчер памяти Windows 95 в современном дистрибутиве дешевле, чем заставить каждого владельца старого ПО срочно переписывать приложение. Заодно Microsoft удерживает главный аргумент Windows на рабочих местах: обновление ОС не должно автоматически превращать архив прикладных программ в тыкву.

EmulateHeap напоминает, что обратная совместимость — это не только поддержка старых форматов файлов и привычных сочетаний клавиш. Иногда она выглядит как изолированный фрагмент кода из 1995 года, оставленный ради нескольких проблемных бинарников. Пока компании продолжают эксплуатировать такой софт, диспетчер памяти Windows 95 в Windows 11 будет скорее инженерной страховкой, чем музейным экспонатом.

Поделиться: Telegram X LinkedIn