当前位置: 首页 > 工具软件 > LDT > 使用案例 >

GDT和LDT的区别

张华池
2023-12-01

虚拟地址空间被分割成大小相等的两半;
一半由GDT来映射变换到线性地址,另一半则由LDT来映射。

整个虚拟地址空间共含有2^14个段:一半空间(即2^13个段)是由GDT映射的全局虚拟地址空间,另一半是由LDT映射的局部虚拟地址空间。

通过指定一个描述符表,GDT或LDT,以及表中描述符号,就可以定位一个描述符。

当发生任务切换时,LDT会更换成新任务的LDT,但是GDT并不会改变。
GDT所映射的一半虚拟地址空间是系统中所有任务共有的,LDT所映射的另一半则在任务切换时被改变。
系统中所有任务共享的段由GDT来映射。


 《Linux内核完全剖析》p92;

这应该是说,80386以上支持把4GB地址空间划分为2^14个段;

2^14的一半是2^13,这是令人迷惑的,一不小心弄成2^14的一半是2^7;
2^14是16384,2^13是8192;

这就对了;Windows对虚拟地址空间的管理如下;一半是进程空间,一半是系统空间;

32 位Windows的默认虚拟地址空间
下表显示了每个分区的默认内存范围。

内存范围    用法
通过 0x7FFFFFFF) 低 2GB (0x00000000    进程使用。
高 2GB (0x80000000 到 0xFFFFFFFF)    系统使用。

https://learn.microsoft.com/zh-cn/windows/win32/memory/virtual-address-space?redirectedfrom=MSDN

 类似资料: