我最近在看《软件调试》这本书,最近看到第二章的分页机制那块, 2.6 - 2.7 节, 第59页有个示例, 讲根据虚拟地址翻译为物理地址, 但是我的操作系统是WIN7 64位, 分页机制不同, 没法照做, 网上查了很多资料, 有描述x64分页机制的很多图文, 但是我想动手验证, 光看也就是看看, 我脑袋比较笨, 不做一遍理解不了....。
我开发也是在WIN7 64位下开发, 如果不能够掌握64位的差异可能到时遇到问题还是搞不定, 除非我把开发环境也换成32位的....orz....。
这个问题我花了一天的时间搜索资料, 但是基本还是没什么收获, 这样学习太没有效率了, 我想问下各位大大, 在什么系统环境下学习最好,是不是要在32系统上? 张老师看到的话, 帮忙给点建议。
建议你安装一个虚拟机软件,比如Virtual PC或Virtual Box之类的,然后在虚拟机里安装个32位的Windows, 比如Windows XP 32位。从学习的角度来讲,建议先学习32位的情况,然后扩展到64位。就分页机制也是如此,先理解最经典的4KB 无PAE情况,然后再扩展...
对于XP SP3,因为默认启用了PAE,可以按照下面这个blog来试验。
http://advdbg.org/blogs/advdbg_system/articles/627.aspx
x64模式下的64位分页,只是对普通PAE的进一步扩展...
谢谢张老师的建议, 我机器上已经装了VMware 了, 这个也可以吧, 我用virtual KD工具试了一下双机联调, 成功了, 速度也很快。