Riassunto:
In Windows 11 esiste una struttura che da tempo confonde gli utenti: su un sistema a 64 bit, C:WindowsSystem32 memorizza effettivamente file di sistema a 64 bit, mentre la directory C:WindowsSysWOW64 con "64" nel nome memorizza invece file a 32 bit. Agli utenti che non conoscono la storia di Windows, questo schema di denominazione potrebbe sembrare completamente invertito.

Gli ingegneri Microsoft hanno recentemente spiegato nuovamente le ragioni alla base di questo progetto. La risposta non è che Microsoft abbia semplicemente invertito i nomi delle directory, ma piuttosto per evitare di danneggiare molti software che si basavano sui vecchi percorsi. Quando Windows è passato da un'architettura a 32 bit a un'architettura a 64 bit, ha scelto di mantenere il nome della directory System32 già ampiamente utilizzato e quindi ha utilizzato il meccanismo di reindirizzamento del file system per consentire ai programmi a 32 bit di accedere automaticamente a un altro set di file di sistema.
Windows Latest ha pubblicato un articolo il 20 ottobre 2026 in cui introduceva questo problema e spiegava il relativo meccanismo insieme ai documenti tecnici ufficiali di Microsoft. Il rapporto sottolinea che questo design riflette pienamente l'impegno a lungo termine di Windows sulla compatibilità del software: anche se il vecchio metodo di denominazione non è più intuitivo, finché modifiche avventate possono impedire l'esecuzione di un gran numero di programmi, Microsoft tende a mantenere la struttura originale e a risolvere il problema attraverso il livello di compatibilità.
Per comprendere questo design, è necessario tornare agli albori di Windows.
Nell'era di Windows a 16 bit, i file di sistema erano archiviati principalmente nella directory C:WindowsSystem. Quando Microsoft ha lanciato Windows a 32 bit, il sistema necessitava di una nuova directory per contenere i file di sistema a 32 bit, quindi è stato utilizzato C:WindowsSystem32. Il "32" è infatti correlato all'architettura del sistema a 32 bit dell'epoca.
Ma quando è uscito Windows a 64 bit, le cose si sono complicate. Un gran numero di software ha programmato System32 nel codice del programma e utilizza direttamente questo percorso per accedere ai file di sistema invece di ottenere dinamicamente la directory di sistema corretta tramite l'interfaccia di sistema fornita da Windows.
Se Microsoft rinomina direttamente System32 in System64 all'avvio di Windows a 64 bit, molti vecchi programmi, programmi di installazione e script batch potrebbero non essere in grado di trovare i file di sistema di cui hanno bisogno. Anche se gli sviluppatori ricompilassero il software, potrebbero non essere in grado di correggere in tempo tutti i percorsi codificati.
Ciò che è ancora più problematico è che alcuni software leggono ancora i componenti di sistema corrispondenti da System32 per impostazione predefinita dopo essere stati aggiornati a una versione a 64 bit. Se Microsoft modifica System32 per archiviare solo file a 32 bit, questi programmi a 64 bit non saranno in grado di caricare normalmente le librerie di collegamento dinamico richieste.
Pertanto Microsoft ha finalmente deciso di mantenere il nome storico System32 e di lasciargli archiviare file che corrispondono all'architettura nativa del sistema operativo Windows a 64 bit. Per la versione x64 mainstream di Windows 11, ciò significa che System32 memorizza la versione a 64 bit dei componenti di sistema, mentre la versione a 32 bit viene inserita in un'altra directory.

Questa directory è SysWOW64.
WOW64 è l'abbreviazione di "Windows 32-bit on Windows 64-bit", che è un meccanismo di compatibilità per l'esecuzione di applicazioni Windows a 32 bit su Windows a 64 bit. Il "64" in SysWOW64 si riferisce all'ambiente Windows a 64 bit in cui si trova, non che il file stesso sia a 64 bit. In altre parole, il nome descrive la piattaforma a cui è rivolto il meccanismo di compatibilità, non il numero di bit nel binario nella directory.
L'ingegnere senior di Microsoft Raymond Chen una volta spiegò in un articolo tecnico che il "32" in System32 è gradualmente diventato un nome storico, proprio come alcuni nomi di marchi, anche se non riflettono più completamente il significato originale, verranno comunque conservati a causa dell'uso a lungo termine.
Se l'intero sistema potesse essere riprogettato, ritiene che un nome di directory più ideale potrebbe essere qualcosa come SysExec, che viene utilizzato per archiviare file eseguibili che corrispondono all'attuale architettura del sistema. Ma Windows esiste da decenni e System32 è stato a lungo un percorso fisso su cui fanno affidamento innumerevoli programmi, quindi i potenziali rischi di cambiare il nome superano di gran lunga i vantaggi della denominazione.
Oltre alla denominazione delle directory, Windows a 64 bit deve anche risolvere un problema più pratico: i programmi a 32 bit non possono caricare direttamente le librerie a collegamento dinamico a 64 bit e i programmi a 64 bit non possono caricare direttamente le librerie a collegamento dinamico a 32 bit.
Ad esempio, kernel32.dll è un importante componente di sistema di Windows. File con lo stesso nome si trovano in System32 e SysWOW64, ma sono compilati per architetture diverse e non possono essere semplicemente scambiati. Quando Windows Latest ha controllato queste due directory nel sistema Windows 11 26H2, ha riscontrato anche differenze nella dimensione dei file corrispondenti.
Se un programma a 32 bit carica direttamente la versione a 64 bit in System32, potrebbe non essere possibile eseguirlo a causa di un'architettura binaria incompatibile. Per evitare questa situazione, Windows ha introdotto il reindirizzamento del file system WOW64.
Su Windows a 64 bit, quando un programma a 32 bit tenta di accedere a C:WindowsSystem32, il sistema in genere reindirizza automaticamente la richiesta di accesso a C:WindowsSysWOW64. Questo processo è fondamentalmente trasparente per il programma stesso, pensa ancora di accedere a System32 e il sistema operativo trova il file a 32 bit corretto dietro le quinte.
La documentazione ufficiale di Microsoft afferma chiaramente che la directory System32 in Windows a 64 bit è riservata alle applicazioni a 64 bit e WOW64 è responsabile del reindirizzamento dell'accesso dei programmi a 32 bit ad alcuni percorsi di sistema alle corrispondenti directory a 32 bit.
Questo meccanismo non coinvolge solo la libreria di collegamento dinamico del sistema, ma influisce anche su alcuni strumenti di sistema. Ad esempio, quando un programma a 32 bit accede a determinati strumenti nella directory di Windows, potrebbe essere reindirizzato alla versione corrispondente in SysWOW64. Ciò impedisce ai programmi a 32 bit di utilizzare in modo improprio gli strumenti a 64 bit o di eseguire operazioni errate se l'architettura del sistema operativo non corrisponde.

WOW64 gestisce anche problemi di compatibilità come l'accesso al registro e i percorsi di installazione dei programmi. Per le applicazioni a 32 bit, Windows può fornire una visualizzazione del registro separata, una posizione tipica è HKEY_LOCAL_MACHINESoftwareWow6432Node. Inoltre, il sistema solitamente indirizza il percorso Program Files dei programmi a 32 bit a C:Program Files (x86), in modo che software di architetture diverse possano essere gestiti il più separatamente possibile.
Insieme, questi meccanismi fanno parte del sistema di compatibilità di Windows, consentendo a un gran numero di software scritto per i primi Windows a 32 bit di funzionare ancora su Windows 11 a 64 bit, senza che gli sviluppatori debbano riscrivere tutto il codice per ogni vecchio programma.
Tuttavia, il reindirizzamento del file system può anche provocare alcune situazioni che possono facilmente confondere gli sviluppatori.
Ad esempio, un prompt dei comandi a 32 bit e un prompt dei comandi a 64 bit, anche se utilizzano il percorso apparentemente identico per accedere a C:WindowsSystem32kernel32.dll, i file effettivi ottenuti potrebbero essere diversi. Il primo viene solitamente reindirizzato a SysWOW64, mentre il secondo accede direttamente a System32.
Matt Pitrek, un ex membro del team di Microsoft Visual Studio, ha menzionato in un articolo tecnico di aver dedicato del tempo alla risoluzione del problema perché otteneva risultati confusi quando il prompt dei comandi a 32 bit elencava i file con lo stesso nome in due directory. Ciò dimostra che, sebbene il reindirizzamento del file system possa mantenere la compatibilità del software, rende anche più complicato il lavoro di debug e sviluppo del sistema.
Per risolvere alcune situazioni particolari, Microsoft mette a disposizione anche un percorso virtuale chiamato Sysnative. Se un programma a 32 bit ha davvero bisogno di accedere alla directory nativa System32 di Windows a 64 bit, può utilizzare C:WindowsSysnative per aggirare il consueto reindirizzamento del file system.
Va notato che Sysnative non è una vera cartella sul disco, ma un alias di percorso fornito appositamente da Windows. Le applicazioni a 64 bit non possono utilizzare questo alias come i programmi a 32 bit, quindi quando gli utenti cercano Sysnative direttamente in Esplora file, potrebbero scoprire che il sistema richiede che il percorso non esiste.

Microsoft elenca inoltre una serie di sottodirectory System32 che non sono interessate dal normale reindirizzamento del file system, tra cui:
C:WindowsSystem32catroot
C:WindowsSystem32catroot2
C:WindowsSystem32driverstore
C:WindowsSystem32drivers ecc
File di registro C:WindowsSystem32
C:WindowsSystem32spool
Queste directory coinvolgono funzioni quali directory dei componenti di sistema, archiviazione dei driver, file di configurazione di rete, registrazione e stampa. La documentazione Microsoft elenca chiaramente questi percorsi di eccezione, ma non fornisce una spiegazione unificata dei motivi di progettazione specifici per ciascuna eccezione. Windows Latest ritiene che alcune di queste directory possano contenere dati a cui devono accedere congiuntamente programmi con architetture diverse, come il file host in drivers ecc.
Oltre alla piattaforma x64, anche il meccanismo di compatibilità di Windows sull'architettura Arm ha visto un design multi-directory simile.
In alcuni dei primi sistemi Windows on Arm, i programmi x86 a 32 bit utilizzano SysWOW64, mentre i programmi Arm a 32 bit possono accedere ai componenti di sistema corrispondenti tramite SysArm32. Poiché la piattaforma Arm deve affrontare problemi di compatibilità tra diverse architetture di set di istruzioni, Windows utilizza anche meccanismi di simulazione e conversione corrispondenti.
Tuttavia, l'ultima documentazione sullo sviluppo di Arm di Microsoft afferma che Windows su Arm non supporterà più le applicazioni Arm a 32 bit e che anche i relativi file binari di sistema verranno rimossi dalla directory SysArm32. Allo stesso tempo, le normali applicazioni x86 possono ancora essere eseguite tramite il meccanismo di compatibilità e alcuni programmi x86 sono supportati dalla tecnologia di emulazione Prism.

Ciò dimostra anche che il sistema di compatibilità di Windows non è completamente statico. Man mano che le piattaforme hardware e gli ecosistemi software cambiano, Microsoft eliminerà gradualmente il supporto per alcune vecchie architetture, ma per le applicazioni ancora ampiamente utilizzate, l'azienda cercherà di mantenere la compatibilità il più possibile.
Da un punto di vista tecnico, la denominazione di System32 e SysWOW64 non è infatti abbastanza intuitiva. Per gli utenti ordinari, è naturale pensare che i file a 64 bit siano archiviati nella directory quando vedono "64". Ma in Windows, i nomi delle directory riflettono la storia piuttosto che un insieme di regole progettate da zero per seguire l'intuizione.
Il motivo principale per cui Microsoft non ha semplicemente rinominato le due directory è stata la compatibilità. Windows deve eseguire molti software storici e questi programmi possono fare affidamento su percorsi fissi, interfacce di sistema legacy e layout di file binari specifici. La modifica incauta di queste infrastrutture può causare errori di installazione del software, anomalie degli strumenti di sistema e persino influenzare i processi aziendali che si basano su vecchi componenti.
Pertanto, Microsoft ha scelto di risolvere il problema attraverso meccanismi come il reindirizzamento del file system, il reindirizzamento del registro e percorsi virtuali, piuttosto che ricostruire completamente il sistema di denominazione delle directory.
Questo design non è perfetto, ma riflette un'importante differenza nel percorso di sviluppo di Windows e di altri sistemi operativi: Windows deve sempre trovare un equilibrio tra la modernizzazione continua e la compatibilità con software vecchi di decenni. I nomi apparentemente invertiti di System32 e SysWOW64 sono una tipica traccia lasciata da questa strategia di compatibilità a lungo termine.
Commenti