If-Koubou

Каква е разликата между папките "System32" и "SysWOW64" в Windows?

Каква е разликата между папките "System32" и "SysWOW64" в Windows? (Как да)

В 64-битовите версии на Windows имате две отделни папки Програмни файлове. Но това не свършва там. Имате също така две отделни системни директории, в които се съхраняват DLL библиотеки и изпълними файлове: System32 и SysWOW64. Въпреки имената, System32 е пълен с 64-битови файлове и SysWOW64 е пълен с 32-битови файлове. И така, какво дава?

Какво представлява System32?

Директорията System32 съдържа системни файлове на Windows, както .DLL файловете на библиотеките, използвани от програмите, така и програмните помощни програми .EXE, които са част от Windows. Въпреки че повечето от файловете, които намерите тук, са част от операционната система Windows, софтуерните програми на трети страни понякога инсталират свои собствени DLL файлове и в тази папка.

Приложенията, изпълнявани на вашата система, могат да бъдат инсталирани във вашата папка Програмни файлове или другаде, но те често зареждат цялата библиотека от папката System32.

Разделяне на 32-битови и 64-битови библиотеки

На 64-битова версия на Windows имате папка C: \ Program Files, съдържаща 64-битови програми и техните файлове и папка C: \ Program Files (x86), съдържаща 32-битови програми и техните файлове. Полезно е тези файлове да бъдат разделени, тъй като 64-битовите програми се нуждаят от 64-битови DLL файлове и 32-битовите програми се нуждаят от 32-битови DLL файлове.

Ако 32-битова програма отива да зареди DLL файл, който се нуждае от нея, намери 64-битова версия и се опита да я зареди, тя ще се срине. Чрез отделяне на 64-битов и 32-битов софтуер в две различни папки с програмни файлове, Windows гарантира, че няма да се смесват и да причиняват проблеми.

Въпреки това, не всички DLL файлове се съхраняват в програмните файлове. Много системни библиотеки, включени в Windows, се съхраняват в C: \ System32, а някои програми също се зареждат със собствени библиотечни файлове тук. Така че, точно както Windows има отделни 32-битови и 64-битови папки Програмни файлове, той също има отделни 32-битови и 64-битови версии на папката System32.

System32 и SysWOW64

На 32-битов компютър всички 32-битови програми съхраняват файловете си в C: \ Program Files, а разположението на цялата библиотека в системата е C: \ System32.

На 64-битов компютър 64-битовите програми съхраняват файловете си в C: \ Program Files, а цялата папка C: \ Windows \ System32 съдържа 64-битови библиотеки. 32-битовите програми съхраняват файловете си в C: \ Program Files (x86) и папката на цялата система е C: \ Windows \ SysWOW64.

Това определено е противопоставяне. Въпреки името "32" в папката System32 съдържа 64-битови библиотеки. И въпреки името 64, папката SysWOW64 съдържа 32-битови библиотеки - поне на 64-битови версии на Windows.

Като цяло, няма да е необходимо да знаете това. Операционната система Windows и програмите, които използвате автоматично, поставят файловете си на правилното място и използват правилната папка. Все пак, ако някога е необходимо ръчно да инсталирате DLL файл на правилното място или да намерите къде е инсталиран, което е много рядко, ще трябва да знаете кое е кое.

WOW64, обяснено

Частта "WOW64" на името тук се отнася до "Windows 32-bit на Windows 64-битов" на Microsoft, който е част от операционната система. Това позволява на Windows да изпълнява 32-битови програми на 64-битова версия на Windows. WoW64 пренасочва достъпа до файловете, за да гарантира, че програмите ще работят правилно.

Например, ако инсталирате 32-битова програма на 64-битова версия на Windows и се опитва да пише в папката C: \ Program Files, WoW64 я насочва към C: \ Program Files (x86). И ако иска достъп до папката C: \ Windows \ System32, WoW64 го насочва към C: \ Windows \ SysWOW64. Windows прави това чрез пренасочване на файловата система.

Всичко това се случва автоматично и прозрачно на фона. Програмата дори не трябва да знае, че работи на 64-битова операционна система, която позволява по-стари 32-битови програми да се изпълняват без промяна в 64-битовите версии на Windows. WOW64 също пренасочва достъпа до системния регистър, като гарантира, че има отделни части от регистъра за 64-битови и 32-битови програми.

Защо System32 64-битова и SysWOW64 32-битова?

Всичко това ни връща към въпроса за милиони долари: Защо папката "System32" 64-битова и SysWOW64 32-битова?

Отговорът изглежда е, че много 32-битови приложения бяха твърди, за да използват директорията C: \ Windows \ System32. Когато разработчиците прекомпилираха тези приложения за 64-битови версии на Windows, те продължиха да използват директорията C: \ Windows \ System32.

Вместо да преименува директорията и да принуждава разработчиците да се преместят в новата, разбивайки много приложения в процеса, Microsoft остави "System32" като стандартна библиотека за системни библиотеки. Те създадоха нова библиотечна директория за приложения, работещи под слоя WoW64, които те нарекоха "SysWOW64". Когато мислите за това по този начин, името има повече смисъл.

Да, малко е глупаво, че директорията с "32" в името вече е 64-битова. Може би Microsoft трябваше да види, че идва, когато я нарече C: \ Windows \ System32 през 90-те години. Но, въпреки че една по-ясна схема за именуване би била хубава, не си струва да се счупи куп програми и да се създаде повече работа за разработчиците, за да стигнат там. Това означава, че ние останахме със System32 и SysWOW64 в обозримо бъдеще.