这可能是题外话,但我只想知道我们是否有 64 位
Linux 操作系统和 94GB
内存,我们是否有用 32 位编写的遗留应用程序
那么我的 32 位应用程序将使用 94GB
内存还是限制为 4GB
?
如果我安装 hugemem
或 bigmem
内核,它会解决问题吗?
最佳答案
根据定义,32 位应用程序使用 32 位(虚拟)内存地址,这些地址被限制为 2^32 (4GB) 个可能的内存位置。实际上,由于 Linux 设置进程映射的方式(内核映射到其他 1GB 或 2GB,取决于在您的系统运行的内核和核心库的构建中指定的选项)。在 64 位 Linux 上,进程内存布局略有不同,因此您实际上可以获得不到 4GB(有关更多信息,请参见 here)。如果您需要比这更多的内存,则需要编译为 64 位应用程序。
关于linux - 32 位应用程序对 64 位操作系统内存使用限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31966006/