64位操作系统内存使用限制的32位应用程序?

时间:2015-08-12 13:00:28

标签: linux memory linux-kernel 32bit-64bit

这可能是偏离主题但我只是想知道我们是否有64 bit Linux操作系统94GB内存,我们有32 bit编写的遗留应用程序,所以我的32位应用程序将使用94GB内存还是仅限于4GB

如果我安装hugemembigmem内核,它会解决问题吗?

1 个答案:

答案 0 :(得分:2)

根据定义,32位应用程序使用32位(虚拟)内存地址,这些内存限制为2 ^ 32(4GB)个可能的内存位置。实际上,由于Linux如何设置您的流程图(内核映射到另一个1GB或者内核),您可能在32位Linux下的32位应用程序中只获得2GB或3GB用户区内存。 2GB,具体取决于您的系统运行的内核和核心库的构建中指定的选项。在64位Linux上,进程内存的布局略有不同,因此您实际上可以获得不到4GB的内容(有关详细信息,请参阅here)。如果您需要更多内存,则需要编译为64位应用程序。