Pagina principala » HOWTO » Care este diferența dintre dosarele System32 și SysWOW64 în Windows?

    Care este diferența dintre dosarele System32 și SysWOW64 în Windows?

    În versiunile pe 64 de biți de Windows, aveți două foldere separate de fișiere program. Dar nu se termină acolo. Aveți, de asemenea, două directoare de sistem separate, în care sunt stocate biblioteci DLL și fișiere executabile: System32 și SysWOW64. În ciuda numelor, System32 este plină de fișiere pe 64 de biți și SysWOW64 este plină de fișiere pe 32 de biți. Deci, ce dă?

    Ce este sistemul32?

    Directorul System32 conține fișiere de sistem Windows, ambele fișiere bibliotecă DLL utilizate de programe și utilitare de program .EXE care fac parte din Windows. În timp ce majoritatea fișierelor pe care le găsiți aici fac parte din sistemul de operare Windows, programele software terță parte instalează uneori propriile fișiere DLL în acest folder.

    Aplicațiile care rulează pe sistemul dvs. pot fi instalate în folderul Program Files sau în altă parte, însă acestea încarcă adesea biblioteci de sistem din folderul System32.

    Separarea bibliotecilor pe 32 și 64 de biți

    Pe o versiune pe 64 de biți a Windows, aveți un folder C: \ Program Files care conține programe pe 64 de biți și fișierele acestora și un folder C: \ Program Files (x86) care conține programe pe 32 de biți și fișierele acestora. Este util ca aceste fișiere să fie separate deoarece programele pe 64 de biți necesită fișiere DLL pe 64 de biți și programele pe 32 de biți necesită fișiere DLL pe 32 de biți.

    Dacă un program pe 32 de biți merge să încarce un fișier DLL de care are nevoie, găsește o versiune pe 64 de biți și încearcă să o încarce, se va prăbuși. Prin separarea software-ului pe 64 de biți și pe 32 de biți în două dosare diferite de programe, Windows se asigură că nu se vor amesteca și nu vor cauza probleme.

    Cu toate acestea, nu toate fișierele DLL sunt stocate în fișierele program. Multe biblioteci de sistem, incluse în Windows, sunt stocate în C: \ System32, iar unele programe deasemenea stochează propriile fișiere de bibliotecă aici. Deci, la fel cum Windows are foldere separate de 32-bit și 64-bit de fișiere program, are de asemenea versiuni separate 32-bit și 64-bit ale folderului System32.

    System32 și SysWOW64

    Pe un computer pe 32 de biți, toate programele pe 32 de biți își stochează fișierele în C: \ Program Files, iar locația de bibliotecă la nivel de sistem este C: \ System32.

    Pe un computer pe 64 de biți, programele pe 64 de biți stochează fișierele în C: \ Program Files, iar folderul C: \ Windows \ System32 la nivel de sistem conține biblioteci pe 64 de biți. Programele pe 32 de biți stochează fișierele în C: \ Program Files (x86) și folderul la nivel de sistem este C: \ Windows \ SysWOW64.

    Acest lucru este cu siguranță contraintuitiv. În ciuda "32" în nume, folderul System32 conține biblioteci pe 64 de biți. Și, în ciuda numelui 64 din nume, dosarul SysWOW64 conține biblioteci pe 32 de biți - cel puțin pe versiunile pe 64 de biți ale Windows.

    În general, nu va trebui să știți acest lucru. Sistemul de operare Windows și programele pe care le utilizați își plasează automat fișierele în locația corectă și utilizează dosarul corect. Cu toate acestea, dacă vreodată trebuie să instalați manual un fișier DLL în locația corectă sau să aflați unde este instalat - ceea ce este foarte rar - va trebui să știți care este.

    WOW64, Explained

    Partea "WOW64" a numelui se referă aici la software-ul "Windows 32-bit pe Windows 64-bit" al Microsoft, care face parte din sistemul de operare. Acest lucru permite Windows să ruleze programe pe 32 de biți pe o versiune pe 64 de biți a Windows. WoW64 redirecționează accesul la fișiere pentru a asigura că programele vor funcționa corect.

    De exemplu, dacă instalați un program pe 32 de biți pe o versiune pe 64 de biți a Windows și încearcă să scrie în dosarul C: \ Program Files, WoW64 o indică la C: \ Program Files (x86). Și dacă dorește să acceseze folderul C: \ Windows \ System32, WoW64 o indică la C: \ Windows \ SysWOW64. Windows face acest lucru folosind un redirector de sistem de fișiere.

    Toate acestea se întâmplă automat și transparent în fundal. Programul nu trebuie să știe că rulează pe un sistem de operare pe 64 de biți, ceea ce permite programelor mai vechi pe 32 de biți să ruleze fără modificări pe versiunile pe 64 de biți ale Windows. De asemenea, WOW64 redirecționează accesul la registri, asigurând existența unor zone separate ale regiștrilor pentru programele pe 64 de biți și 32 de biți.

    Deci, de ce este System32 64-bit și SysWOW64 pe 32 de biți?

    Tot ceea ce ne aduce înapoi la întrebarea de un milion de dolari: De ce este folderul "System32" pe 64 de biți și SysWOW64 pe 32 de biți?

    Răspunsul pare a fi că multe aplicații pe 32 de biți au fost codate ca fiind hard pentru a utiliza directorul C: \ Windows \ System32. Când dezvoltatorii recompila aceste aplicații pentru versiunile pe 64 de biți ale Windows, au continuat să utilizeze directorul C: \ Windows \ System32.

    Mai degrabă decât redenumirea directorului și forțarea dezvoltatorilor să se mute la cea nouă, rupând multe aplicații în proces, Microsoft a lăsat "System32" ca director de bibliotecă sistem standard. Au creat un nou director de bibliotecă pentru aplicațiile care rulează sub stratul WoW64, numite "SysWOW64". Când te gândești la asta în felul acesta, numele are mai mult sens.

    Da, este un pic prostie că un director cu "32" în nume este acum 64 de biți. Poate că Microsoft ar fi trebuit să vadă că vine în momentul în care au numit-o C: \ Windows \ System32 în anii '90. Dar, deși o schemă de denumire mai simplă ar fi drăguță, nu merită să rupeți o grămadă de programe și să creați mai multă muncă pentru dezvoltatori doar pentru a ajunge acolo. Asta înseamnă că suntem blocați cu System32 și SysWOW64 pentru viitorul previzibil.