科普知识:Windows下的Program Files (x86)文件夹是干什么的?
今天在微博上看到有人问这个问题。在装好64位的Windows之后,能在系统盘(通常是C盘)下看到这么一个文件夹,它比我们都知道的Program Files文件夹多出来个”(x86)“的后缀。那这个带”x86″的文件夹和不带”x86″的有什么区别呢?
简单来说:Program Files (x86)存放了一些32位的系统文件。它和正常的Program Files以及Windows文件夹一样,都属于系统文件夹,请勿随意改动。
64位Windows中提供了一种技术,Windows on Windows 64(即WoW64)。它可以使32位的应用程序正常地运行在64位的Windows中,这样用户在从32位到64位过渡的过程中,不会感受到很大的不便。为了能让32位的程序正常运行,64位的Windows中自带了一大部分的32位的系统文件,当32位程序运行的时候,系统会给它虚拟出一个32位的环境,这样32位程序会以为自己运行在32位Windows中。Windows的系统文件主要是存放在%SystemDrive%\Program Files和%Windir%\System32中(即通常的C:\Program Files和C:\Windows\System32)。64位系统中,这两个文件夹存放的是64位的系统文件,为了存放32位的同名系统文件,64位系统中有另外两个文件夹与之对应,%SystemDrive%\Program Files (86)和%Windir%\SysWoW64(即通常的C:\Program Files (86)和C:\Windows\SysWoW64)。
当32位程序需要访问Program Files或者System32中的文件时,系统会自动转向到Program Files (x86)或者SysWoW64中,这样32位的程序就可以正常的在64位Windows中运行了。类似的情况也发生在应用程序安装的时候,64位的程序一般都会被安装到Program Files中,而32位的程序则是装在Program Files (x86)中。
从64位系统的角度来说,WoW64只是提供了兼容32位程序的方法,而系统本身则完全是64位的,所以把Program Files (x86)和SysWoW64这两个文件夹删除,并不会影响系统的正常运行,但是这种做法是非常不推荐的。现在64位应用程序的普及率并不高,很多厂商不愿意在64位方面投入大量精力,比如常用的聊天工具和多媒体播放工具等。在实际使用过程中,很难避免使用32位的应用程序,所以还是把WoW64留着吧。
另外补充一些常见问题:
为什么C盘和D盘下都有Program Files (x86)?
Program Files、 Program Files (x86)和Windows文件夹通常都存在于同一个盘(分区)中,如果某个盘下面只有Program Files而没有Windows的话,则它不是系统文件夹,删除后不影响系统运行,当然有可能会影响某些软件。
在命令行(DOS)下如何进行Program Files (x86)文件夹
现代的Windows都支持长文件名了,可以直接CD “Program Files”或者CD “Program Files (x86)”,注意加引号。
如果你是在原古的DOS环境下,文件(夹)名称只能有8个字符那么长,而Program Files显然是多于8个字符了,它会被自动缩写成如“progra~1”的形式,在C盘下运行CD progra~1命令可以进行Program Files,或者CD progra~2进入Program Files (x86)。
更复杂的方法可以参考这篇文章。
32位和64位系统有什么差异?
请看这里。