前言
根据《Linux内核完全注释》做的笔记
目的是理清下述关键词的含义及相互联系,最终彻底理解分段机制与分页机制
- 分段机制
- 段描述符
- 段选择符
- 段寄存器
- GDT 全局描述符表
- LDT 局部描述符表
- 分页机制
- 页表
- TLB 转换查找缓冲区
- 逻辑地址
- 线性地址
- 物理地址
概念简述
段描述符
- 记录段信息,包括权限、基地址等
段选择符
- 理解为索引,从描述符表中定位到唯一的段描述符
- 因此,段寄存器只需要存段选择符,就能根据段寄存器找到段描述符从而获得段基址
段基址寄存器
- 存放段基址
- 如 LDTR,GDTR
段寄存器
- 存放段选择子
- 但实际上,为了省去根据段选择子寻找段基址这一步,段基址会作为隐藏字段存储于段寄存器中
- CS
- 隐藏部分类似缓存,需要考虑缓存不一致。因此当描述符表发生变化,需要将更新内容同步至段寄存器中
GDT 全局描述符表
- 理解成存放描述符的数组
- 该表地址由GDTR寄存器指定
LDT 局部描述符表
- 局部描述符的数组
- 地址由LDTR寄存器