社区
Windows Server
帖子详情
新手在线等:为什么64位机可以兼容32位机?
chaochengmillet
2007-03-01 03:53:37
那位大侠能告诉我64位机采用什么原理将32位机运行的软件兼容到64位机上运行的?
...全文
777
2
打赏
收藏
新手在线等:为什么64位机可以兼容32位机?
那位大侠能告诉我64位机采用什么原理将32位机运行的软件兼容到64位机上运行的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chaochengmillet
2007-03-01
打赏
举报
回复
谢谢啦!
scz123
2007-03-01
打赏
举报
回复
WOW64
WOW64 是 Windows-32-on-Windows-64 的缩写。它为现有的 32 位应用程序提供了 32 位的模拟,可以使大多数 32 位应用程序在无需修改的情况下运行在 Windows 64 位版本上。它类似于旧的 WOW32 子系统,负责在 Windows 32 位版本下运行 16 位的代码。
硬件本身具有 32 位兼容性模式,可以处理 IA-32 指令的实际执行,而 WOW 层处理诸如在 32 位和 64 位模式之间切换处理器以及模拟 32 位系统的事务。例如,32 位和 64 位程序具有不同的注册表配置单元。还有一个用于 32 位二进制文件的不同的系统目录。64 位二进制文件仍然使用 System32 目录,因此,当 32 位应用程序安装到系统中时,WOW 层会确保将 32 位二进制文件置于一个新的目录 SysWOW64 中。这是通过如下方式实现的:根据应用程序是否运行在 WOW 下,截获对 API 的调用(如 GetSystemDirectory)并返回适当的目录。相同的问题可能会存在于注册表中。因为 32 位和 64 位的 COM 服务器都可以安装在系统上,并位于相同的类标识符 (CLSID) 下,因此 WOW 层需要将对注册表的调用重定向到适当的 32 位或 64 位配置单元中。WOW 层也会处理注册表中某些区域之间的镜像更改,以便使其更简单地支持 32 位和 64 位代码之间的交互操作。
WOW64 非常重要,因为当不关注性能和可伸缩性的问题时,它使您可以利用大多数现有的 32 位代码。它是两种方法的最佳结合。您可以将您的服务迁移到 64 位,同时将 Microsoft 管理控制台 (MMC) 配置管理单元保留为 32 位。Windows 64 位版本包括 MMC 的 32 位和 64 位的版本。当选择保留管理工具为 32 位时,进程间的通讯可能会遇到某些问题,但是只要接口设计正确,诸如远程过程调用 (RPC) 的协议应该可以在 32 位和 64 位进程之间运行。有关 WOW64 的另外一点需要牢记:它并不是为要求高性能的应用程序而设计的。至少,WOW64 子系统需要将 32 位参数扩展到 64 位,并且需要将 64 位的返回值截断为 32 位。在最糟糕的情况下,WOW64 子系统将需要进行内核调用,涉及到的不仅仅是到内核的转换,还有从处理器的 32 位兼容性模式到其本机 64 位模式的转换。在 WOW64 下运行时,应用程序将无法妥当地进行调整。对于那些您要将其保留为 32 位的应用程序而言,请在 WOW64 下测试它们。如果性能不能满足您的期望,您需要考虑将应用程序迁移到 64 位。
WOW64 是在用户模式下实现的,作为 ntdll.dll 和内核之间的层。WOW64 及其支持的一些 DLL 仅仅是可以加载到 32 位进程中的 64 位的 DLL。对于所有其他情况,进程保持为纯进程。32 位的进程无法加载 64 位的 DLL,反之亦然。
有关 WOW64 的详细信息,请参阅 Microsoft_ Platform SDK 中的“64-bit Windows Programming - Running 32-bit Applications”:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/win64/win64/running_32_bit_applications.asp
Linux QT
兼容
32 64,64位linux下Qt关于64位和32位库的问题 小弟
新手
,help
64位linux下Qt关于64位和32位库的问题 小弟
新手
,help首先说下系统环境,是64位ubuntu12.04,装的是qt-everywhere4.8.1,然后必须引用外部的32位的库,没有源代码所以没法编译成64位直接引用就出一大堆这个错误:19:...
计算
机
win7几位,Win7 32位与64位有什么区别 Win7系统32位和64位的区别科普篇
Win7系统分32位和64位版本,很多人在选择32位和64位系统的时候十分纠结,原因是自己的电脑应该安装哪一种版本,那么Win7 32位与64位有什么区别,下面装
机
之家分享一下Win7系统32位和64位的区别科普篇。Win7系统32位...
计算
机
组装配置
兼容
,菜鸟DIY装
机
必须注意的五大硬件
兼容
性问题
这三大部分中硬件
兼容
性问题往往是
新手
们容易疏忽的,虽然
兼容
问题是老生常谈的一个问题,但依然有不少
新手
朋友不够重视。今天笔者就给
新手
们分析下选购硬件里硬件
兼容
需要注意的五大问题,希望对DIY...
如何开展
兼容
性测试?
兼容
性测试有什么作用?
兼容
性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境中是否能够很友好的运行的测试。
兼容
性测试是软件测试过程中必不可少的一个过程,没有
兼容
性测试的测试是不...
品牌
机
和组装
机
对比?
如果是游戏发烧友,或者是运行比较大型的软件的人群,建议选择组装
机
,找一家电脑店把你的需求说给工作...组装
机
是根据自己的需求,按需搭配的,
兼容
性就会差些,有些时候电脑
新手
搭配的电脑还会出现硬件不合的问题。
Windows Server
6,850
社区成员
178,035
社区内容
发帖
与我相关
我的任务
Windows Server
Windows 2016/2012/2008/2003/2000/NT
复制链接
扫一扫
分享
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章