gpt4 book ai didi

memory - 如何正确设置页目录项的权限?

转载 作者:行者123 更新时间:2023-12-02 03:01:06 24 4
gpt4 key购买 nike

首先:这个问题是关于 IA-32 (x86) 架构的。

我对旧版(非 PSE、非 PAE)寻呼有疑问。在传统分页中,我们有一个包含 1024 个条目的页目录,每个条目都指向一个页表。每个页表包含 1024 个条目(这些是页),每个条目都指向一个 4096 字节对齐的物理地址。

同时,每个页目录项和页表项都持有一些标志,并且它们都有一个“U”标志(位#2):如果设置了此标志,则该页可以被两个用户访问(环3)和主管(环0);但是,如果未设置此标志,则只有管理程序 (ring0) 可以访问它。该标志通常称为“用户/主管位”。

问题:如果我想让ring0和ring3页都在同一个页表中,该怎么办?我可以为页表中的条目设置适当的权限,但是相应的页目录条目应该指定什么权限?

例如:我设置了第一个页表(虚拟地址范围:0x00000000 - 0x003FFFFF)来映射物理地址范围0x00000000 - 0x003FFFFF(这涵盖了4兆字节)。第一个兆字节 (0x00000000 - 0x000FFFFF) 只能由管理员 (ring0) 访问,因此,“用户/管理员位”被清除。以下 3 MB (0x00100000 - 0x003FFFFF) 应可由用户 (ring3) 和管理员 (ring0) 访问,因此,设置了“用户/管理员位”。

该页表由第一个页目录项指向。但是该页目录条目的“用户/管理员位”应该被清除(仅管理员)还是设置(用户和管理员)?有什么区别?

最佳答案

CPU 将使用页目录条目 (PDE) 或页表条目 (PTE) 中最严格的权限。如果 PDE 具有管理员权限,则无论各个 PTE 使用什么,它下面的所有页表都将具有管理员权限。如果 PDE 具有用户权限级别,则 PTE 的保护级别决定最终的权限级别。

此行为在 Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3A 中定义.

4.11.4 Combining Protection of Both Levels of Page Tables

For any one page, the protection attributes of its page-directory entry (first-levelpage table) may differ from those of its page-table entry (second-level page table).The processor checks the protection for a page in both its page-directory and thepage-table entries. Table 4-3 shows the protection provided by the possible combinations of protection attributes when the WP flag is clear.

表 4-3 显示为:

enter image description here

回答问题:如果您希望在特定 PDE 下混合具有用户和主管权限的页面,则将 PDE 设置为用户权限并相应地设置 PTE(用户或主管)。

关于memory - 如何正确设置页目录项的权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59948388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com