Cartella Programmi x86 e come Windows gestisce app 32 bit
Aprendo il disco C per recuperare spazio ci si imbatte nelle due cartelle Programmi e Programmi x86, chiedendosi se una delle due sia un duplicato inutile da rimuovere. Spostare o cancellare la directory x86 manda in blocco decine di software, perché Windows la usa come recinto isolato per far girare i file compilati a 32 bit.
Anche se Windows 11 viene distribuito solo per architetture a 64 bit, il sistema operativo mantiene questa divisione per garantire la compatibilità con i programmi meno recenti. I percorsi fisici sul disco restano C:\Program Files per i file a 64 bit e C:\Program Files (x86) per quelli a 32 bit, garantendo che i due ambienti non condividano mai per sbaglio gli stessi file eseguibili.
LEGGI ANCHE: Passare da Windows 32 bit a Windows 10 64 bit, gratis
Perché Windows separa i programmi a 32 e 64 bit
Windows mantiene due cartelle separate per impedire che un programma a 32 bit carichi per sbaglio librerie a 64 bit, provocando la chiusura forzata dell'applicazione. Isolando i vecchi file nella directory x86, il sistema fornisce solo le librerie corrette per quell'architettura.
La sigla x86 identifica storicamente l'architettura a 32 bit derivata dalla famiglia di processori Intel 8086. I software a 64 bit, indicati come x64, gestiscono quantitativi enormi di memoria RAM ed elaborano blocchi di istruzioni doppi a ogni ciclo di clock.
Se un programma a 32 bit tentasse di caricare una libreria dinamica DLL a 64 bit presente nella cartella principale dei programmi, il processore registrerebbe un'incompatibilità immediata tra i registri di memoria, arrestando il processo con un errore di violazione di accesso.
Come WOW64 gestisce librerie, registro e percorsi nascosti
Il sottosistema WOW64 traduce le chiamate di sistema generate dalle applicazioni a 32 bit verso il kernel a 64 bit. Sui processori Intel e AMD non simula una CPU virtuale, ma reindirizza in tempo reale le richieste di file e chiavi di configurazione.
Quando lanciamo un file presente in C:\Program Files (x86), il modulo WOW64 (Windows 32-bit on Windows 64-bit) attiva tre livelli di separazione trasparente:
- Il paradosso di System32 e SysWOW64. Per mantenere intatti i vecchi programmi che cercavano le librerie nel percorso storico, Windows conserva i file di sistema a 64 bit dentro
C:\Windows\System32. I file a 32 bit si trovano invece dentroC:\Windows\SysWOW64. Quando un processo a 32 bit cerca un elemento in System32, WOW64 intercetta la richiesta e la dirotta in modo invisibile dentro SysWOW64. - La cartella virtuale Sysnative per scavalcare il blocco. Se uno script o un software a 32 bit ha bisogno di accedere ai veri strumenti di sistema a 64 bit situati in System32, il reindirizzamento automatico glielo impedirebbe. Per risolvere questo problema, Windows mette a disposizione l'alias virtuale
C:\Windows\Sysnative, un percorso visibile solo ai processi a 32 bit che punta direttamente alla vera directory a 64 bit. - Isolamento nel Registro sotto WOW6432Node. Molti programmi salvano i parametri di avvio nella chiave
HKEY_LOCAL_MACHINE\SOFTWARE. Per evitare sovrascritture tra versioni differenti, WOW64 sposta in automatico le voci a 32 bit nel ramo secondarioWOW6432Node. - Traduzione su macchine con chip ARM64. Nei computer portatili basati su Snapdragon con Windows 11, WOW64 collabora con il motore Prism. Questo livello emula le istruzioni x86 traducendo il codice al volo per consentire l'avvio dei vecchi programmi anche in assenza di una CPU Intel o AMD.
Il limite reale dei 2 GB di RAM e la modifica Large Address Aware
Un errore comune consiste nel pensare che ogni programma a 32 bit possa sfruttare 4 GB di memoria. Nella configurazione di serie di Windows, lo spazio di indirizzamento virtuale di un processo x86 viene diviso a metà: 2 GB per l'applicazione e 2 GB riservati alle operazioni del sistema operativo.
Questo vincolo causa arresti anomali frequenti con messaggi di memoria esaurita nei software di fotoritocco datati o nei videogiochi del passato modificati con texture ad alta risoluzione. Non appena il consumo tocca quota 1,8 GB, il programma si chiude anche se il computer dispone di 16 o 32 GB di RAM libera.
Sotto Windows a 64 bit, il sottosistema WOW64 permette di superare questa soglia e assegnare tutti i 4 GB completi al programma a 32 bit. Perché questo avvenga, l'eseguibile deve avere compilato nel proprio file di intestazione il flag Large Address Aware (LAA). Per i programmi privi di questo supporto nativo, esistono modificatori di intestazione che abilitano il flag nel file .exe originale, consentendo all'applicazione di raddoppiare la memoria allocabile senza dover riscrivere il codice.
Come individuare le app a 32 bit ed eliminare i processi superflui
Identificare i programmi x86 ancora attivi consente di valutare la sostituzione con controparti a 64 bit più veloci e protette contro gli attacchi informatici moderni.
- Ispezione in Gestione attività. Apriamo la finestra con la combinazione
Ctrl + Maiusc + Esce spostiamoci nella scheda Dettagli. - Attivazione della colonna Piattaforma. Facciamo clic destro sulla barra dei titoli delle colonne, premiamo su Seleziona colonne e aggiungiamo la spunta alla voce Piattaforma.
- Verifica dell'architettura. La schermata indicherà per ciascun file se l'esecuzione avviene a 64 bit oppure a 32 bit.
Per un monitoraggio avanzato che mostri anche l'uso reale del sottosistema WOW64 e l'occupazione delle singole librerie in memoria, lo strumento più completo è Process Explorer, distribuito gratuitamente nei pacchetti Sysinternals di Microsoft.
Molti produttori continuano a offrire file di installazione x86 come scelta predefinita sui propri siti web. Per assicurarci di installare l'edizione compilata a 64 bit senza navigare tra i menu secondari, possiamo usare il gestore pacchetti Winget dal Terminale di Windows indicando l'architettura desiderata:
winget install --id Nome.Programma --architecture x64
Perché non bisogna toccare o unire le cartelle sul disco C
Tentare di fondere Programmi (x86) con la cartella Programmi distrugge i puntatori assoluti registrati durante l'installazione. Windows memorizza i percorsi di configurazione nel registro di sistema e nei collegamenti del menu Start: modificando a mano la posizione delle cartelle, le applicazioni smettono di trovare i file ausiliari.
Questa manomissione impedisce anche la normale rimozione del software dal pannello delle Impostazioni, perché l'eseguibile di disinstallazione non risulterà più raggiungibile. Inoltre, nella directory x86 risiedono componenti condivisi essenziali per il funzionamento del sistema, tra cui i moduli di supporto Microsoft Visual C++ Redistributable a 32 bit, necessari a centinaia di strumenti quotidiani.
Diario di bordo di Navigaweb
Un vecchio software di impaginazione che uso per lavoro continuava ad andare in crash improvviso con un messaggio di memoria esaurita ogni volta che inserivo immagini pesanti, nonostante il computer avesse 32 GB di RAM installata. Analizzando il processo ho notato che si trattava di un file a 32 bit che si bloccava esattamente alla soglia di 1,8 GB di memoria virtuale. Invece di rassegnarmi a cambiare programma, ho aperto l'eseguibile con un editor di intestazioni e ho abilitato il flag Large Address Aware: da quel momento WOW64 gli ha messo a disposizione 4 GB interi di indirizzamento, eliminando i blocchi e ridando piena stabilità a uno strumento che uso da oltre dieci anni.