指定 ELF 的装载位置

在 Linux 下,可指定 ELF 的装载位置,包括可执行程序和共享库。这在一定程度上给了程序员控制进程空间地址分配的能力。

直接编译并运行,其内存地址映射如下:

编译时通过 linker 分别指定装载位置,观察运行时的内存地址映射:

可以看到,可执行程序 a.out 和 共享库 liba.so 均按指定的位置被装载。