欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

什么是SysWow64文件夹 SysWow64文件夹可以删除吗

程序员文章站 2022-05-29 17:41:30
什么是SysWow64文件夹 SysWow64文件夹可以删除吗这篇文章主要介绍了什么是SysWow64文件夹 SysWow64文件夹可以删除吗,需要的朋友可以参考下... 16-10-01...

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系统就会发生崩溃,警告“缺少文件”等错误。

相关标签: SysWow64