免费注册 查看新帖 |

Chinaunix

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

系统空间到物理地址映射只是线性映射是什么意思? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-11 16:35 |只看该作者 |倒序浏览
最近刚开始读《情景分析》,有个地方想破了脑袋也没想明白,还请各位高手赐教,谢谢!

32位的地址总线允许有4G字节的虚拟空间,内核把这4G空间最高的1G做为系统空间
对系统空间来说,给定一个虚地址x,其物理地址就是x-page_offset 。
设置CR3寄存器的时候是下面这条语句:
asm volatile("movl %0,%%cr3"::"r"(_pa(next->pgd)));

是不是说一个虚地址直接减去位移就得到物理地址了??

那系统空间都直接映射1G物理内存了,如果物理内存小于1G的话,其他的用户进程放在哪呢?
还有上面那条设置CR3的语句,也是直接把虚拟地址做个简单的位移就放进去了,这是怎么回事?

我知道我可能有很多概念在混淆,不过这点我真的是想不明白了,我把操作系统,组成原理,微机原理书都翻出来看了下,还是不明白怎么回事,呵呵。有哪个高手能说下?谢谢!

论坛徽章:
0
2 [报告]
发表于 2006-08-11 22:06 |只看该作者
要分清内核虚拟地址(Kernel virtual addresses)和内核逻辑地址(Kernel logical addresses),你这里说的其实是逻辑地址,是线性映射的,建议看一下ldd 13章
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP