If-Koubou

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

Care este diferența dintre dosarele "System32" și "SysWOW64" în Windows? (Cum să)

Pe versiunile pe 64 de biți de Windows, aveți două foldere separate de fișiere program. Dar nu se termină acolo. De asemenea, aveți două directoare de sistem separate, în care sunt stocate biblioteci și executabile DLL: 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 System32?

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 de la terțe părți instalează uneori propriile lor fișiere DLL și în acest folder.

Aplicațiile care rulează pe sistemul dvs. pot fi instalate în folderul Program Files sau în altă parte, dar ele î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, iar 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ă foldere diferite de programe, Windows asigură că acestea nu se vor amesteca și nu vor cauza probleme.

Cu toate acestea, nu toate fișierele DLL sunt stocate în Fișierele programului. Multe biblioteci de sistem incluse în Windows sunt stocate în C: \ System32, iar unele programe le aruncă și aici fișierele de bibliotecă proprii. Deci, la fel cum Windows are separate foldere separate de fișiere de programe pe 32 de biți și 64 de biți, el are, de asemenea, versiuni separate pe 32 de biți și pe 64 de biți 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 bibliotecii 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 care.

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. Aceasta 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 folderul C: \ Program Files, WoW64 îl 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 pe 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 hardcoded pentru a utiliza directorul C: \ Windows \ System32. Când dezvoltatorii recompilau 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ă treacă 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, pe care le numea "SysWOW64". Când te gândești la asta în acest fel, 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 numire 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.