在RAMDisk上执行二进制文件会将可执行文件重新加载到内存中吗?

时间:2014-06-03 13:59:42

标签: linux memory qnx ramdisk

我们说我有两份相同的10MB二进制可执行文件,AB

如果我有足够的可用内存并运行./A,我的理解是A将被加载到内存中并从那里运行。这将需要大约10MB的RAM来完成。

如果我有足够的可用内存,请创建一个RAMDisk,将B复制到RAMDisk,然后从RAMDisk运行./B,我的理解是B将是(重新)加载到内存并从那里运行。这将为可执行文件带来大约10MB的RAM,以及RAMDisk使用的内存。

这是对的吗? RAMDisk是否足够聪明,可以说"哦,我已经在内存中有二进制可执行文件,让我们只运行它?"即使是这样,装载机也不必为了运行它而发挥其魔力吗?

我正在使用QNX并运行ELF without COFF二进制文件,但我很感激任何* Nix系统的答案。

1 个答案:

答案 0 :(得分:1)

我真的希望它被加载,典型的ELF二进制文件实际上不是" execute in place"格式。

您需要做的事情,例如重新定位任何与位置无关的代码,当然还有动态库加载,RAM磁盘上的文件系统一无所知。