LinuxSir.cn,穿越时空的Linuxsir!

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

[操作系统]请教保护模式和有关内存

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

还有就是,boot时有个0000:7c00的内存地址,还有显存绝对地址是0b8000h,硬盘rom绝对地址是0c8000h,我想详细了解所有的有这些特殊用途的绝对地址,谁能提供一个链接?或者书,文档,手册什么的?
另外,linux的内存布局是怎样的?比如绝对地址哪到哪用于内核,哪到哪用于用户区?
谢谢
发表于 2006-3-15 11:16:57 | 显示全部楼层
E: E=0描述符描述数据段
                ED=0 段向上扩展(数据段)
                ED=1 段向下扩展(堆栈段)
界限指定的实际是一个段的大小

但是又如何理解偏移(负的)大于界限(正的)呢?
并不是说向下扩展偏移就是负的,你这句话是讨论的只是文字,与CPU实际处理无关

  1. 还有就是,boot时有个0000:7c00的内存地址,还有显存绝对地址是0b8000h,
  2. 硬盘rom绝对地址是0c8000h,我想详细了解所有的有这些特殊用途的绝对地址
复制代码


在实模式下才有这样的规定,一旦进了了保护模式,就没有这样的规定了。实模式下寻址1M内的存的,地址高于640KB的实际上都有特定的用途:
A0000-AFFFF:视频RAM图形区
B0000-BFFFF:视频RAM文本区
C0000-C7FFF:视频BIOS
C8000-DFFFF:硬盘控制器ROM+LAN控制器ROM+空闲区
E0000-EFFFF:BAsic语言ROM(只在早期PC出现)
F0000-FFFFF:BIOS的ROM
回复 支持 反对

使用道具 举报

发表于 2006-3-15 11:17:11 | 显示全部楼层
  1. linux的内存布局是怎样的?比如绝对地址哪到哪用于内核,哪到哪用于用户区
复制代码


线性地址4G空间中,最高1G是映射到内核到,低的3G地址空间:是进程独有的。至于那部分内存是放什么驱动或者用作堆栈的,这些其实并不像DOS那样规定好,而是根据系统变化而变化的。如果楼主想看这些,首选看看有关intel 处理器的书,把分页与分段弄明白再看LINUX内核,可以看看浙大出的《Linux内核情景分析》。
回复 支持 反对

使用道具 举报

发表于 2006-3-15 11:17:24 | 显示全部楼层
E: E=0描述符描述数据段
                ED=0 段向上扩展(数据段)
                ED=1 段向下扩展(堆栈段)
界限指定的实际是一个段的大小

但是又如何理解偏移(负的)大于界限(正的)呢?
并不是说向下扩展偏移就是负的,你这句话是讨论的只是文字,与CPU实际处理无关

  1. 还有就是,boot时有个0000:7c00的内存地址,还有显存绝对地址是0b8000h,
  2. 硬盘rom绝对地址是0c8000h,我想详细了解所有的有这些特殊用途的绝对地址
复制代码


在实模式下才有这样的规定,一旦进了了保护模式,就没有这样的规定了。实模式下寻址1M内的存的,地址高于640KB的实际上都有特定的用途:
A0000-AFFFF:视频RAM图形区
B0000-BFFFF:视频RAM文本区
C0000-C7FFF:视频BIOS
C8000-DFFFF:硬盘控制器ROM+LAN控制器ROM+空闲区
E0000-EFFFF:BAsic语言ROM(只在早期PC出现)
F0000-FFFFF:BIOS的ROM
回复 支持 反对

使用道具 举报

发表于 2006-3-15 11:17:28 | 显示全部楼层
E: E=0描述符描述数据段
                ED=0 段向上扩展(数据段)
                ED=1 段向下扩展(堆栈段)
界限指定的实际是一个段的大小

但是又如何理解偏移(负的)大于界限(正的)呢?
并不是说向下扩展偏移就是负的,你这句话是讨论的只是文字,与CPU实际处理无关

  1. 还有就是,boot时有个0000:7c00的内存地址,还有显存绝对地址是0b8000h,
  2. 硬盘rom绝对地址是0c8000h,我想详细了解所有的有这些特殊用途的绝对地址
复制代码


在实模式下才有这样的规定,一旦进了了保护模式,就没有这样的规定了。实模式下寻址1M内的存的,地址高于640KB的实际上都有特定的用途:
A0000-AFFFF:视频RAM图形区
B0000-BFFFF:视频RAM文本区
C0000-C7FFF:视频BIOS
C8000-DFFFF:硬盘控制器ROM+LAN控制器ROM+空闲区
E0000-EFFFF:BAsic语言ROM(只在早期PC出现)
F0000-FFFFF:BIOS的ROM
回复 支持 反对

使用道具 举报

发表于 2006-3-15 11:24:05 | 显示全部楼层
为什么不能删自己的贴,按多了几次回复造成重发了,版友见谅
回复 支持 反对

使用道具 举报

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

本版积分规则

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