12.000Lettori online ora
Tecnologia 2 min di lettura1 ora fa

Windows XP, il trucco nascosto che faceva funzionare quasi tutto

Un archivio di regole e correzioni mirate permetteva al sistema operativo di aggirare i limiti dei programmi più vecchi senza modificarne il codice.

La compatibilità di Windows XP con programmi nati per sistemi molto più datati non dipendeva soltanto dalla sua architettura. Alla base c’era un insieme di interventi automatici, progettati per riconoscere le applicazioni problematiche e correggerne il comportamento mentre erano in esecuzione. Raymond Chen, tra gli sviluppatori coinvolti nella nascita di queste soluzioni, ha contribuito a ricostruirne il funzionamento.


Il database che riconosceva ogni programma

Il cuore del sistema era l’Application Compatibility Database, un archivio che raccoglieva centinaia di regole dedicate a programmi conosciuti. I dati si trovavano nella cartella AppPatch e consentivano a Windows di identificare un’applicazione con criteri molto più precisi del semplice nome del file eseguibile.

Il riconoscimento poteva basarsi su dimensioni, versione, checksum e altri parametri del programma. In questo modo il sistema distingueva anche diverse edizioni dello stesso applicativo, applicando soltanto la correzione adatta a quella specifica situazione.


Le correzioni entravano in azione da sole

Quando un programma presente nell’archivio veniva avviato, Windows XP attivava i cosiddetti shim: piccoli componenti capaci di intervenire sul comportamento del sistema esclusivamente per quell’applicazione. Il codice originale non veniva riscritto, ma le chiamate alle API di Windows potevano essere intercettate e modificate prima di arrivare al sistema operativo.

Chiedi a Readoo3 / 3 oggi

Fai una domanda su questo articolo o sul suo argomento: l'AI risponde in modo pertinente.

Tra gli interventi più singolari c’era Version Lie. Alcuni programmi controllavano la versione di Windows prima dell’avvio e si bloccavano davanti a un sistema che non riconoscevano. Lo shim restituiva allora informazioni differenti, facendo credere all’applicazione di trovarsi, per esempio, su Windows 98 o su un’altra versione considerata compatibile.


La memoria imitava Windows 95

Chen ha ricordato anche EmulateHeap, una soluzione considerata particolarmente ingegnosa. In questo caso Windows XP metteva a disposizione del programma una replica del sistema di gestione della memoria utilizzato da Windows 95.

L’applicazione poteva così continuare a interagire con la memoria secondo regole che conosceva già, riducendo il rischio di errori causati dalle differenze tra i due sistemi operativi. Era un approccio mirato: invece di costringere ogni vecchio programma ad adattarsi al nuovo ambiente, era il sistema a ricreare, quando necessario, condizioni familiari per il software.

Ti è piaciuto? Condividilo

Continua a leggere