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

Sommario:

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

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

Video: Qual è la differenza tra le cartelle "System32" e "SysWOW64" in Windows?
Video: Come TRASFORMARE il vecchio SMARTPHONE in una TELECAMERA di SICUREZZA - YouTube 2024, Marzo
Anonim
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à?
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 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, mentre i programmi a 32 bit necessitano di file DLL a 32 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, mentre 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 separato 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 loro 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

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 nelle versioni a 64 bit di Windows. WOW64 reindirizza anche l'accesso al registro, assicurando che esistano aree separate del registro per programmi a 64-bit 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 lo chiamarono 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.

Consigliato: