免费注册 查看新帖 |

Chinaunix

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

请教保护模式和实模式de问题!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-28 20:38 |只看该作者 |倒序浏览
对二者的概念不太理解。查了写帖子得到些信息。
理解他们最大的区别是寻址的不同,一个被分成64K的段,而另一个段的大小可以变化。
是不是还有其他关键的区别。??
另外,感觉不到这中差别的威力究竟有多大。
请大侠解释一下。
为什么把实模式的寻址整成1M?
有32根地址线啊,不可以都用上吗?
可能都用上就是保护模式了.
为什么系统刚启动的时候不能以保护模式启动呢?
请大侠指教!!
谢谢。

论坛徽章:
0
2 [报告]
发表于 2007-10-28 21:22 |只看该作者
是不是可以这样理解。
之所以采用保护模式是因为保护模式可以有更大的地址空间。
为什么可以有更大的地址空间呢,实模式为什么就不可以有更大的地址空间呢?
实模式也是可以有更大的地址空间的!
为什么这样说呢。因为有32根地址线,都用上不就有更大的地址空间了!
但是为什么没有都用上呢?
因为cpu使用了分段机制和分页机制。如果采用刚开始的实模式采都用了32位地址,就无法采用分段机制了。
当然采用分段机制的威力是很明显的。。。
嘿嘿。。

以上纯粹是跟人理解。。
有不妥,请高手指教。。

论坛徽章:
0
3 [报告]
发表于 2007-10-28 21:25 |只看该作者
>>是不是还有其他关键的区别。??
其它关键的区别就是在访问时的权限的检查. 因为INTEL处理器是分为了四个权限级别的.
>>为什么把实模式的寻址整成1M?
因为实模式是在8086的时候就已经出来了的, 当时的地址总线是20位的. 所以说是1M的寻址空间.
>>有32根地址线啊,不可以都用上吗?
在保护模式的时候就用上了!
>>为什么系统刚启动的时候不能以保护模式启动呢?
做任何事情总有一个先后顺序吧, 就好比上楼, 总得一层楼一层楼的上吧.

论坛徽章:
0
4 [报告]
发表于 2007-10-28 21:29 |只看该作者
原帖由 scutan 于 2007-10-28 21:25 发表
>>是不是还有其他关键的区别。??
其它关键的区别就是在访问时的权限的检查. 因为INTEL处理器是分为了四个权限级别的.
>>为什么把实模式的寻址整成1M?
因为实模式是在8086的时候就已经出来了的, 当时的地址 ...


非常感谢。

是不是可以这样理解。
之所以采用保护模式是因为保护模式可以有更大的地址空间。
为什么可以有更大的地址空间呢,实模式为什么就不可以有更大的地址空间呢?
实模式也是可以有更大的地址空间的!
为什么这样说呢。因为有32根地址线,都用上不就有更大的地址空间了!
但是为什么实模式没有都用上呢?
因为cpu使用了分段机制和分页机制。如果采用刚开始的实模式采都用了32位地址,就无法采用分段机制了。
当然采用分段机制的威力是很明显的。。。

是不是这样理解??

论坛徽章:
0
5 [报告]
发表于 2007-10-28 21:33 |只看该作者
原帖由 scutan 于 2007-10-28 21:25 发表
>>是不是还有其他关键的区别。??
其它关键的区别就是在访问时的权限的检查. 因为INTEL处理器是分为了四个权限级别的.
>>为什么把实模式的寻址整成1M?
因为实模式是在8086的时候就已经出来了的, 当时的地址 ...



按照你说的,当时有20根地址线,实模式是20为的,
既然现在已经有32为的地址线了,为什么不可以在实模式的时候都用上?

论坛徽章:
0
6 [报告]
发表于 2007-10-28 21:45 |只看该作者
INTEL是一个产品, 它要做到后面的产品与前面的产品兼容
80386之后的处理器与8086处理器表面上看来是处理器位数的变化, 实质上是处理器体系结构的变化, 即由实模式到保护模式的转变, 保护模式就为运行现代操作系统提供了很好的硬件支持. 不过为了兼容, 它保留了实模式寻址的这种机制.

论坛徽章:
0
7 [报告]
发表于 2007-10-28 22:05 |只看该作者
原帖由 scutan 于 2007-10-28 21:45 发表
INTEL是一个产品, 它要做到后面的产品与前面的产品兼容
80386之后的处理器与8086处理器表面上看来是处理器位数的变化, 实质上是处理器体系结构的变化, 即由实模式到保护模式的转变, 保护模式就为运行现代操作系 ...


保护模式的分的一个页大小多少?
一页用到的地址线的个数,是不是和实模式用到的地址线的个数?
。。。。

论坛徽章:
0
8 [报告]
发表于 2007-10-28 22:40 |只看该作者
原帖由 vikingrex 于 2007-10-28 22:05 发表


保护模式的分的一个页大小多少?
一页用到的地址线的个数,是不是和实模式用到的地址线的个数?
。。。。


page: 4K/2M/4M 三种 size

在 non-PAE 模式下,32 位物理地址,
在 PAE 模式下,Intel 的处理器是 36 位,而 AMD 可以达到:40 位、52 位之多



另:回答你“为什么一开机不进入保护模式”的问题。

一方面,也是主要的原因:为了兼容。

一方面,基于 X86 保护模式机制的特点予盾所示:   
假如 CPU 复位后就进入保护模式的话,那么,CPU 此时处理于 user 级别权限好,还是处理于 supervisor 级别的权限好呢?
若处于 supervisor 权限的话,x86 CPU 是不能从高权限级别向低权限转移的,除了调用返回外。这样的话,CPU 永远处于 supervisor 权限级别。
若处于 user 权限级别的话,X86 CPU 的某些指令是不能运行的,如:mov CRn, XX、 LGDT、LLDT 等等,这样也就永远无法产生保护模式的环境。

当然,主要问题是为了兼容,至于这样机制予盾,若选择不兼容的话,Intel 可以作出适当的修改。

论坛徽章:
0
9 [报告]
发表于 2007-10-29 00:36 |只看该作者

回复 #7 vikingrex 的帖子

保护模式和实模式的区别,主要还是在特权级检查。
其次,实模式可以访问4G的地址空间。但是这是一种很特殊的情况,称为big real mode,它需要先进到保护模式后再切换回实模式。
其三,不直接进入保护模式,我认为还是兼容问题。mik版主提到的supervisor/user问题我认为不准确,因为u/s是对于paging来说的,mmu根据当前的cpl级别和页表中的u/s位来判断当前程序时候拥有访问对应内存的权限。执行权限还是由cpl决定的ring级别确定。

论坛徽章:
0
10 [报告]
发表于 2007-10-29 12:43 |只看该作者
原帖由 zx_wing 于 2007-10-29 00:36 发表
mik版主提到的supervisor/user问题我认为不准确,因为u/s是对于paging来说的,mmu根据当前的cpl级别和页表中的u/s位来判断当前程序时候拥有访问对应内存的权限。执行权限还是由cpl决定的ring级别确定。


呵呵~ 偶提到的 supervisor/user 是非常正确的。

Intel 已经明文规定: 0、1 以及 2 级别的权限就是 supervisor。 3 级为 user

这里要分清楚 page 所需的权限,以及 CPL 权限两个问题。

PDE 以及 PTE 定义的 u/s 是属于访问所需的权限,CPL 是 CPU 当前权限。

page 只区别 supervisor 和 user 。并不定义具体的哪个级别
若 PTE 定义为 supervisor 权限,CPL 为 0, 1 以及 2 都具有访问权限。3 不行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP