Koja je razlika između mapa "System32" i "SysWOW64" u sustavu Windows?

Sadržaj:

Koja je razlika između mapa "System32" i "SysWOW64" u sustavu Windows?
Koja je razlika između mapa "System32" i "SysWOW64" u sustavu Windows?
Anonim
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?
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?

Što je System32?

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.

Odvajanje 32-bitnih i 64-bitnih knjižnica

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.
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.

System32 i SysWOW64

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.

WOW64, objasnio je

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.

Pa zašto je System32 64-bitni i SysWOW64 32-bitni?

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.

Preporučeni: