扶苏墓考古:操作系统关键技术之平面地址空间

来源:百度文库 编辑:中财网 时间:2024/04/24 10:47:15
在看操作系统方面的书时,发现平面地址空间是个非常让人费解的名词。
那么我就来解释下什么是平面地址。

x86提供了分段和分页两种内存管理方式,严格的说是在分段之上实现分页。其实分段是没有必要的,只是x86为了兼容而已。mips这些cpu就只有分页。
怎么避开分段机制呢?其实windows和linux都大致相同,让cs,ds,ss这些段寄存器指向的描述符都指向0x0000000这个地址,段限长都为4G.
这样做之后,段偏移实际上就是线性地址。
什么是线性地址,大家熟悉getprocaddress这个函数吧,它获得的地址其实就是逻辑地址中的段内偏移,不过它的段描述符指向基地址0x0000000这个地址,实际上结果就是和线性地址数值完全相符。
这样做了之后,我们就不必操心段寄存器了。整个空间看起来就是4G很平整了。