社区
Linux_Kernel
帖子详情
求教一个 GDT 和 LDT 关系的问题
Q3277631
2012-04-23 06:51:21
假如用a:b这个逻辑地址,
当T1=1时,LDTR就可以当成段选择符,先由GDTR找到GDT表,
然后加上LDTR的偏移值,找到LDT描述符,再由里面的基值加上a的偏移值(即LDT段基址+a段选择符),
最后找到LDT中的局部段描述符,加上b的偏移值来得到最终的线性地址呢?
=3=抱歉,有点绕,,但这就是我现在所能了解的,,,求救高人,,没积分了,,,
...全文
140
7
打赏
收藏
求教一个 GDT 和 LDT 关系的问题
假如用a:b这个逻辑地址, 当T1=1时,LDTR就可以当成段选择符,先由GDTR找到GDT表, 然后加上LDTR的偏移值,找到LDT描述符,再由里面的基值加上a的偏移值(即LDT段基址+a段选择符), 最后找到LDT中的局部段描述符,加上b的偏移值来得到最终的线性地址呢? =3=抱歉,有点绕,,但这就是我现在所能了解的,,,求救高人,,没积分了,,,
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
moon_cat
2012-04-27
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
很简单了,线性地址的高十位<< 2是页目录索引,加上cr3就是gdt 了,21_12位再取出的便为页面地址,低位是偏移
[/Quote]
晕。GDT怎么就成了这个了,兄台你搞错了木有?你知道GDT是什么么?
moon_cat
2012-04-27
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
Linux内核木有使用LDT
[/Quote]
别乱讲好吧,linux 0.11内核每个进程3个LDT,LDT[0] 为空,LDT[1]是CODE,LDT[2]是DATA
hyx365593317
2012-04-26
打赏
举报
回复
很简单了,线性地址的高十位<< 2是页目录索引,加上cr3就是gdt 了,21_12位再取出的便为页面地址,低位是偏移
拓跋野
2012-04-26
打赏
举报
回复
Linux内核木有使用LDT
moon_cat
2012-04-25
打赏
举报
回复
形象的比喻是这么的,GDT是内核的‘GDT’,LDT是进程的‘GDT’,但是LDT的入口在GDT登记,LLDT时,要是是LDT,那么先去GDT找到LDT(s)的索引,然后顺着索引,找到LDT实体,然后就加载啦....,你滴明白的干活?
w456201
2012-04-23
打赏
举报
回复
GDT中应该是LDT的段描述符吧,是用a段选择符+GDTR找到的吧,但这样LDTR什么时候用呢=3=我也有点纠结了,,,
Q3277631
2012-04-23
打赏
举报
回复
是不是LDT也要先寻找GDT
操作系统篇-分段机制与
GDT
、
LDT
.docx
操作系统篇-分段机制与
GDT
、
LDT
.docx
GDT
R
GDT
LDT
R
LDT
寄存器说明
详细描述了X86平台四个重要寄存器的使用方式
用不到200行代码设计x86保护模式下的操作系统
本课程为学习Linux 0.11内核源码,以及《设计自己的x86 Linux操作系统》课程的前置课程。课程通过不到200行代码(其中汇编不到100行),演示了如何使用80386的硬件机制来创建
一个
32位简单的双任务切换的超小型操作系统。课程重点讲解80386保护模式下的编程,涉及的内容包括:1、计算机启动流程的介绍2、实模式和保护模式区别,进入保护模式下的方法3、
GDT
/IDT/
LDT
表介绍以及使用方法4、利用TSS来实现任务的切换5、利用8253定时器中断实现任务下下文切换6、利用调用门增加系统调用接口。学习本课程只需要你有8086汇编的基础(简单用过即可,不需要精通,我也不精通),熟悉C语言编程即可。在学习完本课程后,将为分析Linux 0.11源码、设计自己的操作系统打下坚实的硬件知识储备。可以点击我的课程主页,了解更多相关课程。
利用
LDT
和
GDT
的检测方法
利用
LDT
和
GDT
的检测方法
Orange’s:
一个
操作系统的实现 Descriptor 3宏详解
补充:关于
GDT
/
LDT
、段选择子和段描述符的解释
GDT
/
LDT
:
GDT
/
LDT
是段描述符表,里面定义了每个段的段描述符的界限和属性,而段描述符的基址是在代码段中初始化的。 其中,
LDT
是局部描述符表,
LDT
在
GDT
中也有段描述符,
LDT
还有其对应的选择子,除此以外,
LDT
的功能和
GDT
一样。 段选择子:段选择子是用来寻址段描述符的,即段描述符定义在
GDT
中,由段选择子将其赋值给段寄存器。如果TI被置位为1,那么系统将从当前
LDT
中寻找相应描述符,TI为0就从
GDT
中寻找相应描述符。 这是段选择子的结构: 段描述符:定义了段的基址,界限和属性
Linux_Kernel
4,441
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章