Qual é a diferença entre as pastas “System32” e “SysWOW64” no Windows?
Em versões de 64 bits do Windows, você tem duas pastas de arquivos de programas separadas. Mas isso não termina aí. Você também tem dois diretórios de sistema separados, nos quais as bibliotecas DLL e os executáveis são armazenados: System32 e SysWOW64. Apesar dos nomes, o System32 está cheio de arquivos de 64 bits e o SysWOW64 está cheio de arquivos de 32 bits. Então, o que dá?
O que é o System32??
O diretório System32 contém arquivos de sistema do Windows, ambos os arquivos de biblioteca .DLL usados por programas e utilitários de programa .EXE que fazem parte do Windows. Embora a maioria dos arquivos encontrados aqui sejam parte do sistema operacional Windows, os programas de software de terceiros, às vezes, também instalam seus próprios arquivos DLL nessa pasta..
Aplicativos em execução no seu sistema podem ser instalados na sua pasta Arquivos de Programas ou em outro lugar, mas eles geralmente carregam bibliotecas do sistema a partir da pasta System32.
Separando Bibliotecas de 32 e 64 bits
Em uma versão de 64 bits do Windows, você tem uma pasta C: \ Arquivos de Programas contendo programas de 64 bits e seus arquivos, e uma pasta C: \ Arquivos de Programas (x86) contendo programas de 32 bits e seus arquivos. É útil que esses arquivos sejam separados, pois os programas de 64 bits precisam de arquivos DLL de 64 bits e os programas de 32 bits precisam de arquivos DLL de 32 bits..
Se um programa de 32 bits vai carregar um arquivo DLL necessário, encontrar uma versão de 64 bits e tentar carregá-lo, ele falhará. Ao separar o software de 64 bits e 32 bits em duas pastas diferentes de Arquivos de Programas, o Windows garante que eles não se misturem e causem problemas.
No entanto, nem todos os arquivos DLL são armazenados em arquivos de programas. Muitas bibliotecas de todo o sistema incluídas no Windows são armazenadas em C: \ System32 e alguns programas também despejam seus próprios arquivos de biblioteca aqui. Portanto, assim como o Windows tem pastas de Arquivos de Programas separadas de 32 e 64 bits, ele também possui versões separadas de 32 e 64 bits da pasta System32.
System32 e SysWOW64
Em um computador de 32 bits, todos os programas de 32 bits armazenam seus arquivos em C: \ Arquivos de programas e o local da biblioteca de todo o sistema é C: \ System32.
Em um computador de 64 bits, os programas de 64 bits armazenam seus arquivos em C: \ Program Files e a pasta C: \ Windows \ System32 do sistema inteiro contém bibliotecas de 64 bits. Programas de 32 bits armazenam seus arquivos em C: \ Arquivos de Programas (x86) e a pasta do sistema é C: \ Windows \ SysWOW64.
Isso é definitivamente contra-intuitivo. Apesar do “32” no nome, a pasta System32 contém bibliotecas de 64 bits. E, apesar do 64 no nome, a pasta SysWOW64 contém bibliotecas de 32 bits - pelo menos em versões de 64 bits do Windows.
Em geral, você não precisa saber disso. O sistema operacional Windows e os programas que você usa colocam automaticamente seus arquivos no local correto e usam a pasta correta. No entanto, se você precisar instalar manualmente um arquivo DLL no local correto ou descobrir onde ele está instalado - o que é muito raro - você precisará saber qual é qual.
WOW64, explicado
A parte "WOW64" do nome refere-se ao software "Windows 32-bit no Windows 64-bit" da Microsoft, que faz parte do sistema operacional. Isso permite que o Windows execute programas de 32 bits em uma versão de 64 bits do Windows. O WoW64 redireciona o acesso a arquivos para garantir que os programas funcionem corretamente.
Por exemplo, se você instalar um programa de 32 bits em uma versão de 64 bits do Windows e tentar gravar na pasta C: \ Arquivos de Programas, o WoW64 a apontará em C: \ Arquivos de Programas (x86). E, se quiser acessar a pasta C: \ Windows \ System32, o WoW64 a aponta em C: \ Windows \ SysWOW64. O Windows faz isso usando um redirecionador de sistema de arquivos.
Tudo isso acontece de forma automática e transparente em segundo plano. O programa nem precisa saber se está sendo executado em um sistema operacional de 64 bits, o que permite que programas antigos de 32 bits sejam executados sem modificação em versões de 64 bits do Windows. O WOW64 também redireciona o acesso ao registro, garantindo que haja áreas separadas do registro para programas de 64 bits e 32 bits.
Então, por que é System32 64 bits e SysWOW64 32 bits?
Tudo isso nos leva de volta à pergunta de milhões de dólares: por que a pasta “System32” é de 64 bits e a SysWOW64 é de 32 bits??
A resposta parece ser que muitos aplicativos de 32 bits foram codificados para usar o diretório C: \ Windows \ System32. Quando os desenvolvedores recompilaram esses aplicativos para versões de 64 bits do Windows, eles continuaram a usar o diretório C: \ Windows \ System32.
Em vez de renomear o diretório e forçar os desenvolvedores a migrar para o novo, quebrando muitos aplicativos no processo, a Microsoft deixou o “System32” como o diretório padrão da biblioteca do sistema. Eles criaram um novo diretório de bibliotecas para aplicativos em execução na camada WoW64, que eles chamaram de “SysWOW64”. Quando você pensa assim, o nome faz mais sentido.
Sim, é um pouco bobo que um diretório com “32” no nome seja agora de 64 bits. Talvez a Microsoft devesse ter percebido isso quando o chamaram C: \ Windows \ System32 nos anos 90. Mas, embora um esquema de nomenclatura mais simples seria bom, não vale a pena quebrar um monte de programas e criar mais trabalho para os desenvolvedores apenas para chegar lá. Isso significa que estamos presos ao System32 e ao SysWOW64 no futuro previsível.