操作系统开发--GDT(全局描述符表)详解

我们知道CPU存在实模式和保护模式的操作模式当计算机启动后我们进入的是实模式而实模式的内存寻址方式是通过段值 × 16 + 偏移 = 物理地址这样只能具有1MB的寻址能力如果想要更为强大的寻址能力就必须通过一定机制进入具有更强大寻址能力的保护模式

在保护模式下不光提供了强大的寻址能力还提供了内存保护能够防止用户程序改写内核代码并为操作系统提供了更好的硬件保障在该模式下有了32位的寄存器一个寄存器就可以表示4G的地址空间那段值加偏移这样的寻址方式是不是就不用了呢当然不会在这里而是用了另外的方式来表示

采用的方式就是引入了数据结构GDT,即全局描述符表不知道有多少人听过说简单点,GDT就是一个数组每一个元素就是一个描述符多个组合一起就构成了全局描述符表而每一个描述符共64包含了以下的这些信息段基址段长度属性原来的段寄存器比如CS,DS等存的值则不是段偏移了而是GDT的索引通过该索引就可以找到对应的描述符现在是不是明白了呢接下来我们再详细的解释一下一个描述符中各个位的意义吧

 

上面说过段寄存器中保存的是索引那么段寄存器中的数据又是什么样呢

好了这下是不是明白了呢看完这些原来GDT的概念是这么的简单


如果此篇文章对您有所帮助,请多多支持哦!您的支持是我一直写下去的动力!


  • 11
    点赞
  • 31
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

大象软件

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值