Mitä eroa on System32 - ja SysWOW64 -kansioissa Windowsissa?
64-bittisissä Windows-versioissa on kaksi erillistä ohjelmatiedostojen kansiota. Mutta se ei pääty tähän. Sinulla on myös kaksi erillistä järjestelmähakemistoa, joissa tallennetaan DLL-kirjastot ja suoritettavat tiedostot: System32 ja SysWOW64. Nimistä huolimatta System32 on täynnä 64-bittisiä tiedostoja ja SysWOW64 on täynnä 32-bittisiä tiedostoja. Joten mitä antaa?
Mikä on System32?
System32-hakemisto sisältää Windows-järjestelmätiedostot, sekä .DLL-kirjastotiedostot, joita ohjelmat käyttävät, että .EXE-ohjelman apuohjelmat, jotka ovat osa Windowsia. Vaikka suurin osa täältä löytyvistä tiedostoista on osa Windows-käyttöjärjestelmää, kolmannen osapuolen ohjelmistot asentavat joskus myös omia DLL-tiedostojaan tähän kansioon.
Järjestelmässä toimivat sovellukset voidaan asentaa Ohjelmatiedostot-kansioon tai muualle, mutta ne lataavat usein koko järjestelmän kirjastoja System32-kansiosta.
Erotetaan 32-bittiset ja 64-bittiset kirjastot
64-bittisessä Windows-versiossa on C: Files-kansio, joka sisältää 64-bittisiä ohjelmia ja niiden tiedostoja, ja C: Tiedostojen (x86) kansio, joka sisältää 32-bittisiä ohjelmia ja niiden tiedostoja. On hyödyllistä, että nämä tiedostot erotetaan, koska 64-bittiset ohjelmat tarvitsevat 64-bittisiä DLL-tiedostoja, ja 32-bittiset ohjelmat tarvitsevat 32-bittisiä DLL-tiedostoja.
Jos 32-bittinen ohjelma menee tarvitsemansa DLL-tiedoston lataamiseen, etsii 64-bittisen version ja yrittää ladata sen, se kaatuu. Erottamalla 64-bittiset ja 32-bittiset ohjelmat kahteen eri ohjelmatiedostojen kansioon, Windows varmistaa, että ne eivät sekoittu ja aiheuttavat ongelmia.
Kaikki DLL-tiedostot eivät kuitenkaan tallenneta Ohjelmatiedostoihin. Monet Windows-järjestelmään kuuluvat kirjastot tallennetaan C: System32: een, ja jotkin ohjelmat kaatavat myös omia kirjastotiedostojaan. Joten aivan kuten Windowsissa on erilliset 32-bittiset ja 64-bittiset ohjelmatiedostojen kansiot, siinä on myös erilliset 32-bittiset ja 64-bittiset versiot System32-kansiosta.
System32 ja SysWOW64
32-bittisessä tietokoneessa kaikki 32-bittiset ohjelmat tallentavat tiedostojaan C: Tiedostot, ja koko järjestelmän kirjaston sijainti on C: System32.
64-bittisessä tietokoneessa 64-bittiset ohjelmat tallentavat tiedostojaan C: Tiedostot, ja koko järjestelmä: Windows System32-kansio sisältää 64-bittisiä kirjastoja. 32-bittiset ohjelmat tallentavat tiedostojaan C: Tiedostot (x86), ja koko järjestelmän kansio on C: Windows SysWOW64.
Tämä on varmasti vastakohtainen. Vaikka nimessä on 32, System32-kansio sisältää 64-bittisiä kirjastoja. Ja huolimatta 64-nimisestä nimestä, SysWOW64-kansio sisältää 32-bittisiä kirjastoja, ainakin 64-bittisissä Windows-versioissa.
Yleensä sinun ei tarvitse tietää tätä. Windows-käyttöjärjestelmä ja käyttämäsi ohjelmat asettavat tiedostot automaattisesti oikeaan paikkaan ja käyttävät oikeaa kansiota. Jos kuitenkin sinun täytyy koskaan asentaa DLL-tiedosto manuaalisesti oikeaan paikkaan tai löytää se, missä se on asennettu - mikä on hyvin harvinaista, sinun on tiedettävä, mikä on mikä.
WOW64, selitetty
Nimen WOW64-osa viittaa Microsoftin Windows 32-bittiseen Windows 64-bittiseen ohjelmistoon, joka on osa käyttöjärjestelmää. Näin Windows voi ajaa 32-bittisiä ohjelmia Windows 64-bittisessä versiossa. WoW64 ohjaa tiedoston käyttöoikeudet varmistaakseen, että ohjelmat toimivat oikein.
Jos esimerkiksi asennat 32-bittisen ohjelman 64-bittiseen Windows-versioon ja yritetään kirjoittaa C: Files-kansioon, WoW64 osoittaa sen C: Tiedostoihin (x86). Ja jos se haluaa käyttää C: Windows System32 -kansiota, WoW64 osoittaa sen osoitteeseen C: Windows SysWOW64. Windows tekee tämän käyttämällä tiedostojärjestelmän uudelleenohjainta.
Kaikki tapahtuu automaattisesti ja läpinäkyvästi taustalla. Ohjelman ei tarvitse edes tietää, että se toimii 64-bittisessä käyttöjärjestelmässä, joka mahdollistaa vanhempien 32-bittisten ohjelmien suorittamisen ilman muutoksia 64-bittisissä Windows-versioissa. WOW64 ohjaa myös rekisterin käyttöoikeuden varmistamalla, että rekisterissä on erilliset alueet 64-bittisille ja 32-bittisille ohjelmille.
Joten miksi System32 64-bittinen ja SysWOW64 32-bittinen?
Kaikki, joka tuo meidät takaisin miljoonan dollarin kysymykseen: Miksi "System32" -kansio on 64-bittinen ja SysWOW64 32-bittinen?
Vastaus näyttää siltä, että monet 32-bittiset sovellukset koodattiin käyttämään C: Windows System32-hakemistoa. Kun kehittäjät käänsivät nämä sovellukset Windowsin 64-bittisille versioille, ne käyttivät edelleen C: Windows-järjestelmän32-hakemistoa.
Sen sijaan, että nimitettäisiin hakemistoa uudelleen ja pakotettaisiin kehittäjiä siirtymään uuteen, rikkomatta monta sovellusta prosessissa, Microsoft jätti System32: n standardijärjestelmäkirjastoon. He loivat uuden kirjaston hakemiston WoW64-kerroksen alla oleville sovelluksille, joita he nimesivät nimellä "SysWOW64". Kun ajattelet sitä tällä tavalla, nimi on järkevämpää.
Kyllä, on vähän typerää, että nimi, jonka nimessä on ”32”, on nyt 64-bittinen. Ehkä Microsoftin olisi pitänyt nähdä, että se tuli, kun he nimesivät sitä C: Windows System32 90-luvulla. Mutta vaikka yksinkertaisempi nimeämisjärjestely olisi mukava, ei ole syytä rikkoa joukko ohjelmia ja luoda enemmän töitä kehittäjille juuri sinne. Tämä tarkoittaa, että olemme juuttuneet System32: n ja SysWOW64: n kanssa lähitulevaisuudessa.