首页 > 代码库 > 【深入理解Linux内核】《第二章 内存寻址》笔记 (2014-06-28 12:38)

【深入理解Linux内核】《第二章 内存寻址》笔记 (2014-06-28 12:38)

2.1 内存地址

  • 逻辑地址:段+偏移
  • 线性地址(虚拟地址)
  • 物理地址

2.2硬件中的分段

2.2.1 段选择符和段寄存器

15                                                3  2  1   0
------------------------------------------------
|                                                    |TI |RPL  |
|         索引号                                  |    |       |
------------------------------------------------
TI = 表指示器

RPL = 请求者特权级

段寄存器的唯一目的是存放段选择符。这些段寄存器称为CS,SS,DS,ES,FS和GS。

 2.2.2段描述符

每个段由一个8字节的段描述符表示,它描述了段的特征。段描述符放在全局描述符表(GDT)或局部描述符表(LDT)中。

通常只定义一个GDT,而每个进程除了存放在GDT中的段之外如果还需要创建附加的段,就可以有自己的LDT。GDT在主存中的地址和大小存放在gdtr控制寄存器中,当前正在被使用的LDT地址和大小放在ldtr控制寄存器中。