【发布时间】:2020-05-07 22:20:30
【问题描述】:
在 Linux 上执行动态链接的可执行文件时,会调用动态链接器作为其解释器(在此 answer 中进行了描述)。如果我理解正确,运行:
$ ./dynamic_elf
将导致 Linux 执行:
/lib64/ld-linux.so.2 ./dynamic_elf
我很难理解 /proc/self/exe 的工作原理。按照上面的逻辑,运行:
$ /proc/self/exe
将导致 Linux 执行:
/lib64/ld-linux.so.2 /proc/self/exe
现在,当动态链接器尝试在/proc/self/exe 加载精灵时,它会不会指向动态链接器本身,因为ld-linux.so.2 现在是正在运行的可执行文件?
我知道 JustWorks 上面的命令,那我错过了什么?
动态链接器获得的是否超过了调用它的精灵的路径?
这里的语义和shebang(
#!)解释器有区别吗?
【问题讨论】:
标签: linux ld dynamic-linking procfs