免费注册 查看新帖 |

Chinaunix

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

关于PG标志启用分页的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-25 20:24 |只看该作者 |倒序浏览
最近在学习linux存储器寻址过程中,对“设置PG标志启用分页”产生了一点疑惑,具体问题如下:

在《在深入理解linux内核》中有讲到:
在80X86处理器中,通过设置cr0控制寄存器的PG标志启用分页。当PG=0时,线性地址就被解释成物理地址。


同时又有一段代码设置cr0控制寄存器的PG标志来启用分页功能:
   movl $swapper_pg_dir-0xc0000000,%eax
    movl %eax,%cr3        /* set the page table pointer.. */
    movl %cr0,%eax
    orl $0x80000000,%eax
    movl %eax,%cr0        /* ..and set paging (PG) bit */


按照上面的代码应该是将PG位设置成1了啊!

这样两者不是矛盾了吗?也许问题比较肤浅,请大虾们赐教!

论坛徽章:
0
2 [报告]
发表于 2008-02-26 08:44 |只看该作者
>>按照上面的代码应该是将PG位设置成1了啊!

是设成了1

>>这样两者不是矛盾了吗?

没看出矛盾在何处

论坛徽章:
0
3 [报告]
发表于 2008-02-26 08:59 |只看该作者

回复 #2 qtdszws 的帖子

但是按照上面一句话的意思,当PG位为0时,线性地址通过分页转换为物理地址啊

论坛徽章:
0
4 [报告]
发表于 2008-02-26 09:06 |只看该作者
>>当PG位为0时,线性地址通过分页转换为物理地址啊

你的描述有问题,此时线性地址就是物理地址,和分页无关

[ 本帖最后由 qtdszws 于 2008-2-26 09:14 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2008-02-26 09:14 |只看该作者
听qtdszws这么一说,我好像有点明白了,我想是我把书上的意思理解错了。

>>在80X86处理器中,通过设置cr0控制寄存器的PG标志启用分页。当PG=0时,线性地址就被解释成物理地址

书上的这句话并不是说PG=0时线性地址通过分页解释成物理地址,而是说此时不使用分页功能,线性地址直接不经过分页直接被解释称物理地址了。

论坛徽章:
0
6 [报告]
发表于 2008-02-26 09:17 |只看该作者
原帖由 qtdszws 于 2008-2-26 09:06 发表
>>当PG位为0时,线性地址通过分页转换为物理地址啊

你的描述有问题,此时线性地址就是物理地址,和分页无关

对,我同意你的观点,我现在理解清楚了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP