什么是SysWow64文件夹 SysWow64文件夹可以删除吗
64位的windows并不是简单地把所有东西都编译成64位就万事大吉的。关于64位的cpu应该做成什么样子,intel和amd曾有各自的打算。amd的回答直接了当:新的64位处理器,应该能在提高更高处理能力的同时,保持对32位应用程序的兼容性。而intel则希望借此机会,把下一代的处理器,设计得更完美。于是,就有了amd的x86-64(后被称为amd64)的处理器和intel的ia-64(安腾)处理器。和amd64不一样的是,安腾处理器并没有很好地提供对32位应用程序的支持。具体信息,读者在网上应该很容易找到,也就不多说了。
windows作为一个操作系统,自然希望用户在运行64位操作系统时,也能像以前一样,运行各种32位应用程序。这一点,在amd64处理器上,相对容易做到。而安腾,几乎是另外一回事。(后来intel也生产了兼容amd64的处理器,但那是后话。)
虽然我说“相对”容易做到,但也不是空手套白狼。当操作系统运行在64位时,怎么才能保证已经存在的32位应用程序以为自己仍然运行在32位系统上呢?微软的解决方案是:wow64,全称是32bit windows on 64bit windows(64位windows上的32位windows)。
你也可以这样理解,虽然整个系统是运行在64位模式,但如果一个应该程序是32位的,windows会在64位的基础上,加载一个“32位的windows”。这样,这个32位应用程序就以为自己是运行在32位的系统之上的。
于是,你也可以想象,这就意味着,64位的windows,不但带有64位操作系统应有的系统文件,还带有32位系统应有的系统文件。
我们都知道的是,windows系统的主要系统文件都是放在一个叫做system32的文件夹中的。为了能同时放下两套系统文件,windows会在64位的系统上,增加了一个文件夹,叫syswow64。
这便有了一个问题,system32和syswow64里面,哪个放的是64位的系统文件,哪个放的是32位的系统文件呢?
如果你还记得wow64指的是64位windows上的32位windows,那么,你就能会想到,syswow64里放的是32位的系统文件。但你也可能会问,为什么一个明明叫system32的文件夹装的是64位的系统文件,而一个明明叫syswow64的文件夹装的却是32位的系统文件呢?既然是64位的系统,为什么不能有system64和system32这样的文件夹呢?
这个问题问得很好。答案也很简单:人在江湖,身不由己。
兼容性
如果我问你,可曾有多少机会接触过安腾处理器呢?我想,对于一般人来讲,应该是没有的。那为什么amd64会大行其道,而安腾处理器却鲜为人知呢?还是因为一个软硬件设计上的关键概念:兼容性。
正是因为安腾处理器,没有做好对已有的32位系统提供良好的支持,便其一直处于市场的边缘。这和你不会买一台看不了模拟信号频道的高清电视是一个道理。
之前我们谈到的兼容性,是指在64位windows上,兼容已经有的32位应用程序。现在考虑另一种兼容性。
如果你写了一个很牛的32位的应用程序,现在,你想把它变成64位的应用程序,以更充分地利用64位处理器所带来的新的处理能力。你肯定觉得,这不就是让64位编译器编译一遍就完了的事儿么?可能你发现,这并不是骨感的现实。你突然发现,你的程序里,为了某些你已经想不起来的原因,把system32这个文件夹,写死在了你的程序里。而这个system32中的32,让你很不安。你尝试着运行了你的程序,却发现一切正常。为什么呢?因为这是windows系统的另一个兼容性方面的努力:让一个已有的32位应用程序,不加修改或者尽可能少地加以修改,便可以被编译成64位应用程序并在64位windows上运行。其实,把system32这样的路径,写死在程序里,并不是一个个案。所以,为了保证这些应用程序可以顺利地过渡到64位,windows最后还是决定让64位的系统文件放在system32的文件夹下。而让32位的系统文件,搬到了syswow64中去。
你肯定会想,那让32位搬到syswow64中去以后,那些写死在32位应用程序中的system32怎么办?答:windows会给他们转向到syswow64中去。那让64位中的system32转向到system64不也是一样么?真的一样么?不一样么?真的一样么?不一样么?真的不一样。
作为64位windows操作系统,当然是希望能充分发挥64位处理器的潜力,让应用程序更有效率地运行。如果在运行64位应用程序时,总要检查是否需要转向,势必影响程序运行效率。所以,不能给64位应用程序做没有必要的转向,如果说必须要转,那就只能转32位应用程序了。是的,没有办法,在64位操作系统中,32位应用程序要做一些小的牺牲。
此外,为了保证32位应用程序不与64位应用程序相冲突,除了system32文件夹外,注册表也需要为32位和64位提供两套,也需要让32位的应用程序在必要时重定向。
结论
所以syswow64文件夹,是64位windows,用来存放32位windows系统文件的地方。
后记
兼容性是一个重要的事情。当然,也是一个很有意思的事情。如果你在windows 7中运行"winver",你就会发现,windows 7原来是windows 6.1。为什么呢?事情是这样的,windows xp是windows 5.2,windows vista开始变成了6.0,结果,很多应用程序只是检查操作系统版本号的头一位,发现不是5,于是就提示用户说:“我们不支持windows xp以前的系统”。这也是从windows vista的不成功中,学习到的一课。也许,以后永远都没有windows 7.0也未可知啊。
win7系统中不能删除的syswow64是啥文件夹
最近有操作64位版本的win7支持者向作者提出问题,内容就是(看到c盘中\windows\中里项容量1g多的文件,名称是“syswow64”,占那么大空间是啥文件来的呢?可以删除这个文件的吗?)千万别,这是一个不能删除的文件,下面作者就告诉你win7系统中不能删除的syswow64是啥文件夹吧:
win7系统里的syswow64是啥文件夹的讲解:
其实这个syswow64文件 是一个win7系统里的一项子系统, 可以运行32-bit 应用,windows操作系统程序, 并且全部的windows7系统64位版本上都存有这个文件。 wow64是官方设计用在管理很多在32位t windows系统 跟64位 windows 系统之中的不一样,尤其关于windows本市的结构变化上的不一样。
这个syswow64文件是非常重要的,在64位版本的win7系统上全部靠它去运行32位的软件,因此万万是不能删除的文件,否则win7系统就会发生崩溃,警告“缺少文件”等错误。
上一篇: PHP5中使用PDO连接数据库的方法
推荐阅读
-
什么是SysWow64文件夹 SysWow64文件夹可以删除吗
-
appdata文件夹有什么用途?C盘appdata可以删除吗?
-
win10系统logs可以删除吗?win10系统logs文件夹有什么作用?
-
手机里的storage是什么文件夹? storage可以删除吗?
-
win10系统D盘Drivers文件夹可以删除吗
-
tencent files文件夹能删除吗 tencent files文件夹是否可以删除
-
cache是什么文件夹可以删除吗(清除cache后果)
-
winsxs是什么文件夹 Winsxs文件夹可以删除吗
-
电脑bin文件夹里是什么文件 bin文件夹可以删除吗
-
什么是SysWow64文件夹 SysWow64文件夹可以删除吗