什么是“SysWOW64”以及它如何工作?
Windows 7 启动期间 SysWOW64 和 System32 是否都被使用/加载到 RAM 中?
答案1
执行摘要
System32
微软有时会做反了的事情,这是另一个例子。 64 位Windows 系统目录,SysWOW64
是32 位Windows 系统目录 — 与目录名称所暗示的完全相反。
细节
在 Windows 中,有一个“Windows”目录和一个“System”目录,自从 Windows 还是 16 位的时候起,情况一直如此。
Windows 程序应该使用系统 API 函数来定位它们,例如SHGetKnownFolderPath()
和GetSystemDirectory()
;如果每个人都这样做,世界现在就会完全不同。但太多人愚蠢地将目录的实际名称硬编码\Windows\System32
到他们的程序中,然后将这些程序从 32 位 Windows 移植到 64 位 Windows。结果,很多程序都在寻找64 位目录中的可执行文件和库\Windows\System32
,其名称是固定的。(讽刺的是,从 16 位 Windows 迁移到 32 位 Windows 时也存在同样的问题。 16 位“系统”目录\Windows\System
通常。
因此微软选择制作\Windows\System32
目录本国的64 位 Windows 程序会找到 64 位可执行文件和库,并且32 位程序在垫片层上运行反正在 64 位 Windows 中,32位程序对“系统”目录的访问被重定向到新\Windows\SysWOW64
目录。
因此才出现了现在的奇怪局面。
答案2
WoW64代表 Windows 64 上的 Windows 32:
WoW64(Windows 32 位和 Windows 64 位)是 Windows 操作系统的一个子系统,能够运行 32 位应用程序,包含在所有 64 位版本的 Windows 中 - 包括 Windows 2000 限制版、Windows XP 专业版 x64 版、IA-64 和 x64 版本的 Windows Server 2003,以及 64 位版本的 Windows Vista、Windows Server 2008 和 Windows 7。
答案3
它表示 Windows x64 上的 System Windows(x32)。它包含所有 x32 系统文件以实现兼容性。它可运行,因此 32 位应用程序可以运行。