したがって、linker(私の場合は)実際の を作成している間に を にld追加することがわかります。Program HeadersRelocatable fileExecutable
次に、これらのヘッダーを使用して、実行時にプログラムをメモリにロードします。
まず、
ldこれらのヘッダーをどのように計算してファイルに追加しますか?そして
Program Headers、プログラムをメモリにロードするためだけに使用される場合 (私が間違っている場合は訂正してください)、実行可能ファイルごとに異なる数のProgram Headers.
たとえば、アセンブリで記述された単純な helloworld には2 つの Program headersがあります。
readelf -h helloworld
...
Number of program headers: 2
...
しかし、 にbashは11 個のプログラム ヘッダーがあります。
readelf -h /bin/bash
...
Number of program headers: 11
...