Homepage » come » Qual è la differenza tra le cartelle System32 e SysWOW64 in Windows?

    Qual è la differenza tra le cartelle System32 e SysWOW64 in Windows?

    Nelle versioni a 64 bit di Windows sono disponibili due cartelle Programmi separate. Ma non finisce qui. Sono inoltre disponibili due directory di sistema separate in cui sono archiviate librerie e file eseguibili DLL: System32 e SysWOW64. Nonostante i nomi, System32 è pieno di file a 64 bit e SysWOW64 è pieno di file a 32 bit. Quindi cosa dà?

    Che cos'è System32?

    La directory System32 contiene i file di sistema di Windows, entrambi i file di libreria .DLL utilizzati dai programmi e le utilità del programma .EXE che fanno parte di Windows. Mentre la maggior parte dei file che trovi qui fa parte del sistema operativo Windows, i programmi software di terze parti a volte installano anche i loro file DLL in questa cartella.

    Le applicazioni in esecuzione sul tuo sistema possono essere installate nella cartella Programmi o altrove, ma spesso caricano librerie a livello di sistema dalla cartella System32.

    Separazione di librerie a 32 e 64 bit

    Su una versione a 64 bit di Windows, si dispone di una cartella C: \ Programmi contenente programmi a 64 bit e relativi file e una cartella C: \ Programmi (x86) contenente programmi a 32 bit e relativi file. È utile che questi file siano separati perché i programmi a 64 bit necessitano di file DLL a 64 bit e i programmi a 32 bit necessitano di file DLL a 32 bit.

    Se un programma a 32 bit va a caricare un file DLL di cui ha bisogno, trova una versione a 64 bit e prova a caricarlo, si bloccherà. Separando il software 64-bit e 32-bit in due diverse cartelle Program Files, Windows assicura che non vengano confusi e causino problemi.

    Tuttavia, non tutti i file DLL sono archiviati in Programmi. Molte librerie di sistema incluse in Windows sono archiviate in C: \ System32 e alcuni programmi eseguono anche il dump dei loro file di libreria qui. Quindi, proprio come Windows ha separate le cartelle Programmi a 32 e 64 bit, ha anche versioni separate a 32 e 64 bit della cartella System32.

    System32 e SysWOW64

    Su un computer a 32 bit, tutti i programmi a 32 bit archiviano i propri file in C: \ Programmi e la posizione della libreria a livello di sistema è C: \ System32.

    Su un computer a 64 bit, i programmi a 64 bit archiviano i loro file in C: \ Programmi e la cartella C: \ Windows \ System32 a livello di sistema contiene librerie a 64 bit. I programmi a 32 bit memorizzano i loro file in C: \ Programmi (x86) e la cartella di sistema è C: \ Windows \ SysWOW64.

    Questo è decisamente controintuitivo. Nonostante il "32" nel nome, la cartella System32 contiene librerie a 64 bit. E, nonostante il 64 nel nome, la cartella SysWOW64 contiene librerie a 32 bit, almeno nelle versioni a 64 bit di Windows.

    In generale, non avrai bisogno di saperlo. Il sistema operativo Windows e i programmi che si utilizzano posizionano automaticamente i file nella posizione corretta e utilizzano la cartella corretta. Tuttavia, se è necessario installare manualmente un file DLL nella posizione corretta o trovare dove è installato, il che è molto raro, è necessario sapere quale è quale.

    WOW64, spiegato

    La parte "WOW64" del nome qui fa riferimento al software Microsoft "Windows 32-bit su Windows 64-bit", che fa parte del sistema operativo. Ciò consente a Windows di eseguire programmi a 32 bit su una versione a 64 bit di Windows. WoW64 reindirizza l'accesso ai file per garantire che i programmi funzionino correttamente.

    Ad esempio, se si installa un programma a 32 bit su una versione a 64 bit di Windows e si tenta di scrivere nella cartella C: \ Programmi, WoW64 punta a C: \ Programmi (x86). E, se vuole accedere alla cartella C: \ Windows \ System32, WoW64 punta a C: \ Windows \ SysWOW64. Windows lo fa utilizzando un redirector del file system.

    Tutto ciò avviene automaticamente e in modo trasparente in background. Il programma non ha nemmeno bisogno di sapere che è in esecuzione su un sistema operativo a 64 bit, che consente ai vecchi programmi a 32 bit di funzionare senza modifiche sulle versioni a 64 bit di Windows. WOW64 reindirizza anche l'accesso al registro, assicurando che vi siano aree separate del registro per programmi a 64 e 32 bit.

    Quindi, perché System32 a 64 bit e SysWOW64 a 32 bit?

    Tutto ciò ci riporta alla domanda da un milione di dollari: perché la cartella "System32" a 64 bit e SysWOW64 a 32 bit?

    La risposta sembra essere che molte applicazioni a 32 bit sono state codificate per utilizzare la directory C: \ Windows \ System32. Quando gli sviluppatori hanno ricompilato queste applicazioni per le versioni a 64 bit di Windows, hanno continuato a utilizzare la directory C: \ Windows \ System32.

    Piuttosto che rinominare la directory e costringere gli sviluppatori a passare a quella nuova, interrompendo molte applicazioni nel processo, Microsoft ha lasciato "System32" come directory della libreria di sistema standard. Hanno creato una nuova directory di libreria per le applicazioni in esecuzione sotto il livello WoW64, che hanno chiamato "SysWOW64". Quando ci pensi in questo modo, il nome ha più senso.

    Sì, è un po 'sciocco che una directory con "32" nel nome ora sia 64-bit. Forse Microsoft avrebbe dovuto vederlo arrivare quando l'hanno chiamato C: \ Windows \ System32 negli anni '90. Ma, anche se uno schema di denominazione più semplice sarebbe bello, non vale la pena interrompere un sacco di programmi e creare più lavoro per gli sviluppatori solo per arrivarci. Ciò significa che siamo bloccati con System32 e SysWOW64 per il prossimo futuro.