【发布时间】:2015-08-11 13:17:07
【问题描述】:
GDT 如何反映在进程的线性空间上(如果我理解正确,GDTR 包含页面和偏移量)。? 或这个问题的另一个版本: GDTR 对于每个进程都是唯一的。?
【问题讨论】:
标签: c assembly operating-system protected-mode
GDT 如何反映在进程的线性空间上(如果我理解正确,GDTR 包含页面和偏移量)。? 或这个问题的另一个版本: GDTR 对于每个进程都是唯一的。?
【问题讨论】:
标签: c assembly operating-system protected-mode
只有一个 GDTR 寄存器,它指向线性地址空间中的一个位置。它通常不会针对每个进程进行更改。相反,如果不同的进程需要不同的选择器,则更改 LDTR 寄存器。对于大多数现代操作系统,情况并非如此,所有进程都共享相同的选择器。
这意味着 GDT 表存在于所有进程的虚拟地址空间中的相同位置。通常组成表格的页面都被标记,因此它们只能在主管模式下访问,因此用户模式代码无法触及它们。
【讨论】: