win32 程序预设加载于非常低的位置(4mb)。除非你真的了解分页动作,否则这样的概念有点不协调。怎么能够有一个以上的程序加载到同一个地址呢?答案是:它们共享了相同的线性地址,但却不是相同的实际地址。一般而言,行程中的线性地址并不会映射到相同数值的实际地址。由于分页运算的关系,每一个行程可以认为自己拥有的是4mb~2gb 整个空间。它无法看到其它行程的内存,其它行程也无法看到它 -- 即令彼此其实享用同一个线性地址。分页「魔术」使它们在实际上有所区别。
win32 程序预设加载于非常低的位置(4mb)。除非你真的了解分页动作,否则这样的概念有点不协调。怎么能够有一个以上的程序加载到同一个地址呢?答案是:它们共享了相同的线性地址,但却不是相同的实际地址。一般而言,行程中的线性地址并不会映射到相同数值的实际地址。由于分页运算的关系,每一个行程可以认为自己拥有的是4mb~2gb 整个空间。它无法看到其它行程的内存,其它行程也无法看到它 -- 即令彼此其实享用同一个线性地址。分页「魔术」使它们在实际上有所区别。