所以我们知道linker(在我的情况下ld)Program Headers在Relocatable file创建实际的Executable.
然后这些标头用于在运行时将程序加载到内存中。
首先如何
ld计算这些头文件并将其添加到文件中?然后如果
Program Headers仅用于将程序加载到内存中(如果我错了,请纠正我),为什么不同的可执行文件有不同的数量Program Headers?
例如,用汇编语言编写的简单 helloworld 有2 个程序头:
readelf -h helloworld
...
Number of program headers: 2
...
但是bash有11 个程序头:
readelf -h /bin/bash
...
Number of program headers: 11
...