【问题标题】:Do the DPL and the RPL matter when using paging?使用分页时,DPL 和 RPL 重要吗?
【发布时间】:2019-08-25 18:55:08
【问题描述】:

我可能是错的,但根据我所阅读的内容,除了 CPL 之外,DPL 和 RPL 用于防止或允许进程在使用内存分段时访问某些内存区域。

但是现代操作系统(例如:Linux)不使用内存分段,而是使用分页,并且进程的页表允许您指定某些内存区域只能在 CPU 处于内核模式时访问( CPU 是处于用户态还是内核态仅由 CPL 决定)。

在使用分页时 DPL 和 RPL 无关紧要,我是否正确,只有 CPL 才是重要的?

【问题讨论】:

    标签: x86 operating-system memory-segmentation


    【解决方案1】:

    这是分段配置的问题。当分段和页面翻译访问检查都通过时(按此顺序),将授予内存访问权限。

    确实,如今分段很少用于其设计,但启用页面翻译后分段在某种程度上不存在是不正确的。只是页面翻译的效果要好得多,所以段的设置方式可以让它们简单地避开。

    x86 段有几个关键问题:

    • 编译器需要支持 far 指针,这很混乱(在 16 位保护模式下更混乱,其中段需要由应用程序和操作系统管理)
    • 它们不能有具有不同属性的孔或子区域,而且许多段不仅管理起来也有问题(GDT 和 LDT 每个都为多达 8191 个段描述符提供空间)

    【讨论】:

    • 你说的“不存在”,你的意思是“不存在”吗?
    • @Tom 正确,已修复。
    猜你喜欢
    • 2016-08-05
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多