У чому різниця між папками «System32» і «SysWOW64» у Windows?
У 64-розрядних версіях Windows у вас є дві окремі папки Program Files. Але це не закінчується. Ви також маєте дві окремі системні каталоги, де зберігаються бібліотеки 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-розрядне програмне забезпечення на дві різні папки програмних файлів, Windows гарантує, що вони не будуть змішуватися та викликають проблеми.
Проте не всі файли DLL зберігаються в програмних файлах. Багато системних бібліотек, що входять до складу Windows, зберігаються в C: System32, і деякі програми також скидають власні файли бібліотек. Таким чином, так само, як Windows має окремі 32-розрядні та 64-розрядні папки Program Files, вона також має окремі 32-бітні та 64-розрядні версії папки System32.
System32 і SysWOW64
На 32-розрядному комп'ютері всі 32-розрядні програми зберігають свої файли в C: Program Files, а загальносистемне місце бібліотеки - C: \ t.
На 64-розрядному комп'ютері 64-розрядні програми зберігають свої файли у папці C: Програмні файли та загальносистемні C: Папка Windows 32 містить 64-розрядні бібліотеки. 32-розрядні програми зберігають свої файли у папці C: Program Files (x86), а загальносистемна папка - C: \ t.
Це, безумовно, непросто. Незважаючи на “32” в назві, папка System32 містить 64-розрядні бібліотеки. І, незважаючи на 64 в назві, папка SysWOW64 містить 32-розрядні бібліотеки - принаймні на 64-розрядних версіях Windows.
Загалом, вам не потрібно це знати. Операційна система Windows і програми, які ви використовуєте, автоматично розміщують свої файли у потрібному місці та використовують правильну папку. Однак, якщо вам коли-небудь знадобиться вручну встановити DLL-файл у потрібному місці або знайти там, де він встановлений, що дуже рідко, ви повинні знати, який саме.
WOW64, пояснюється
Частина назви "WOW64" тут відноситься до Microsoft "Windows 32-біт на Windows 64-bit" програмне забезпечення, яке є частиною операційної системи. Це дозволяє 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-бітна, а 32-бітна SysWOW64?
Відповідь, здається, що багато 32-розрядних додатків були закодовані для використання каталогу C: Windows System32. Коли розробники перекомпілювали ці програми для 64-бітних версій Windows, вони продовжували використовувати каталог C: Windows System32.
Замість того, щоб перейменовувати каталог і змушувати розробників переходити на новий, порушуючи багато процесів у цьому процесі, Microsoft залишила «System32» як стандартний каталог системної бібліотеки. Вони створили новий каталог бібліотеки для додатків, що працюють під шаром WoW64, який вони назвали "SysWOW64". Коли ви думаєте про це таким чином, ім'я має більше сенсу.
Так, це трохи нерозумно, що тепер у каталозі з "32" в назві є 64-біт. Можливо, Microsoft повинна була бачити, що приходить, коли вони назвали його C: Windows System32 в 90-х. Але, хоча й більш проста схема іменування була б непогана, це не варто порушувати купу програм і створювати більше роботи для розробників тільки, щоб потрапити туди. Це означає, що ми зупинимося на System32 і SysWOW64 у найближчому майбутньому.