在 32 位 x86 系统上,总虚拟地址空间的理论最大值为 4 GB。默认情况下,Windows 将此地址空间的一半(4 GB 虚拟地址空间的下半部分,从 x00000000 到 x7FFFFFFF)分配给进程作为它们唯一的私有存储,并将另一半(上半部分,地址 x80000000 到 xFFFFFFFF)用于它自己受保护的操作系统内存利用率。
64 位 Windows 为进程提供了更大的地址空间:IA-64 系统上为 7152 GB,x64 系统上为 8192 GB。
我对上述报价有几个问题:
- 为什么为进程分配低地址空间?
- “...使用另一半(上半部分,地址 x80000000 到 xFFFFFFFF)用于其自身受保护的操作系统内存利用率。” - 为什么操作系统不使用物理地址作为系统地址空间,而是使用虚拟地址?
- 为什么在 x64 系统上 8192GB 用于进程和系统?与 32 位操作系统相反,不是所有的地址空间都被使用?
谢谢