Come il codice di Windows 95 sopravvive ancora all'interno di Windows 11

Windows 11 include ancora una parte funzionante del kernel di Windows 95. Una correzione di compatibilità chiamata EmulateHeap consente ad alcune applicazioni meno recenti di adottare un comportamento simile a quello del più permissivo gestore della memoria di Windows 95. La correzione è ancora presente nei sistemi Windows 11 26H2.
Questo impegno verso la retrocompatibilità può essere ricondotto a SimCity, che funzionò correttamente su Windows 95 solo dopo che MS creò apposito codice del sistema operativo.

MS modificò la gestione della memoria di Windows 95 per SimCity
Durante l'esecuzione, le applicazioni richiedono memoria a Windows e la rilasciano quando non è più necessaria. La lettura della memoria dopo che è stata rilasciata è un bug noto come use-after-free, e la versione originale di SimCity per Windows 3.x presentava proprio questo difetto.
Joel Spolsky, cofondatore di Stack Overflow ed ex ingegnere MS, descrisse il problema in un saggio del 2000 che citava Jon Ross, sviluppatore di quella versione di SimCity. Ross riconobbe che il gioco leggeva erroneamente la memoria subito dopo averla liberata. Il problema passò inosservato su Windows 3.x perché il contenuto di quella memoria rimaneva disponibile.

SimCity smise di funzionare correttamente nelle build beta di Windows 95. Anziché attendere una patch per il gioco, MS aggiunse del codice che rilevava quando SimCity era in esecuzione e impostava l'allocatore di memoria in una modalità speciale che non liberava immediatamente la memoria.
Di fatto, MS modificò Windows per compensare un bug presente in un singolo gioco.
MS ricompilò il gestore dell'heap di Windows 95 per le applicazioni meno recenti
La soluzione alternativa per SimCity era stata progettata per un solo programma, ma anche altre applicazioni dipendevano da un comportamento simile. L'ingegnere MS Raymond Chen spiegò in un articolo di Windows Confidential del 2010 che alcuni software dipendevano dalle peculiarità dell'heap di Windows 95, inclusa la possibilità di leggere la memoria rilasciata e trovarvi i valori precedenti ancora invariati.
Queste applicazioni potevano arrestarsi in modo anomalo nelle versioni successive di Windows, poiché le versioni più recenti gestivano la memoria in modo diverso.

MS risolse questo problema con EmulateHeap. La correzione di compatibilità reindirizza le chiamate di un'applicazione relative all'heap—incluse funzioni che vanno da HeapCreate a LocalLock e GlobalReAlloc—verso implementazioni sostitutive che riproducono il comportamento di Windows 95.
Chen descrisse la soluzione come estremamente semplice e al tempo stesso molto insolita: MS prese il codice sorgente del gestore dell'heap di Windows 95, lo ricompilò e lo integrò nell'infrastruttura per la compatibilità delle applicazioni.
Di conseguenza, una parte significativa del kernel di Windows 95 è presente nel framework di compatibilità delle applicazioni Windows. Tuttavia, questo codice legacy viene caricato dall'unità di archiviazione solo quando EmulateHeap è abilitato per un'applicazione specifica. Windows 11 non esegue continuamente codice di Windows 95 in background.
EmulateHeap è distinto dalla soluzione alternativa originale per SimCity. Entrambi riflettono la grande attenzione di MS verso la retrocompatibilità, dimostrata in seguito dal database nascosto di correzioni per le applicazioni di Windows XP, ma si tratta di soluzioni differenti.
Come trovare EmulateHeap su Windows 11
EmulateHeap può essere visualizzato tramite Amministratore compatibilità, lo strumento gratuito di MS per gli amministratori IT che elenca le correzioni di compatibilità incluse in Windows. MS definisce una correzione di compatibilità, nota anche come shim, come una piccola porzione di codice che intercetta le chiamate API effettuate dalle applicazioni.
Amministratore compatibilità è incluso nel Windows Assessment and Deployment Kit (ADK). La versione di settembre 2026 supporta ufficialmente Windows 11 26H2, dove EmulateHeap può essere individuato seguendo questa procedura:
Installa Windows ADK e seleziona Strumenti per la compatibilità delle applicazioni.

Apri Amministratore compatibilità a 32 bit dal menu Start.

Crea un nuovo database di compatibilità.

Esamina le correzioni di compatibilità disponibili e individua EmulateHeap.

EmulateHeap presenta limitazioni sui sistemi moderni
La presenza di una correzione di compatibilità non garantisce che funzioni correttamente in ogni situazione. Dopo l'aggiornamento a Windows 11 22H2, alcuni utenti hanno segnalato che l'attivazione dello shim causava la perdita dell'audio in giochi come GTA: Vice City, mentre Need for Speed: Most Wanted poteva arrestarsi in modo anomalo.
MS sta sostituendo la finestra di dialogo Proprietà risalente all'epoca di Windows 95 con WinUI 3, ma continua a mantenere il gestore dell'heap di Windows 95 per un numero limitato di applicazioni legacy. Lo stesso livello di compatibilità non è stato riservato a 3D Pinball, che fu rimosso a causa di un bug a 64 bit per la cui correzione il team di sviluppo non ritenne giustificabile impiegare diversi giorni.

