Windows 11 continúa portando una pieza funcional del kernel de Windows 95 para mantener la compatibilidad hacia atrás con software antiguo. Esto se logra a través de un ajuste de compatibilidad conocido como EmulateHeap. Este mecanismo proporciona a las aplicaciones heredadas los comportamientos específicos de gestión de memoria de Windows 95 cuando esos programas dependen de su naturaleza 'indulgente', específicamente en cómo maneja la asignación y liberación de memoria.

Esta imagen ilustra el mecanismo EmulateHeap que proporciona a las aplicaciones heredadas los comportamientos específicos de gestión de memoria de Windows 95.
La historia de esta deuda técnica se remonta a la era de Windows 95. Por ejemplo, el SimCity original para Windows 3.x contenía un error de 'uso después de la liberación' (use-after-free) donde el juego leía memoria que ya había sido liberada. Debido a que Windows 95 no reclamaba inmediatamente esa memoria, el juego funcionaba correctamente. Cuando el juego fallaba en las betas de Windows 95, Microsoft modificó el sistema operativo para detectar SimCity y ejecutar su asignador de memoria en un modo especial. En un sentido más amplio, muchas otras aplicaciones dependían de estas particularidades específicas. Para abordar esto, Microsoft desarrolló EmulateHeap, que redirige las llamadas de montón (heap) de una aplicación —como HeapCreate y LocalLock— a reemplazos que imitan el entorno de Windows 95.

El artículo menciona SimCity para Windows 3.x como un ejemplo principal de software que dependía de la asignación de memoria indulgente de Windows 95.
Técnicamente, EmulateHeap funciona incluyendo una copia recompilada del código fuente del Gestor de Memoria de Windows 95 dentro del marco de compatibilidad de aplicaciones de Windows. Si bien esto significa que una parte significativa del kernel de Windows 95 existe dentro del moderno Windows 11, el código solo se carga desde el disco duro cuando EmulateHeap se activa específicamente para una aplicación particular. Esto garantiza que el sistema operativo no ejecute código de Windows 95 en segundo plano para cada proceso. Sin embargo, este soporte heredado no es perfecto; los usuarios han informado que algunos juegos, como GTA Vice City, perdieron sonido o fallaron cuando se activaba el shim, lo que ilustra las dificultades inherentes de replicar perfectamente comportamientos de memoria de hace 30 años en una arquitectura moderna.
Esta persistencia de código heredado resalta un principio fundamental de la estrategia de compatibilidad de Microsoft. Mientras la empresa moderniza simultáneamente la interfaz de usuario con WinUI 3, mantiene estos componentes de kernel 'ocultos' para asegurar que el software antiguo, a menudo de misión crítica, siga siendo funcional. La compensación es una infraestructura de compatibilidad más grande que debe ser mantenida, incluso cuando los paradigmas de hardware y software subyacentes han cambiado significativamente desde mediados de la década de 1990. Este enfoque permite una transición fluida para los usuarios de software antiguo, incluso si requiere llevar código de hace décadas a la era moderna.
Los usuarios y administradores pueden verificar la presencia de estos ajustes utilizando la herramienta Compatibility Administrator, que es parte del Windows Assessment and Deployment Kit (ADK). Al buscar en las bases de datos personalizadas dentro de esta herramienta, se puede encontrar EmulateHeap enumerado entre los diversos 'shims' —pequeñas piezas de código diseñadas para interceptar llamadas de API— que Microsoft proporciona para cerrar la brecha entre los sistemas operativos modernos y los requisitos de software heredado.

Los usuarios y administradores pueden verificar la presencia de estos ajustes utilizando la herramienta Compatibility Administrator, donde EmulateHeap aparece enumerado entre los diversos shims.