LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 915|回复: 2

请教保护模式和有关内存

[复制链接]
发表于 2006-3-12 13:04:29 | 显示全部楼层 |阅读模式
"TYPE中的位2是ED位,指示所描述的数据段的扩展方向。ED=0表示数据段向高端扩展,也即段内偏移必须小于等于段界限。ED=1表示数据段向低扩展,段内偏移必须大于段界限。"
向上扩展是不是比如基地址是0f0000h,界限是1000h,那么数据段从0f0000h到0f1000h?所以偏移小于等于界限.但是向下扩展如何理解呢?比如基地址0f0000h,界限是1000h,那么是不是说数据段从0ef000h到0f0000h?但是又如何理解偏移(负的)大于界限(正的)呢?

还有就是,boot时有个0000:7c00的内存地址,还有显存绝对地址是0b8000h,硬盘rom绝对地址是0c8000h,我想详细了解所有的有这些特殊用途的绝对地址,谁能提供一个链接?或者书,文档,手册什么的?
另外,linux的内存布局是怎样的?比如绝对地址哪到哪用于内核,哪到哪用于用户区?
谢谢
发表于 2006-3-13 13:45:29 | 显示全部楼层
Post by 52violin
"TYPE中的位2是ED位,指示所描述的数据段的扩展方向。ED=0表示数据段向高端扩展,也即段内偏移必须小于等于段界限。ED=1表示数据段向低扩展,段内偏移必须大于段界限。"
向上扩展是不是比如基地址是0f0000h,界限是1000h,那么数据段从0f0000h到0f1000h?所以偏移小于等于界限.但是向下扩展如何理解呢?比如基地址0f0000h,界限是1000h,那么是不是说数据段从0ef000h到0f0000h?但是又如何理解偏移(负的)大于界限(正的)呢?

还有就是,boot时有个0000:7c00的内存地址,还有显存绝对地址是0b8000h,硬盘rom绝对地址是0c8000h,我想详细了解所有的有这些特殊用途的绝对地址,谁能提供一个链接?或者书,文档,手册什么的?
另外,linux的内存布局是怎样的?比如绝对地址哪到哪用于内核,哪到哪用于用户区?
谢谢

对于第一个问题,我的理解是:如果ED=1的话,假设基地址时0f0000h,界限是1000h的话,并且当B为被设置的话,那么数据段的有效范围应该是:0f1000h----0xFFFFFFFF。这时的界限是指不能访问的最后一个地址。这样的偏移就不是负的了。:)
回复 支持 反对

使用道具 举报

发表于 2006-3-17 09:38:30 | 显示全部楼层
"ED=1表示数据段向低扩展,段内偏移必须大于段界限",
ED=1时实际上表示堆栈段, 在堆栈段提“段内偏移”是什么意思呢?
我觉得这个说法不妥, 这句话是出自哪里呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表