您的位置:首页 > 运维架构 > Linux

linux中的分段

2015-08-18 22:09 483 查看
linux中的地址有三种:逻辑地址、线性地址和物理地址。

程序执行时地址由逻辑地址->线性地址->物理地址。

逻辑地址48bit:段选择符(16bit) + 段内偏移(32bit)

段选择符存储的是段描述符的相关信息,包括:在GDT中还是在LDT中,在短描述符表中的下标,特权等级。

逻辑地址在向线性地址转换时,先确定段描述符是在GDT还是在LDT中,然后从相应的寄存在中取出描述符表的地址,描述符表地址 + 下标 * 8就得到了对应描述符的地址(之所以乘以8是因为描述符是以8个字节为单位的)。找到描述符地址后,将描述符中地址的base + 段选择符中的段内偏移就得到了线性地址。

linux中描述符中的base地址都为0,所以linux的线性地址和逻辑地址是一致的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: