Каква е разликата между папките „System32“ и „SysWOW64“ в Windows?
В 64-битовите версии на Windows имате две отделни папки за програмни файлове. Но това не свършва дотук. Също така имате две отделни системни директории, в които се съхраняват DLL библиотеки и изпълними файлове: System32 и SysWOW64. Въпреки имената, System32 е пълен с 64-битови файлове, а SysWOW64 е пълен с 32-битови файлове. И така, какво дава?
Какво е System32?
Директорията System32 съдържа системни файлове на Windows, както .DLL библиотечни файлове, използвани от програми и .EXE програмни програми, които са част от Windows. Докато повечето от файловете, които намирате тук, са част от операционната система Windows, софтуерните програми на трети страни понякога инсталират свои DLL файлове и в тази папка,.
Приложенията, които се изпълняват във вашата система, може да са инсталирани във вашата папка Program Files или на друго място, но често зареждат системни библиотеки от папката 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-битовия софтуер на две различни папки Program Files, Windows гарантира, че няма да се смесват и причиняват проблеми.
Не всички DLL файлове обаче се съхраняват в програмните файлове. Много системни библиотеки, включени в Windows, се съхраняват в C: System32, а някои програми също изхвърлят собствените си библиотечни файлове тук. Така че, точно както Windows има отделни 32-битови и 64-битови папки с програмни файлове, тя също има отделни 32-битови и 64-битови версии на папката System32..
System32 и SysWOW64
На 32-битов компютър всички 32-битови програми съхраняват своите файлове в C: Program Files, а мястото за цялата библиотека на системата е C: \ t.
На 64-битова машина 64-битовите програми съхраняват файловете си в C: Program Files и в цялата система C: Папка Windows 32 съдържа 64-битови библиотеки. 32-битовите програми съхраняват файловете си в C: Program Files (x86), а системната папка е C: Windows SysWOW64 \ t.
Това определено е нелогично. Въпреки “32” в името, папката System32 съдържа 64-битови библиотеки. И въпреки 64-те в името, папката SysWOW64 съдържа 32-битови библиотеки - поне на 64-битови версии на Windows.
Като цяло, няма да е необходимо да знаете това. Операционната система Windows и програмите, които използвате, автоматично поставят файловете си на правилното място и използват правилната папка. Въпреки това, ако някога трябва да инсталирате ръчно DLL файл в правилното място или да намерите къде е инсталиран, което е много рядко, трябва да знаете коя е.
WOW64, обяснено
Част от името "WOW64" тук се отнася за "Windows 32-битовия 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.