一个进程有一个页目录。所以以页为单位,页目录和 页表可以保证4G的 地址空间中的每页和 物理内存的映射。 每个进程都有自己的4G 地址空间,从 0x00000000-0xFFFFFFFF 。通过每个进程自己的一套页目录和 页表来实现。由于每个进程有自己的页目录和 页表,所以每个进程的 地址空间映射的 物理内存是不一样的。两个进程的同一个虚拟地址处(如果都有 物理内存映射)的值一般是不同的,因为他们往往对应不同的物理页。 在windows下4G 地址空间中低2G,0x00000000-0x7FFFFFFF 是用户地址空间,4G地址空间中高2G, 0x80000000-0xFFFFFFFF 是 系统地址空间。访问 系统地址空间需要程序有ring0的权限。而Linux对4G空间的划分不同与windows。linux将最高的1G 字节(从虚拟地址0xC0000000 到0xFFFFFFFF),供内核使用,称为“内核空间”。而将较低的3G 字节(从虚拟地址0x00000000 到0xBFFFFFFF),供各个进程使用,称为“用户空间”。 在LINUX系统下,0xC00000000-0XFFFFFFFF为系统空间,为所有的系统进程所共享,0X00000000-0XBFFFFFFF为用户空间。