这篇 MSDN 文章列出了当前 Windows 版本的虚拟地址空间限制。
我注意到,对于 32 位系统,地址空间分为 2 GB 用户空间和 2 GB 内核空间,这是有道理的。同样,在 amd64 系统上(大概是 44 位)地址空间分为 8 TB 用户空间和 8 TB 内核空间。
但是 ia64 有 7 TB 的用户空间。这是任意限制还是因为系统使用 9 TB 作为内核空间,或者为什么会这样?
答案1
Mark Russinovich 在这里解释道:http://blogs.technet.com/b/markrussinovich/archive/2008/11/17/3155406.aspx
事实证明,差异集中在 Windows 特定功能上。对于 IA64,8TB 内存空间的前 1TB 是为 wow64 映射保留的。Wow64 是允许在 64 位系统上运行 32 位代码的功能。X64-64(又名 amd64)没有此功能的原因是它与 ISA 兼容,因此只需要正确的库即可运行。