在内存寻址(一)中主要介绍了常规内存寻址的机制
这一篇总结一下Linux下的内存寻址。
Linux更喜欢分页
1.分段可以把逻辑地址分成不同的线性地址,而分页则可以把相同的线性地址映射到不同的页框中。Linux为了能够使所有进程“”看到“”相同的线性地址而选择非常有限地使用分段机制,这样简化了内存管理的难度。
2.Linux的设计目标是能够移植到多种流行的平台,而使用RISC的处理器对段机制支持不佳。
Linux的分段
Linux只有在80x86处理器上才使用分段,由于Linux下所有进程使用同样的逻辑地址空间,那么段的总数就可以被限定在很小的数目,所有的段放在GDT中也变得容易。Linux用到如下的段:
- 内核代码段
- 内核数据段
- 用户态下由所有进程共享的用户代码段(由于是用户态,描述符特权等级DPL应为3)
这里强调一下,DPL虽然有2位,特权等级可以分为0-3,0为最高级3为最低级,然而大多数的OS(包括LINUX)只使用最高级0和最低级3。
- 用户态下由所有进程共享的用户数据段(和上一段仅TYPE域不同)
- 任务状态段</