x86实模式
x86实模式的内存模型是物理地址=段地址*16+偏移地址
x86保护模式
这是另外一种分段的内存模型.由于实模式下有20根地址线,在x86-32架构下有32位地址线,那么如何去使用和管理这4g的内存?并且现在机器都是多任务的,需要任务之间隔离内存访问。于是,x86-32的保护模式,采用了表格登记分配的方式。段先在全局的一张表格中登记.表格实际上是一个数组,每个元素8字节,里面保存的段的基地址和段的界限,基地址+界限就可以确定一个段
然后在访问内存时,段寄存器不再表示基地址,而表示在表格中的序号,通过序号查找到在内存中的区块.这样表示有很多好处,可以对段加权限标记,x86-32是有2位来表示段权限,总共有4个权限.cpu在访问时,**用sp的权限(当前代码段的权限)**表示当前cpu的权限,如果比要访问的段权限高,就可以访问,否则拒绝访问;也可以对16位程序保持兼容;也可以对任务实现内存隔离
一般把这个表格叫做GDT,cpu会有一个寄存器记录GDT的首地址
x64长模式
有2种子模式,纯的64位模式和兼容模式(kernel工作在64位,在返回应用时工作在32位)