Koja je razlika između mapa System32 i SysWOW64 u sustavu Windows?
Na 64-bitnim verzijama sustava Windows imate dvije zasebne mape Program Files. Ali to se ne završava. Također imate dva odvojena direktorija sustava gdje su pohranjene DLL knjižnice i izvršne datoteke: System32 i SysWOW64. Unatoč imenima, System32 je pun 64-bitnih datoteka, a SysWOW64 je pun 32-bitnih datoteka. Pa što daje?
Što je System32?
Direktorij System32 sadrži datoteke sustava Windows, i .DLL datoteke knjižnice koje koriste programi i .EXE programski programi koji su dio sustava Windows. Dok je većina datoteka koje ovdje pronalazite dio operativnog sustava Windows, programi drugih proizvođača ponekad instaliraju i vlastite DLL datoteke u tu mapu..
Aplikacije koje se pokreću na vašem sustavu mogu biti instalirane u vašoj mapi Program Files ili drugdje, ali često učitavaju knjižnice na razini sustava iz mape System32.
Razdvajanje 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 razdvojiti te datoteke jer 64-bitni programi trebaju 64-bitne DLL datoteke, a 32-bitnim programima potrebne 32-bitne DLL datoteke.
Ako 32-bitni program pokrene potrebnu DLL datoteku, pronađe 64-bitnu verziju i pokuša je učitati, to će se srušiti. Izdvajanjem 64-bitnog i 32-bitnog softvera u dvije različite mape Program Files, Windows osigurava da se neće miješati i uzrokovati probleme.
Međutim, nisu sve datoteke DLL pohranjene u programskim datotekama. Mnoge knjižnice na razini sustava koje su uključene u sustav Windows pohranjene su u sustavu C: System32, a neki programi također ispisuju vlastite knjižnične datoteke. Dakle, baš kao što Windows ima odvojene 32-bitne i 64-bitne mape s programskim datotekama, on također ima odvojene 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: Programske datoteke, a mjesto knjižnice na razini cijelog sustava je C: \ t.
Na 64-bitnom računalu 64-bitni programi pohranjuju svoje datoteke u C: Programske datoteke i na razini sustava C: Mapa Windows System32 sadrži 64-bitne knjižnice. 32-bitni programi pohranjuju svoje datoteke u C: Programske datoteke (x86), a mapa na razini sustava je C: Windows SysWOW64.
Ovo je definitivno protuintuitivno. Unatoč nazivu "32", mapa System32 sadrži 64-bitne knjižnice. I, unatoč nazivu 64, mapa SysWOW64 sadrži 32-bitne knjižnice - barem na 64-bitnim verzijama sustava Windows.
Općenito, to ne morate znati. Operacijski sustav Windows i programi koje koristite automatski stavljaju datoteke na ispravno mjesto i koriste ispravnu mapu. Međutim, ako ikada trebate ručno instalirati DLL datoteku na ispravnom mjestu ili pronaći mjesto gdje je instaliran - što je vrlo rijetko - morat ćete znati koja je koja.
WOW64, objašnjeno
Dio naziva "WOW64" ovdje se odnosi na Microsoftov "Windows 32-bitni na Windows 64-bitni" softver, koji je dio operativnog sustava. To Windowsima omogućuje pokretanje 32-bitnih programa u 64-bitnoj verziji sustava Windows. WoW64 preusmjerava pristup datotekama kako bi osigurali ispravan rad programa.
Na primjer, ako instalirate 32-bitni program na 64-bitnu verziju sustava Windows i pokuša pisati u mapu C: Program Files, WoW64 ga pokazuje na C: Programske datoteke (x86). A, ako želi pristupiti mapi C: Windows System32, WoW64 pokazuje na C: Windows SysWOW64. Windows to čini pomoću preusmjerivača datotečnog sustava.
Sve se to događa automatski i transparentno u pozadini. Program ne mora ni znati da se pokreće na 64-bitnom operativnom sustavu, što starijim 32-bitnim programima omogućuje pokretanje bez izmjena na 64-bitnim verzijama sustava Windows. WOW64 također preusmjerava pristup registru, osiguravajući da postoje zasebna 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 vrijedno milijun dolara: Zašto je mapa "System32" 64-bitna i SysWOW64 32-bitna?
Čini se da je odgovor na to da su mnoge 32-bitne aplikacije bile čvrsto kodirane za korištenje direktorija C: Windows System32. Kada programeri rekompajliraju te aplikacije za 64-bitne verzije sustava Windows, nastavile 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 ostavio “System32” kao standardni direktorij sistemskih knjižnica. Stvorili su novi direktorij knjižnica za aplikacije koje se pokreću pod slojem WoW64, koji su nazvali "SysWOW64". Kada razmišljate o tome na ovaj način, ime ima više smisla.
Da, malo je smiješno da je direktorij s imenom "32" sada 64-bitni. Možda bi Microsoft to trebao vidjeti kada su ga nazvali C: Windows System 90 u 90-ima. No, iako bi jednostavnija shema imenovanja bila lijepa, nije vrijedno razbiti hrpu programa i stvoriti više posla za programere samo da bi tamo stigli. To znači da smo u doglednoj budućnosti zaglavljeni sa System32 i SysWOW64.