【发布时间】:2021-05-09 05:13:52
【问题描述】:
早在 1982 年,当英特尔发布 80286 时,他们在分段方案(环 0-3)中添加了 4 个特权级别,由全局描述符表 (GDT) 和本地描述符表 (LDT) 中的 2 位指定。
在 80386 处理器中,Intel 添加了分页,但令人惊讶的是,它只有 2 个权限级别(主管和用户),由页目录条目 (PDE) 和页表条目 (PTE) 中的单个位指定。
这意味着仅使用分页的操作系统(如大多数现代操作系统)无法从环 1 和 2 的存在中受益,这可能非常有用,例如,对于驱动程序。 (例如,Win9x 经常崩溃,因为它正在将有缺陷的未经检查的驱动程序加载到 ring 0)。
从可移植性的观点来看,ring 1 和 ring 2 的存在是 x86 架构的一个怪癖,可移植操作系统不应该使用它们,因为其他架构只有 2 个权限级别。
但我确信英特尔工程师在 1985 年设计 386 时并没有考虑到其他平台的可移植性。
那么,为什么 Intel 不允许分页具有 4 个特权级别,例如分段?
【问题讨论】:
-
分页允许4级权限
-
@user123 PDE和PTE只有1位来指定权限。
-
操作系统使用 2 个级别,因为它们认为支持 4 个级别没有用处。
-
@user123 是的,我是站在 CPU 设计者的角度,而不是操作系统设计者的角度。
-
@user123 保护模式在 90 年代之前没有得到太多使用,当时 386 已经 5 岁了。所以不,当英特尔设计 386 时,他们不可能知道没有人会使用 4 个权限级别。
标签: x86 operating-system cpu-architecture paging privileges