天天看点

Windows_01_Windows系统的中的32位和64位(System32和SysWOW64)

系列文章目录

文章目录

  • ​​系列文章目录​​
  • ​​前言​​
  • ​​System32和SysWOW64​​
  • ​​Program Files和Program Files(x86)​​
  • ​​总结​​

前言

现在的计算机系统都是64位了,如下:

Windows_01_Windows系统的中的32位和64位(System32和SysWOW64)

System32和SysWOW64

对于64位的操作系统,打开 C:\Windows 目录,有两个文件夹 System32 和 SysWOW64,如下:

Windows_01_Windows系统的中的32位和64位(System32和SysWOW64)

System32中全部都是64位的程序的dll,而SysWOW64中全部都是32位的程序的dll。

为什么System32中全部都是64位的程序的dll?

很早的时候,还没有64位的时候,32的程序都安装在System32这个文件夹下,这没有问题,但是内核中的路径都是写死了System32这个路径,而64位的windows操作系统是直接在32位windows操作系统下移植的,由于修改内核代码风险极大,就沿用了System32的文件名。

所以,当我们在64位的windows操作系统上安装64位的程序的时候,就安装到了System32这个目录下。

为什么SysWOW64中全部都是32位的程序的dll?

SysWOW64 的全称是 System Windows on Windows 64 (其中的大写的 WOW 是 Windows on Windows 的简写),SysWOW64 这个目录在 32 位windows操作系统上是没有的,只有在 64位 windows 操作系统上才有,而且这个目录名的含义是 windows 上的 windows,这个目录存在的意义本来就是为了兼容32位程序的。就是说,新发布了64位的windows操作系统,需要在这个操作系统上,既能安装32位的程序,也能安装64的程序,所以在新发布的64位的windows操作系统上,留了一个目录 SysWOW64 ,用来安装 32 位的程序。

小结:

对于32位的程序:

32位的程序,在32的windows操作系统上运行,调用的就是System32目录下的程序,可以理解;

32位的程序,在64位的windows操作系统上运行,会自动重定向到SysWOW64目录下,并且连同注册表都会遵循这个规则,哪怕你写死调用路径,系统都会给你强制重定向到SysWOW64中。

对于64的程序:

64位的程序,无法在32位的windows操作系统上运行,可以理解;

64位的程序,在64位的windows操作系统上运行,调用的是System32目录下的程序。

regedit.exe

Windows_01_Windows系统的中的32位和64位(System32和SysWOW64)
Windows_01_Windows系统的中的32位和64位(System32和SysWOW64)

Program Files和Program Files(x86)

总结

继续阅读