Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

什麼是 SysWOW64 資料夾?64 位元 Windows 如何執行 32 位元程式的深度解析

編輯:Win7 系統基礎知識

64 位元 Windows 的 C:\Windows 下同時存在 System32 與 SysWOW64 兩個系統資料夾,名稱極易誤導。本文從 CPU 架構歷史、WoW64 技術原理、檔案重導向機制、相容性設計哲學,深度解析為何「32 位元檔案放在 System32、64 位元檔案放在 SysWOW64」是錯的,真相完全相反。

歷史背景:AMD64 vs IA-64

  • AMD 推 x86-64(後稱 AMD64),硬體級相容 32 位元指令集,64 位元模式下可直接執行 32 位元程式。
  • Intel 推 IA-64(Itanium),全新指令集,無原生 32 位元相容,需軟體模擬效能極差,市場失敗。
  • Intel 後跟進 AMD64(稱 Intel 64),AMD64 成為主流 64 位元架構。

WoW64:Windows 32-bit on Windows 64-bit

微軟在 64 位元 Windows 實作 WoW64 子系統,讓 32 位元程式「以為」自己運行在 32 位元系統上:

  • 檔案系統重導向:32 位元程式存取 C:\Windows\System32 → 自動重導向至 C:\Windows\SysWOW64。
  • 登冊重導向:HKLM\Software → HKLM\Software\Wow6432Node。
  • 環境變數、系統呼叫參數轉換等。

真相:誰在哪?

資料夾實際內容名稱誤導原因
System3264 位元系統檔案為相容大量硬編碼 System32 路徑的 32 位元舊程式,重編譯為 64 位元時無需改路徑。
SysWOW6432 位元系統檔案WoW64 環境所需 32 位元系統檔案存放地,「Wow64」= Windows 32-bit on Windows 64-bit。

為何不建 System64 + System32?

  • 若 64 位元程式存取 System32 需重導向,每次檔案開啟額外判斷分支,損效能。
  • 犧牲 32 位元程式(需重導向),換取 64 位元程式(原生路徑)最高效能,符合 64 位元系統設計目標。

結論

SysWOW64 = 64 位元 Windows 存放 32 位元系統檔案的資料夾。 32 位元程式透過 WoW64 重導向機制透明存取,64 位元程式直接使用 System32,雙方互不干擾。

後記:版本號陷阱

Win7 內核版本 6.1(Vista 6.0),因太多程式只檢查主版本號是否為 5(XP/2003),非 5 即拒絕運行。微軟吸取教訓,Win8/8.1/10 內核版號分別為 6.2/6.3/10.0,但兼容性檢查邏輯已改為檢查完整版本資訊,避免重蹈覆轍。

Copyright © Windows教程網 All Rights Reserved