1.中断描述符表(IDT),将每个异常或中断向量分别与它们的处理过程联系起来。与GDT和LDT类似,IDT也是由8字节长度的描述符组成。IDT空描述符的存在标志位必须是0。IDT表可以驻留在线性地址空间的任何地方,处理器使用IDTR寄存器来定位IDT表的位置。
LIDT指令可以把内存中的限长值和基地址操作数加载到IDTR寄存器中,该指令仅能由当前特权级CPL是0的代码执行,通常被用于创建...
分类:
其他好文 时间:
2014-05-11 20:12:21
阅读次数:
310
这部分只要介绍下虚拟化技术中的内存虚拟化和IO虚拟化两个部分内存虚拟化:上图中的做伴部分是正常情况下内存的使用情况,线性地址到物理地址的一个转换,通常应用程序使用的内存地址是线性地址,需要通过MMU地址转换的一个硬件来实现线性地址到物理地址的一个转换。上图的有半..
分类:
其他好文 时间:
2014-05-09 21:30:18
阅读次数:
415
在实模式下寻址的时候,”段寄存器+偏移地址”进过转换计算以后得到的地址是“物理地址”,也就是在物理内存中的实际地址,而在保护模式下,“段选择器+偏移地址”转换后的地址被称为“线性地址”而不是“物理地址”,那么线性地址就是物理地址吗?
答案可能是,也可能不是,这取决于80386的内存分页机制是否被使用。
为什么有内存分页机制?
我们回顾一下,单任务的DOS系统中,一个应用程序可以使用所有的空闲...
分类:
其他好文 时间:
2014-05-03 20:56:39
阅读次数:
368
一开始由这段代码引发的纠结
get_base(current->ldt[1])
下面是各个相关的代码,摘自不同的header files。。。
current是指向当前task的指针
struct desc_struct ldt[3];
struct desc_struct {
unsigned long a,b;
} ;
#define _get_...
分类:
系统相关 时间:
2014-04-29 13:42:20
阅读次数:
546