【发布时间】:2011-09-23 09:23:35
【问题描述】:
我想让一些应用程序在 64 位处理器(x86 xeon,8 核)上运行的 64 位操作系统中以 4 GB 地址空间运行。我知道有一个使用 -m32 选项进行编译的选项,但是目前我正在使用的计算机没有使用 -m32 编译所需的支持,所以我不能使用它,我也不能安装那台电脑上的任何东西,因为我没有任何权利。
现在我的问题是是否有可能将地址空间限制为 4 GB。请不要问我为什么要这样做,只要告诉我如果可能的话。谢谢。
【问题讨论】:
-
让我猜猜:你有一些你不能/不会接触的代码将指针存储在 int 句柄中?
-
不清楚的问题:1)你想限制你的程序只使用 0..4GB 的线性地址,还是 2)你想限制程序地址空间的总大小为 4GB,不管它放在哪里?
-
@zvrba,线性地址从 0 到 4GB。你认为 ulimit -v 就足够了吗?
-
@Luther。不完全是,但由于有点相似。
-
@MetallicPriest:嗯,ulimit -v/setrlimit(RLIMIT_AS) 限制了进程可以使用多少地址空间,但不能保证地址的数值会小于限制。