System32 与 SysWOW64:Windows 中的差异和功能

System32 和 SysWOW64 分别管理必要的 64 位和 32 位文件 Windows 64位。

WOW64 允许在现代系统上完全兼容传统的 32 位软件。

正确的文件夹组织和注册是避免错误和确保系统稳定性的关键。

当我们探索 Windows 操作系统的内部工作原理时,我们会遇到一些目录,虽然大多数用户并不熟悉,但它们对于系统的正常运行至关重要。其中最有趣,也可能最令人困惑的是 System32 y SysWOW64如果您曾经想知道每个函数的作用是什么或者为什么会有两个函数,那么本文将解答您的所有疑问并消除错误的误解。

尽管许多人认为这些目录是计算机科学家的专属领域, 了解它们的区别有助于您理解 Windows 如何处理 32 位和 64 位架构之间的兼容性。. 它甚至可以帮助解决旧程序的问题、优化安装,或者只是克服对“找不到文件”消息的恐惧。.

一点背景:为什么存在 System32 和 SysWOW64?

直到不久前,市场上的大多数计算机都仅在以下架构下运行 32 bits,都在 硬件 作为操作系统。随着计算技术的进步和民主化,系统 64位 已经成为标准,尤其是随着 Windows 7、Windows 10 以及最近 Windows 11,甚至不再有 32 位版本。

从 32 位到 64 位的飞跃带来了新的文件夹和兼容机制的出现。Windows 需要能够同时运行旧的 32 位程序和新的 64 位程序,但它必须避免混合两种架构的文件,因为它们可能会导致致命错误。

这就是为什么每个 64 位 Windows 除了经典的 程序文件、其他文件夹,例如 程序文件(x86), System32 y SysWOW64,每个都有非常具体的功能。

System32:历史系统目录

名称 System32 这可能会产生误导,因为 en 操作系统 64 位是实际包含 64 位文件和库(DLL、EXE 等)的文件夹。它位于典型路线上 C:\ WINDOWS \ System32. 它包含了Windows本身运行所需要的文件,以及许多已安装程序所使用的关键库。

System32 中的大多数文件对于操作系统来说都是至关重要的。,尽管如果某些第三方程序对于计算机的所有用户都至关重要或者需要与系统深度集成,它们可能会在此处添加自己的 DLL。

如何在 Windows 中找出 .exe 文件所依赖的 DLL 和 OCX有趣的是,目录 System32 保留这个名称是为了简单起见,并保持历史兼容性。多年来,许多程序在其源代码中都直接指向该文件夹。更改名称会导致数千个应用程序崩溃,因此微软选择保留它,即使它开始在那里存储 64 位文件。

SysWOW64:兼容较旧的 32 位程序

该文件夹 SysWOW64 它实际上是在 32 位系统上存储 64 位文件的。它的名字来源于 WOW64(Windows 32 位上的 Windows 64 位),一项允许 32 位应用程序在现代 64 位系统上运行的技术。

主要功能 SysWOW64 它充当旧程序和新操作环境之间的一种兼容层或“翻译器”。当您运行 32 位程序时,系统会自动将其重定向到此文件夹以加载适当的库,从而防止其尝试使用不兼容的 64 位库。

听起来可能很奇怪 在 64 位 Windows 上,System32 保存 64 位 DLL,而 SysWOW64 保存 32 位 DLL。从兼容性的角度来看,这种看似矛盾的组织方式却非常合理: 保留程序已经习惯的路线和行为, 减少开发人员的错误和昂贵的迁移.

在 32 位 Windows 中会发生什么?

在 32 位系统上,仅存在文件夹 System32 所有程序(包括系统程序和第三方程序)都将其密钥文件存储在那里。 SysWOW64 文件夹根本不存在。,因为不需要兼容桥:整个系统及其应用程序共享相同的架构。

在这些系统上,程序的路径通常是“C:\Program Files”(或其英文对应路径)SysWOW64 和 Program Files (x86) 均未出现,因为不支持 64 位程序。

程序文件夹:Program Files 和 Program Files (x86)

该结构也重复于 64 位 Windows 中安装程序的文件夹:

程序文件: 适用于 64 位程序。

程序文件(x86): 适用于 32 位程序。

因此, 安装和资源访问保持分开,以便程序只使用与其架构兼容的文件。如果您安装了某个程序但它无法正常运行,则可能是因为您将文件放在了错误的文件夹中,尤其是当软件较旧或安装程序设计不佳时。

如何防止搭载英特尔 Iris Xe Graphics 的笔记本电脑过热Windows 本身和大多数最新安装程序都会检测应用程序是 32 位还是 64 位,并自动选择正确的文件夹。但是, 建议用户不要手动更改这些目录,除非他们具有高级知识。.

为什么 System32 没有重命名为 System64?

正如我们所指出的,保留名称 System32 即使在 64 位系统上,这也存在兼容性问题。 许多开发商 已对其应用程序进行编程,使其始终在“C:\Windows\System32”中查找系统文件(DLL、EXE)。

如果微软更改了名称,数百万个程序将停止运行或需要进行重大更新。因此,为了确保顺利过渡到 64 位,并避免给用户和开发者带来麻烦,我们决定保留相同的名称,并创建一个专门用于兼容层的新文件夹 (SysWOW64)。

从技术层面上讲,当 32 位程序在 64 位 Windows 上运行时,操作系统会使用 WOW64 子系统自动将对 System32 的任何访问重定向到 SysWOW64 文件夹,对用户和软件本身来说都是完全透明的。

System32 和 SysWOW64 的内部工作原理

操作系统需要完美区分哪些文件是 32 位,哪些是 64 位,以防止出现错误。如果 32 位程序尝试从 System32,结果将立即失败。因此,Windows 本身和现代程序都使用环境变量和动态路径来始终加载正确的库。

该机制依赖于所谓的“文件系统重定向器”,它充当中介,将每个程序定向到相应的文件夹。例如,如果一个 32 位应用程序尝试通过代码访问“C:\Windows\System32”,Windows 实际上会将其定向到“C:\Windows\SysWOW64”。 因此,无需重写软件即可确保兼容性。.

此逻辑也影响 Windows 注册表。32 位和 64 位程序的密钥存储在不同的路径中,以保持分离并避免冲突。

64 位和 32 位 Windows 中的关键路径

总结一下,这些是 64 位系统上的主要文件夹及其功能:

C:\Windows\System32: 64 位库和可执行文件。

C:\Windows\SysWOW64: 32 位库和可执行文件。

C:\Program Files: 64 位程序。

C:\Program Files (x86): 32 位程序。

如何知道您的电脑上安装的是哪个版本的 Windows在 32 位系统上,您仅拥有:

C:\Windows\System32: 一切(32 位系统和程序)。

C:\Program Files: 32 位程序。

模拟器和兼容性:WOW64 子系统的作用

组件 WOW64 它对于确保旧版应用程序在现代计算机上正常运行至关重要。它充当操作系统和 32 位程序之间的额外保护层,使它们误以为处于完全兼容的环境中。这使得用户即使在最先进的系统上也能继续使用重要的旧版软件。

除了管理库加载和文件寻址之外,WOW64 还将访问重定向到 Windows 注册表,确保 32 位程序不会干扰 64 位程序,反之亦然。

相关文章:如何在 Windows 中恢复文档和下载文件夹

如果将程序安装在错误的文件夹中会发生什么情况?

在大多数情况下,尽管安装在错误的文件夹中,程序仍会继续运行,但当软件尝试定位特定资源(尤其是其运行所需的 DLL)时可能会出现问题。

尽可能在“Program Files”中安装 64 位程序,在“Program Files (x32)”中安装 86 位程序。如果您不确定您拥有哪个版本,最简单的方法是让安装程序决定或查阅程序自己的文档。

目录对于开发人员和管理员的重要性

对于任何开发 Windows 软件或管理系统的人来说,了解 System32 和 SysWOW64 的区别和功能 这很关键。 正确的管理保证更高的稳定性和兼容性 系统并减少与依赖关系和错误路径相关的错误。

滥用这些目录可能会导致各种问题,从错误消息到严重的系统崩溃或程序兼容性问题。此外,请记住 Windows 注册表中的差异,例如:

对于 32 位程序: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

对于 64 位程序: HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows \ CurrentVersion \卸载

艾萨克对字节世界和一般技术充满热情的作家。我喜欢通过写作分享我的知识,这就是我在这个博客中要做的,向您展示有关小工具、软件、硬件、技术趋势等的所有最有趣的事情。我的目标是帮助您以简单而有趣的方式畅游数字世界。