假设我有两个相同的 10MB 二进制可执行文件副本,A
并且B
.
如果我有足够的可用内存并运行./A
,我的理解是A
它将被加载到内存中并从那里运行。这将需要大约 10MB 的 RAM 才能完成。
如果我有足够的可用内存,创建一个 RAMDisk,复制B
到 RAMDisk,然后./B
从 RAMDisk 运行,我的理解是B
它将被(重新)加载到内存中并从那里运行。这将需要大约 10MB 的 RAM 用于可执行文件,加上 RAMDisk 正在使用的内存。
这个对吗?RAMDisk 是否足够聪明,可以说“哦,我已经在内存中有二进制可执行文件,让我们就地运行它?” 即使是这样,装载机不是必须施展魔法来运行它吗?
我正在使用 QNX 并在没有 COFF 二进制文件的情况下运行 ELF,但我希望得到任何 *Nix 系统的答案。