GDT、GDTR、LDT、LDTR

本文介绍了全局描述符表GDT、GDTR、局部描述符表LDT和LDTR在处理器中的作用。GDT用于存储段描述符,GDTR寄存器持有GDT的基地址。LDT是进程特定的描述符表,通过LDTR进行访问。段选择子结合GDTR和LDT提供段的访问权限。段描述符结构包含了段的界限和属性信息。

全局描述符表GDT(Global Descriptor Table):

在整个系统中,全局描述符表只有一张(一个处理器对应一个GDT),GDT可以被放在内存中的任意位置,但CPU必须知道GDT的入口,也就是基地址在哪。

作用:

根据GDT的名字就可以得出它是专门用来存描述符的,每个描述符都对应了一个段。

GDTR:

之前说了CPU必须直到GDT的基地址,所以寄存器GDTR就是用来干这件事的。它的结构如图,32位用来存基地址,16位用来存GDT表的界限。
这里写图片描述

段选择子:

GDTR寄存器可以取得GDT的基地址,但是如果想取得对应的描述符,就还需要偏移量,这里就引入了段选择子。它包含三个部分:描述符索引(index)、TI、请求特权级(RPL),其中描述符索引自然是刚才指的那个”偏移量”,它配合上GDT的基址就可以取得GDT表中相应的描述符,TI代表当前是GDT还是LDT(局部描述符表,这个会在后面说明),请求特权级代表了选择子的特权级,特权级有4个值(0、1、2、3),数字越大特权越小,关于特权级这方面的知识也有点混杂,我会在另篇博文中详细说明,这里只需要知道段选择子结构中有这个字段就行了。它的结构如图所示,是个16位的寄存器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值