Na 64-bitnim verzijama sustava Windows imate dvije zasebne mape programa Program Files. Ali to ne završava tamo. Također imate dva odvojena direktorija sustava u kojima su pohranjene DLL biblioteke i izvršne datoteke: System32 i SysWOW64. Unatoč imenima, System32 je pun 64-bitnih datoteka i SysWOW64 je pun 32-bitnih datoteka. Pa što daje?
Direktorij System32 sadrži datoteke sustava Windows, obje. DLL datoteke biblioteke koje koriste programi i programi za .EXE koji su dio sustava Windows. Dok je većina datoteka koje ovdje nalazite dio operacijskog sustava Windows, programi softverske jedinice treće strane ponekad također mogu instalirati vlastite DLL datoteke u ovu mapu.
Aplikacije koje se pokreću na vašem sustavu mogu se instalirati u mapu Program Files ili drugdje, ali često učitavaju knjižnice u sustavu iz mape System32.
Na 64-bitnoj verziji sustava Windows imate mapu C: \ Program Files koja sadrži 64-bitne programe i njihove datoteke te mapu C: \ Program Files (x86) koja sadrži 32-bitne programe i njihove datoteke. Korisno je da se ove datoteke odvoje jer 64-bitni programi trebaju 64-bitne DLL datoteke, a 32-bitni programi trebaju 32-bitne DLL datoteke.
Ako 32-bitni program ide na učitavanje DLL datoteke koja mu je potrebna, pronalazi 64-bitnu verziju i pokušava je učitati, to će se srušiti. Razdvajanjem 64-bitnog i 32-bitnog softvera u dvije mape Programskih datoteka, sustav Windows osigurava da se neće miješati i uzrokovati probleme.
Međutim, sve datoteke DLL nisu pohranjene u programskim datotekama. Mnoge knjižnice obuhvaćene sustavom sadržane u sustavu Windows pohranjene su u C: \ System32, a neki programi također odlažu svoje datoteke knjižnice ovdje. Dakle, baš kao što Windows posjeduje zasebne 32-bitne i 64-bitne programske mape, također ima zasebne 32-bitne i 64-bitne verzije mape System32.
Na 32-bitnom računalu svi 32-bitni programi pohranjuju svoje datoteke u C: \ Program Files, a lokacija knjižnice na cijelom sustavu je C: \ System32.
Na 64-bitnom računalu, 64-bitni programi pohranjuju svoje datoteke u C: \ Program Files, a mapa C: \ Windows \ System32 na cijelom sustavu sadrži 64-bitne biblioteke. 32-bitni programi pohranjuju svoje datoteke u C: \ Program Files (x86), a mapa cijelog sustava je C: \ Windows \ SysWOW64.
Ovo je definitivno proturječno. Unatoč "32" u imenu, mapa System32 sadrži 64-bitne biblioteke. I, unatoč 64 u nazivu, mapa SysWOW64 sadrži 32-bitne knjižnice - barem na 64-bitnim verzijama sustava Windows.
Općenito, to nećete morati znati. Operativni sustav Windows i programi koje koristite automatski stavljaju svoje datoteke na ispravnu lokaciju i koriste ispravnu mapu. Međutim, ako ikada morate ručno instalirati DLL datoteku na ispravnu lokaciju ili pronaći gdje je instaliran - što je vrlo rijetko - morat ćete znati koja je to.
Dio naziva "WOW64" odnosi se na Microsoftov softver "32-bitni Windows na 64-bitnom sustavu Windows", koji je dio operativnog sustava. To Windows omogućuje pokretanje 32-bitnih programa na 64-bitnoj verziji sustava Windows. WoW64 preusmjerava pristup datotekama kako bi osigurao da programi rade ispravno.
Na primjer, ako instalirate 32-bitni program na 64-bitnu verziju sustava Windows i pokušate pisati u mapu C: \ Program Files, WoW64 to upućuje na C: \ Program Files (x86). A ako želi pristupiti mapi C: \ Windows \ System32, WoW64 to upućuje na C: \ Windows \ SysWOW64. Windows to koristi pomoću preusmjerivača datotečnog sustava.
Sve se to događa automatski i transparentno u pozadini. Program ne mora ni znati da se izvodi na 64-bitnom operacijskom sustavu, što omogućuje starijim 32-bitnim programima da se izvode bez promjene na 64-bitnim verzijama sustava Windows. WOW64 također preusmjerava pristup registru, osiguravajući odvojena područja registra za 64-bitne i 32-bitne programe.
Sve to nas vraća na pitanje milijuna dolara: Zašto je mapa "System32" 64-bitna i SysWOW64 32-bitna?
Čini se da se čini da su mnoge 32-bitne aplikacije bile hardcodirane da koriste C: \ Windows \ System32 direktorij. Kada programeri rekompliraju ove aplikacije za 64-bitne verzije sustava Windows, nastavili su koristiti direktorij C: \ Windows \ System32.
Umjesto preimenovanja direktorija i prisiljavanja razvojnih programera na prelazak na novi, razbijanje mnogih aplikacija u tom procesu, Microsoft je napustio "System32" kao standardni katalog knjižnice sustava. Izradili su novi knjižnični direktorij za aplikacije koje se pokreću pod WoW64 slojem, koje su imenovale "SysWOW64". Kada razmišljate o tome na ovaj način, ime ima više smisla.
Da, malo je glupo da je direktorij s "32" u imenu sada 64-bitni. Možda je Microsoft trebao vidjeti da dolaze kada im je naziv C: \ Windows \ System32 u 90-ima. No, iako bi jednostavnija shema imenovanja bilo lijepo, nije vrijedno razbijanje hrpe programa i stvaranje više posla za razvojne programere samo da bi stigli do njih. To znači da smo zaustavljeni s System32 i SysWOW64 u doglednoj budućnosti.