12、系统机制:32 位与 64 位环境的兼容与模拟

系统机制:32 位与 64 位环境的兼容与模拟

在现代计算机系统中,32 位和 64 位应用程序的兼容运行是一个重要的问题。本文将深入探讨系统在处理 32 位和 64 位组件时所采用的机制,包括注册表的分离、系统调用的处理、异常调度以及不同平台上的模拟技术等方面。

1. 注册表分离

为了在不修改 32 位组件代码的情况下解决兼容性问题,注册表被分为两部分:Native 和 WoW64。默认情况下,32 位组件访问 32 位视图,64 位组件访问 64 位视图。这样可以为 32 位和 64 位组件提供安全的执行环境,并将 32 位应用程序状态与 64 位应用程序状态分离。

1.1 注册表重定向

WoW64 系统调用层会拦截 32 位进程调用的所有系统调用。当拦截到打开或创建注册表项的系统调用时,它会将键路径转换为指向注册表的 WoW64 视图(除非调用者明确请求 64 位视图)。具体来说,在以下两个根键下可能会发生重定向:
- HKEY_LOCAL_MACHINE\SOFTWARE
- HKEY_CLASSES_ROOT

并非整个注册表项都被拆分,属于这些根键的子键可以存储在注册表的私有 WoW64 部分(此时子键为拆分键),也可以在 32 位和 64 位应用程序之间共享(此时子键为共享键)。在每个拆分键下,WoW64 会创建一个名为 WoW6432Node (对于 x86 应用程序)或 WowAA32Node (对于 ARM32 应用程序)的键,用于存储 32 位配置信息。其他部分的注册表则在 32

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值