免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: chenzhanyiczy

虚拟地址问题求助!!高手进!! [复制链接]

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
发表于 2009-11-08 23:08 |显示全部楼层
单进程的话怎么可以 “一个任务的代码段和数据段的段限长相同,并被映射到线性地址完全相同而重叠的区域上。”,这样的话,代码段里面的虚拟地址A和数据段里面的虚拟地址B,两者的线性地址就有可能相同,一旦线性地址相同,物理地址也就相同了,那这不是乱套了吗?很不理解这句话的意思

论坛徽章:
0
发表于 2009-11-08 23:16 |显示全部楼层
原帖由 chenzhanyiczy 于 2009-11-8 23:08 发表
单进程的话怎么可以 “一个任务的代码段和数据段的段限长相同,并被映射到线性地址完全相同而重叠的区域上。”,这样的话,代码段里面的虚拟地址A和数据段里面的虚拟地址B,两者的线性地址就有可能相同,一旦线 ...


当然可以这样映射,基地址相同~ 然后偏移不同就行了~

做成代码段和数据段映射到同一线性地址有利于动态规划,映射到不同的线性地址空间的话就被段限制给限制死了~

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
发表于 2009-11-08 23:20 |显示全部楼层
原帖由 superfight 于 2009-11-8 23:16 发表


当然可以这样映射,基地址相同~ 然后偏移不同就行了~

做成代码段和数据段映射到同一线性地址有利于动态规划,映射到不同的线性地址空间的话就被段限制给限制死了~



但问题就在于偏移有可能相同。如果相同的话,那不是就乱套了吗?

论坛徽章:
0
发表于 2009-11-08 23:21 |显示全部楼层
原帖由 chenzhanyiczy 于 2009-11-8 23:20 发表

但问题就在于偏移有可能相同。如果相同的话,那不是就乱套了吗?


= = 对的~ 所以绝对不能相同~  这个工作由编译器来保证~

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
发表于 2009-11-08 23:31 |显示全部楼层
终于理解到一起去了,不容易啊

真不知道这部分是如何实现的?

论坛徽章:
0
发表于 2009-11-08 23:37 |显示全部楼层
原帖由 chenzhanyiczy 于 2009-11-8 23:31 发表
终于理解到一起去了,不容易啊

真不知道这部分是如何实现的?


= 3= 嘛~ 慢慢来吧~ 还有一大堆没搞懂的东西~

可以翻内核代码~ = 3=  不过x86的体系结构太复杂了~  什么IDT TSS GDT LDT段~  一看头都大了~

还是看看arm这样简单一点的体系结构来理解比较爽~

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
发表于 2009-11-08 23:43 |显示全部楼层
恩。

你知道这部分是怎样实现的吗?

论坛徽章:
0
发表于 2009-11-08 23:54 |显示全部楼层
原帖由 chenzhanyiczy 于 2009-11-8 23:43 发表
恩。

你知道这部分是怎样实现的吗?


哪部分?~

不过我的代码理解只局限在linux0.11下......   

现在linux的映射流程不敢看了 = =

这是linux0.11 MMU和映射部分初始化的分析~  你可以参考一下~ = 3=

http://blog.chinaunix.net/u1/57901/showart_1912574.html

[ 本帖最后由 superfight 于 2009-11-8 23:55 编辑 ]

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
发表于 2009-11-09 00:01 |显示全部楼层
就是 这部分:

但问题就在于偏移有可能相同。如果相同的话,那不是就乱套了吗?

= = 对的~ 所以绝对不能相同~  这个工作由编译器来保证~


编译器是如何保证的?

论坛徽章:
0
发表于 2009-11-09 00:05 |显示全部楼层
原帖由 chenzhanyiczy 于 2009-11-9 00:01 发表
就是 这部分:

但问题就在于偏移有可能相同。如果相同的话,那不是就乱套了吗?

= = 对的~ 所以绝对不能相同~  这个工作由编译器来保证~


编译器是如何保证的?


这个就不清楚了...... 你可以编译一个程序~ 然后objdump他~
看看逻辑地址是如何分布的~

如果还要更深入了解链接的过程~ 就只能去翻gcc的书和gcc的代码实现了............
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP