https://linux-audit.com/elf-binaries-on-linux-understanding-and-analytic/ 説明する
タイプフィールドは、ファイルがどの用途に使用されるかを示します。いくつかの一般的なファイル形式があります。
CORE (value 4) DYN (Shared object file), for libraries (value 3) EXEC (Executable file), for binaries (value 2) REL (Relocatable file), before linked into an executable file (value 1)
https://unix.stackexchange.com/a/476157/674カーネルモジュールがRELであることを示します。なぜDYNの代わりにRELを使用するのですか?
DYNとRELの違いは何ですか?
ありがとうございます。
ベストアンサー1
バラよりシステムV ABI、ELF形式の仕様が含まれています。それは言う
さまざまなターゲットファイルの再配置エントリは、メンバーを少し異なるように解釈します
r_offset
。
再配置可能ファイルは
r_offset
セクションオフセットを保存します。つまり、再配置セクション自体は、ファイルの他のセクションを変更する方法を説明します。再配置オフセットは、2番目のセクション内の保存場所を指定します。実行ファイルと共有オブジェクトに
r_offset
仮想アドレスを保存します。これらのファイルの再配置エントリを動的リンカーにさらに便利にするために、セクションオフセット(ファイルの解釈)は仮想アドレス(メモリの解釈)に置き換えられます。
再配置可能ファイルはまだ完全に再配置可能ですが、共有オブジェクトは接続プロセスを続行し、ほとんど再配置されました。共有オブジェクトは、そのコードが位置に依存しない場合にのみ再配置可能です(例えばGCCのオプションとして-fPIC
構築されました)。
カーネルモジュールは位置に依存せず、再配置可能である必要があるため、再配置可能なファイルとして提供されます。