简短的答案是:是的。 更详细的答案是:这取决于情况。硬件支持页面重新映射,这基本上为您的程序提供了一个窗口,可以将其放置在较大的内存区域中的一些页面上。 但是,该窗口应由程序本身管理,并且不会得到内存管理器的支持。有一些程序的例子可以像Windows上的SQL那样完成这个功能。 然而,通常这是一个坏主意,程序应该限制自己为4GB或迁移到64位 :)
通常情况下,您的地址空间被限制在2GB内,其中必须包括所有分配及其开销、碎片等,以及内存映射文件(包括您的程序和使用的DLL)。这实际上将您限制在1.5GB内。通过特殊配置(例如/3GB),您可以为应用程序提供超过2GB的可用空间,但这样做会占用内核空间,导致文件缓存、句柄容量等方面的成本。在Win32上,您可以使用PAE支持来使用更多空间,但它并不透明,您需要自行管理。