保护模式学习笔记:LDT
2016-07-02 11:15
239 查看
今天继续学习保护模式,我觉得LDT和GDT的关系比较大,就先将LDT的相关学习笔记放上来。
①LDT,Local Descriptor Table,局部描述符表,是保护模式下存储器寻址的一种数据表,它包含了与某个任务相关联的段描述符,在设计操作系统时,通常每个任务有一个独立的LDT。LDT提供了将一任务的代码段、数据段与操作系统的其余部分相隔离的机制。与GDT一样,每个LDT里面的单独一项也是一个8字节的段描述符。
②LDTR,Local Descriptor Table Register,局部描述符表寄存器,与GDTR不同的是,这个寄存器保存的并不是当前任务的LDT基址和限长,而是GDT的一个段选择子,而这个段选择子指向的是GDT中的一个段选择符(你没看错,LDTR保存的的确是一个全局描述符表的段选择子),这个段选择符最终才指向当前任务的LDT。由于段选择子的长度是16位,所以LDTR是一个16位的寄存器,具体图示如下:
![](http://www.techbulo.com/wp-content/uploads/2013/12/LDT.jpg)
图片来源:http://www.techbulo.com/708.html
关于LDT的相关知识点不多,主要都是理解了GDT、段选择符、段选择子这三个重要内容后的基础上再扩展一下的东西,之后我会把中断描述符表的相关笔记放上来。
①LDT,Local Descriptor Table,局部描述符表,是保护模式下存储器寻址的一种数据表,它包含了与某个任务相关联的段描述符,在设计操作系统时,通常每个任务有一个独立的LDT。LDT提供了将一任务的代码段、数据段与操作系统的其余部分相隔离的机制。与GDT一样,每个LDT里面的单独一项也是一个8字节的段描述符。
②LDTR,Local Descriptor Table Register,局部描述符表寄存器,与GDTR不同的是,这个寄存器保存的并不是当前任务的LDT基址和限长,而是GDT的一个段选择子,而这个段选择子指向的是GDT中的一个段选择符(你没看错,LDTR保存的的确是一个全局描述符表的段选择子),这个段选择符最终才指向当前任务的LDT。由于段选择子的长度是16位,所以LDTR是一个16位的寄存器,具体图示如下:
![](http://www.techbulo.com/wp-content/uploads/2013/12/LDT.jpg)
图片来源:http://www.techbulo.com/708.html
关于LDT的相关知识点不多,主要都是理解了GDT、段选择符、段选择子这三个重要内容后的基础上再扩展一下的东西,之后我会把中断描述符表的相关笔记放上来。
相关文章推荐
- [Oracle] Data Guard 之 三种保护模式介绍
- CPU三种工作方式:实模式,保护模式和虚拟8086模式
- 自己动手写操作系统——(3)保护模式的“问号”
- ActiveX技巧:如何轻易的在IE保护模式下访问文件系统
- 《一个操作系统的实现》——pmtest1.asm详解
- 实模式和保护模式
- 面对IE保护模式的开发者生存之道
- CPU模式学习总结
- Linux保护模式之-CPL、RPL、DPL
- 实模式
- 一致与非一致代码段
- LDT自定义启动模拟器
- 《一个操作系统的实现》读书笔记--第三章--保护模式
- 《一个操作系统的实现》读书笔记--第三章--“实模式--保护模式--实模式”转换过程
- 《一个操作系统的实现》读书笔记--第三章--堆栈段的工作方式
- 实模式和保护模式
- Linux中mprotect()函数的用法
- Windows程序设计学习笔记(一)Windows内存管理初步
- 一个操作系统的实现(10)-中断和异常的补充说明
- GDT,GDTR,LDT,LDTR的学习