这可能是偏离主题但我只是想知道我们是否有64 bit
Linux操作系统94GB
内存,我们有32 bit
编写的遗留应用程序,所以我的32位应用程序将使用94GB
内存还是仅限于4GB
?
如果我安装hugemem
或bigmem
内核,它会解决问题吗?
答案 0 :(得分:2)
根据定义,32位应用程序使用32位(虚拟)内存地址,这些内存限制为2 ^ 32(4GB)个可能的内存位置。实际上,由于Linux如何设置您的流程图(内核映射到另一个1GB或者内核),您可能在32位Linux下的32位应用程序中只获得2GB或3GB用户区内存。 2GB,具体取决于您的系统运行的内核和核心库的构建中指定的选项。在64位Linux上,进程内存的布局略有不同,因此您实际上可以获得不到4GB的内容(有关详细信息,请参阅here)。如果您需要更多内存,则需要编译为64位应用程序。