免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2501 | 回复: 7
打印 上一主题 下一主题

内核页表中是否存前896M的物理内存和虚拟地址之间的映射关系? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-28 11:22 |只看该作者 |倒序浏览
我们知道物理内存的前896M和内核空间的虚拟地址存在3G的偏移量,他们之间的换算可以直接通过va()和pa()进行。
那么内核空间的物理地址和虚拟地址之间的映射关系是否也保存在内核主页表中?

我自己的理解是:操作系统中任何物理地址和虚拟地址之间的映射关系都必须保存在页表中,因此,他们之间的映射关系同样存在于内核主页表中,只不过他们之间的换算可以不通过MMU进行每级的转换,而直接通过va或pa。

不知道我的理解是否正确?希望大牛回答一下,小弟先谢谢了。

论坛徽章:
0
2 [报告]
发表于 2012-04-01 07:50 |只看该作者
你的理解基本正确, Linux用虚拟地址,所以CPU 发出的地址(都是虚拟地址)必须经过MMU 转换到实际的物理地址, 所有的地址都需要经过MMU转换,只不过你说的896M(取决于实际物理内存大小和vmalloc 区域的定义)是直接映射区域, 他们的映射关系(物理地址和虚拟地址之间有一个常量偏移PHYS_OFFSET - PAGE_OFFSET) 是启动的时候建立的, 在这些物理页上分配的内存,齐虚拟地址不需要重建立, 由于这段区域的物理地址和虚拟地址偏移是常量 所以可以用va 和pa 这些宏去计算。  

但是MMU打开后,从CPU发出去的任何地址都是虚拟地址,必须能够转换到物理地址,否则就会出现Abort。

论坛徽章:
0
3 [报告]
发表于 2012-04-01 07:52 |只看该作者
有任何问题,可以加我Q 752070534

论坛徽章:
0
4 [报告]
发表于 2012-04-05 09:42 |只看该作者
回复 2# moniskiller


    谢谢您的回答!
    有一点我不明白,什么是“齐虚拟地址”?
    另外,既然直接映射的物理内存和虚拟内存有这样的线性关系,也可以通过va和pa直接转换,为何还要简历他们之间的页表?

论坛徽章:
0
5 [报告]
发表于 2012-04-06 22:29 |只看该作者
齐虚拟地址不需要重建立   ---其  齐虚拟地址不需要重建立    打错字了,不好意思

1. va/pa 这些宏 是在代码中想计算出一个物理地址的虚拟地址/一个虚拟地址的物理地址时用的。
2. 这些宏仅仅只能用在kernel directly mapped 的内存。
3. 这些宏所依赖的理论依据就是我们建了一个如此对应关系的虚拟地址 和物理地址的转换表
4. 对于开启MMU 的系统来说,CPU 发出的所有读写内存的指令所送出的地址都被当做虚拟地址,这些地址是送到MMU,MMU 通过查找地址转换表转成物理地址,最终送到总线上的各个设备,也就是总线要求的是物理地址(大多数情况下总线地址 = 物理地址)
5. 不知道是否能够让你更了解

论坛徽章:
0
6 [报告]
发表于 2012-04-16 09:09 |只看该作者
回复 5# moniskiller


    首先感谢您仔细的回答。


关于您的回答,我的理解如下:
不管是什么映射,CPU发出的虚拟地址都要经过MMU的地址转换,最终按照物理地址访问存储器。

而对于我们写代码来说,可以通过va,pa直接获取虚拟地址对应的物理地址。
同时对于其他一般的虚拟地址来说,也可以通过内核中相应的api(比如pdg_offset,pmd_offset)来模拟MMU对虚址的层层转换。
而且这些地址转换的api跟MMU是无关的,完全是代码实现的。

是这样吗?

论坛徽章:
0
7 [报告]
发表于 2012-04-17 09:55 |只看该作者
可以加Q讨论 752070534

论坛徽章:
0
8 [报告]
发表于 2012-04-17 19:49 |只看该作者
回复 7# moniskiller


    上次加了,不过您好像没通过。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP