【问题标题】:about GDT and processes关于 GDT 和流程
【发布时间】:2015-08-11 13:17:07
【问题描述】:

GDT 如何反映在进程的线性空间上(如果我理解正确,GDTR 包含页面和偏移量)。? 或这个问题的另一个版本: GDTR 对于每个进程都是唯一的。?

【问题讨论】:

    标签: c assembly operating-system protected-mode


    【解决方案1】:

    只有一个 GDTR 寄存器,它指向线性地址空间中的一个位置。它通常不会针对每个进程进行更改。相反,如果不同的进程需要不同的选择器,则更改 LDTR 寄存器。对于大多数现代操作系统,情况并非如此,所有进程都共享相同的选择器。

    这意味着 GDT 表存在于所有进程的虚拟地址空间中的相同位置。通常组成表格的页面都被标记,因此它们只能在主管模式下访问,因此用户模式代码无法触及它们。

    【讨论】:

    • 请注意,FS 或 GS​​ 用于线程本地的东西,因此不共享,实际上每个线程映射到不同的基地址。
    猜你喜欢
    • 2016-11-20
    • 2021-04-02
    • 2014-08-13
    • 1970-01-01
    • 2015-06-05
    • 2012-03-19
    • 2013-03-22
    • 2018-06-22
    • 2023-03-25
    相关资源
    最近更新 更多