首页
社区
课程
招聘
[旧帖] [求助]学习虚拟地址转化为物理地址碰到的问题 0.00雪花
发表于: 2009-8-9 21:54 1658

[旧帖] [求助]学习虚拟地址转化为物理地址碰到的问题 0.00雪花

2009-8-9 21:54
1658
小弟在学习虚拟地址到物理地址转化的过程中碰到几个问题,想请教一下:
1:虚拟地址到物理地址的转换是操作系统中某个程序实现的,还是处理器本身的功能
2:windbg可以用!dd命令访问物理地址,它是怎么做到直接访问物理地址的呢
3:非分页内存中的虚拟地址是否等于物理地址。
希望各位大侠赐教

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
2
1.虚拟地址到物理地址的转换是由硬件完成的,完成此功能的部件是CPU中的MMU(存储器管理单元)。当然必须要系统软件将硬件配置成正确的工作状态。

2.直接将要访问的物理地址(可能是临时性地)映射到一个虚拟地址上,即可访问其中的内容。

3.在分页未开启时,线性地址(也即虚拟地址,注意不同于逻辑地址——逻辑地址是由段+段内偏移的形式)就是物理地址。
  另外,在分页开启时,只要愿意,当然也可以让虚拟地址等于物理地址。
2009-8-9 23:56
0
雪    币: 27
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
多谢多谢。另外顺便问个问题,我们访问一个地址时候,cup怎么知道这个地址是在分页内存从而进行映射,还是在未分页内存从而直接访问呢?
2009-8-10 00:37
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
是否采用分页由CR0寄存器的PG位决定, PG=1 分页管理
2009-8-10 08:14
0
雪    币: 27
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个我知道。但是系统怎么什么时候设置PG位的值呢,难道我每访问一个地址,系统还要来检测这个地址在分页内存还是在非分页内存,从而设置PG位的值?
2009-8-10 22:19
0
雪    币: 27
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
自己顶。。。。。。
2009-8-11 14:32
0
雪    币: 164
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
学习了!
2009-8-11 16:13
0
雪    币: 27
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
自己再顶,希望有人回答一下我5楼提出的问题
2009-8-12 12:18
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
学习了。。
问题现在还不清楚。
2009-8-12 12:26
0
雪    币: 27
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
希望达人回答下这个问题
2009-8-16 16:45
0
雪    币: 251
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
分页是CPU中的状态,不是内存的状态
所以CPU PG=1,所有指令中引用的地址都是虚拟地址(mov cr3之类的应该不算是引用物理地址吧)
另外与这个听起来有点像的是Paged Pool 和Nonpaged Pool,但是是另一个概念
2009-8-16 17:52
0
雪    币: 27
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
先谢谢你了,不过我不是问这个呀。我是问计算机怎么知道我访问的地址在分页内存中还是在非分页内存中,从而设定pg的值
2009-8-16 19:24
0
雪    币: 27
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
召唤高手,召唤高手。。。。
2009-8-17 21:21
0
雪    币: 27
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
好心人帮帮忙呀
2009-8-19 00:46
0
游客
登录 | 注册 方可回帖
返回
//