Windows_01_Windows系统的中的32位和64位(System32和SysWOW64)
Posted 毛奇志
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows_01_Windows系统的中的32位和64位(System32和SysWOW64)相关的知识,希望对你有一定的参考价值。
系列文章目录
文章目录
前言
现在的计算机系统都是64位了,如下:
System32和SysWOW64
对于64位的操作系统,打开 C:\\Windows 目录,有两个文件夹 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
Program Files和Program Files(x86)
windows上安装桌面级软件的时候,默认的安装路径基本就是 C盘的ProgramFiles和ProgramFiles(x86),对于我们现在的64位的windows操作系统,Program Files是默认的64位软件安装位置(当然可以自己指定),Program Files(x86)是默认的64位软件安装位置(当然可以自己指定),如下:
总结
以上是关于Windows_01_Windows系统的中的32位和64位(System32和SysWOW64)的主要内容,如果未能解决你的问题,请参考以下文章