1。在80386中的段寄存器(16位)存放的不是段的基地址,而是某个段的选择符(selector),因为16位的寄存器无法存放32位的段基地址,段基地址存放在描述符表(descriptor table)中。
2。控制寄存器:
CR0主要使用PG(31位,分页允许位)和PE(0位,保护允许位);
CR1未定义;
CR2页故障线性地址寄存器,保存最后一次出现缺页的全32位线性地址;
CR3页目录基址寄存器,保存页目录的物理地址,页目录总是存放在以4kb为单位的存储器边界上,因此,其地址的低12位总为0。
3.虚拟地址,线性地址,物理地址转换
4.linux中的分段与分页机制
由于绝大多数的硬件平台不支持分段机制,所以为了更好的可移植性,不使用分段机制,而只使用分页机制,所以段的基地址都为0,段的界限为4GB,这样偏移量就是线性地址。由于有代码段,数据段,还有特权的区别,linux创建了4个段描述符--特权级为0的代码段和数据段,特权级为3的代码段和数据段。