したがって、linker
(私の場合は)実際の を作成している間に を にld
追加することがわかります。Program Headers
Relocatable file
Executable
次に、これらのヘッダーを使用して、実行時にプログラムをメモリにロードします。
まず、
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
...