能力值:
( LV4,RANK:50 )
|
-
-
2 楼
GDT的短地址是在GDTR指定的GDT表里.
(我猜是不经过MMU转换的物理地址, 没什么根据)
但是一般现在用的都是flat模式吧? 段的起始值都是0才对.
另外即使进程间使用不同的列表, 也可以将同样的地址映射到同样的地方.
比如Linux的内核就映射在0xc0000000上.
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
[QUOTE=谷月轩;1370262]GDT的短地址是在GDTR指定的GDT表里
?????
自己指向自己????
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
不是自己指向自己的.
gdtr寄存器不是指向GDT表吗?
表中有gdt项啊.
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
不懂,gdtr指向GDT,GDT中有GDT描述符?晕!!
我只知道GDT中有LDT描述符。
现在的问题是GDTR中是物理地址还是线性地址,如是线性地址是怎样定位GDT的。
|
能力值:
( LV8,RANK:130 )
|
-
-
6 楼
肯定是线性地址啊,假设gdt的线性地址是0xaabbccdd 每个进程的cr3通过分页机制映射0xaabbccdd到同一个物理地址不就行了吗
|
能力值:
( LV4,RANK:50 )
|
-
-
7 楼
楼下也已经说了.
不同的页表可以映射一部分地址到相同的地方.
比如: 程序运行在 0x00000000, 系统内存统一映射到0xc0000000
而GDT表的地址就在系统内存里.
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
有一本新出的书叫windows内核设计思想上面有
|
|
|