免费注册 查看新帖 |

Chinaunix

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

使用全局内核页表swapper_pg_dir如何进行地址转换? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-30 17:19 |只看该作者 |倒序浏览
我用的是fedora,内核版本是linux-2.6.21.i686
我定位了swapper_pg_dir,也就是全局内核页表,发现使用这个页目录表
进行地址转换的话,行不通。
那么在3G到3G+896M的空间进行寻址的话,是通过什么进行的?swapper_pg_dir在
什么时候使用?
我同样使用了__pa进行查看
在asm-i386\page.h文件中有
#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
PAGE_OFFSET就是3G了。
在system.map中有c12d8440 D init_task
我用__pa(c12d8440)得到init_task的物理地址。但是,参看这块地址发现
全为0。

论坛徽章:
0
2 [报告]
发表于 2011-06-03 17:25 |只看该作者
swapper_pg_dir它的作用包括初始化时建立8M的映射,还有为进程页表3G以上的线性空间提供模板。
系统初始化完了以后好像就不用了吧。因为3G--(3G+896M)之间的地址好像直接用__pa转换而不用查表吧。
这里有篇文章 比较详细:http://lanhg2008.blog.163.com/bl ... 178201051144339432/
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP