Kakšna je razlika med mapama “System32” in “SysWOW64” v sistemu Windows?

V 64-bitnih različicah sistema Windows imate dve ločeni mapi Programske datoteke. A tu se še ne konča. Imate tudi dva ločena sistemska imenika, v katerih so shranjene knjižnice DLL in izvršljive datoteke: System32 in SysWOW64. Kljub imenom je System32 poln 64-bitnih datotek, SysWOW64 pa 32-bitnih datotek. Torej, kaj daje?

Kaj je System32?

POVEZANE: Kaj so datoteke DLL in zakaj v računalniku manjka ena?

Imenik System32 vsebuje sistemske datoteke Windows, tako datoteke knjižnice .DLL, ki jih uporabljajo programi, kot tudi programske pripomočke .EXE, ki so del sistema Windows. Medtem ko je večina datotek, ki jih najdete tukaj, del operacijskega sistema Windows, programi drugih proizvajalcev včasih v to mapo namestijo tudi svoje datoteke DLL.

Aplikacije, ki se izvajajo v vašem sistemu, so lahko nameščene v mapi Programske datoteke ali drugje, vendar pogosto naložijo sistemske knjižnice iz mape System32.

Ločevanje 32-bitnih in 64-bitnih knjižnic

POVEZANE: Kakšna je razlika med mapama »Programske datoteke (x86)« in »Programske datoteke« v sistemu Windows?

V 64-bitni različici sistema Windows imate mapo C: \ Program Files, ki vsebuje 64-bitne programe in njihove datoteke, in mapo C: \ Program Files (x86), ki vsebuje 32-bitne programe in njihove datoteke. Te datoteke je koristno ločiti, ker 64-bitni programi potrebujejo 64-bitne datoteke DLL, 32-bitni programi pa 32-bitne datoteke DLL.

Če 32-bitni program naloži datoteko DLL, ki jo potrebuje, poišče 64-bitno različico in jo poskuša naložiti, se bo zrušil. Z ločitvijo 64-bitne in 32-bitne programske opreme v dve različni mapi Programske datoteke Windows zagotavlja, da se ne bodo pomešali in povzročili težav.

Vse datoteke DLL pa niso shranjene v programskih datotekah. Številne sistemske knjižnice, ki so vključene v sistem Windows, so shranjene v C: \ System32, nekateri programi pa tu tudi izbrišejo lastne knjižnične datoteke. Tako kot ima Windows ločeni 32-bitni in 64-bitni mapi Programske datoteke, ima tudi ločeno 32-bitno in 64-bitno različico mape System32.

System32 in SysWOW64

V 32-bitnem računalniku vsi 32-bitni programi shranjujejo svoje datoteke v C: \ Program Files, sistemsko mesto knjižnice pa je C: \ System32.

V 64-bitnem računalniku 64-bitni programi shranjujejo svoje datoteke v C: \ Program Files, sistemska mapa C: \ Windows \ System32 pa vsebuje 64-bitne knjižnice. 32-bitni programi shranjujejo svoje datoteke v C: \ Program Files (x86), sistemsko pa je C: \ Windows \ SysWOW64.

To je vsekakor nerazumljivo. Kljub "32" v imenu, mapa System32 vsebuje 64-bitne knjižnice. Kljub 64 v imenu mapa SysWOW64 vsebuje 32-bitne knjižnice - vsaj v 64-bitnih različicah sistema Windows.

Na splošno vam tega ne bo treba vedeti. Operacijski sistem Windows in programi, ki jih uporabljate, samodejno postavijo svoje datoteke na pravo mesto in uporabijo pravilno mapo. Če pa boste kdaj morali ročno namestiti datoteko DLL na pravilno mesto ali poiskati, kje je nameščena - kar je zelo redko - boste morali vedeti, katera je katera.

WOW64, razloženo

POVEZANE: Zakaj je večina programov še vedno 32-bitna v 64-bitni različici sistema Windows?

Del imena “WOW64” se tukaj nanaša na Microsoftovo programsko opremo “Windows 32-bit v sistemu Windows 64-bit”, ki je del operacijskega sistema. To Windowsu omogoča izvajanje 32-bitnih programov v 64-bitni različici sistema Windows. WoW64 preusmeri dostop do datotek, da zagotovi pravilno delovanje programov.

Če na primer v 64-bitno različico sistema Windows namestite 32-bitni program in poskuša zapisovati v mapo C: \ Program Files, WoW64 usmeri na C: \ Program Files (x86). Če želi dostopati do mape C: \ Windows \ System32, jo WoW64 usmeri na C: \ Windows \ SysWOW64. Windows to stori z uporabo preusmerjevalnika datotečnega sistema.

Vse to se v ozadju zgodi samodejno in pregledno. Programu sploh ni treba vedeti, da deluje v 64-bitnem operacijskem sistemu, ki starejšim 32-bitnim programom omogoča zagon brez sprememb v 64-bitnih različicah sistema Windows. WOW64 preusmerja tudi dostop do registra in zagotavlja ločena področja registra za 64-bitne in 32-bitne programe.

Zakaj je torej System32 64-bitni in SysWOW64 32-bitni?

Vse to nas pripelje nazaj do milijonskega vprašanja: Zakaj je mapa “System32” 64-bitna in SysWOW64 32-bitna?

Zdi se, da je odgovor na to, da so bile številne 32-bitne aplikacije trdo kodirane za uporabo imenika C: \ Windows \ System32. Ko so razvijalci znova prevedli te programe za 64-bitne različice sistema Windows, so še naprej uporabljali imenik C: \ Windows \ System32.

Namesto da bi preimenoval imenik in prisilil razvijalce, da se premaknejo na novega, pri tem pa je razbil veliko aplikacij, je Microsoft pustil “System32” kot standardni imenik sistemske knjižnice. Ustvarili so nov knjižnični imenik za programe, ki se izvajajo pod plastjo WoW64, ki so ga poimenovali “SysWOW64”. Ko tako razmišljate, je ime bolj smiselno.

Da, nekoliko neumno je, da je imenik z imenom 32 zdaj 64-bitni. Morda bi Microsoft to moral videti, ko so ga v 90-ih poimenovali C: \ Windows \ System32. Ampak, čeprav bi bilo bolj enostavno poimenovanje primerno, ni vredno razbiti veliko programov in ustvariti več dela za razvijalce, samo da pridejo tja. To pomeni, da smo v bližnji prihodnosti obtičali s sistemoma System32 in SysWOW64.