【发布时间】:2014-06-03 13:59:41
【问题描述】:
假设我有两个相同的 10MB 二进制可执行文件,A 和 B。
如果我有足够的可用内存并运行./A,我的理解是A 将被加载到内存中并从那里运行。这将需要大约 10MB 的 RAM 才能完成。
如果我有足够的可用内存,创建一个 RAMDisk,将 B 复制到 RAMDisk,然后从 RAMDisk 运行 ./B,我的理解是 B 将被(重新)加载到内存中并从那里。这将需要大约 10MB 的 RAM 用于可执行文件,加上 RAMDisk 正在使用的内存。
这是正确的吗? RAMDisk 是否足够聪明,可以说“哦,我已经在内存中有二进制可执行文件,让我们就地运行它?”即使是这样,加载程序不是必须施展魔法来运行它吗?
我正在使用 QNX 并运行 ELF without COFF 二进制文件,但我希望得到任何 *Nix 系统的答案。
【问题讨论】: