免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 独孤九贱
打印 上一主题 下一主题

我理解的逻辑地址、线性地址、物理地址和虚拟地址(补充完整了) [复制链接]

论坛徽章:
0
191 [报告]
发表于 2012-03-16 14:35 |只看该作者
错别字多了点,但是此文确实不错

论坛徽章:
0
192 [报告]
发表于 2012-03-18 13:03 |只看该作者
好贴呀!!!!!!!!!!!

论坛徽章:
0
193 [报告]
发表于 2012-03-31 09:57 |只看该作者
不错

论坛徽章:
0
194 [报告]
发表于 2012-03-31 15:56 |只看该作者
受益了。。。

论坛徽章:
0
195 [报告]
发表于 2012-04-01 10:47 |只看该作者
回复 191# daimeiquan

一个逻辑地址由段标识符+段内偏移组成
段内偏移是由程序汇编之后得到的一个在段内的偏移地址
段选择符存放在段寄存器中,如果你是user code的代码,那么会使用段寄存器cs
段选择符的3~15位指定了描述符在gdt或ldt中的位置,第2位指明是在gdt中还是在ldt中,0~1为RPL(requestprivilegelevel),指定特权级
段选择符的3~15指明了在gdt中的偏移,这样你就得到user code的段描述符
这个描述符BASE字段指明了user code段的起始地址,在linux中是0x0000 0000
加上偏移就是linear address了
所以linear address = 0x0000 0000 + 段内偏移(32位的)
然后通过分页单元得到虚拟地址
不同进程的页全局目录的基地址是不一样的,也就是说存放在CR3中的值是不同的,所以即使这个段内偏移一样,也不会有任何问题。




   

论坛徽章:
0
196 [报告]
发表于 2012-04-01 14:54 |只看该作者

论坛徽章:
0
197 [报告]
发表于 2012-04-05 09:44 |只看该作者
好东西~

论坛徽章:
0
198 [报告]
发表于 2012-04-07 10:51 |只看该作者
了好帖子然后回复 ,是一种美德, 我也一直都 是这样做的~~

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-01-16 06:20:00
199 [报告]
发表于 2012-04-09 14:55 |只看该作者
好文好文,帮助理解了很多!谢谢
收藏了

论坛徽章:
0
200 [报告]
发表于 2012-04-11 14:52 |只看该作者
我是过来学习的,不错不错。:wink:
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP