0

Linuxカーネルを理解する

実行形式は、 、、およびのlinux_binfmt3 つのメソッドを本質的に提供するタイプ のオブジェクトによって記述されます。load_binaryload_shlibcore_dump

Linux では、ユーザーは独自のカスタム実行形式を登録できます。新しい形式を登録するには、ユーザーは /proc/sys/fs/binfmt_misc次の形式の文字列を binfmt_misc 特殊ファイルシステム (通常は にマウント)の登録ファイルに書き込みます。

:name:type:offset:string:mask:interpreter:flags

カーネルは、実行可能ファイルがカスタム形式であると判断すると、適切なインタープリター プログラムを開始します。インタプリタ プログラムはユーザー モードで実行され、そのパラメータとして実行可能ファイルのパス名を受け取り、計算を続行します。例として、Java プログラムを含む実行可能ファイルは、 などの Java 仮想マシンによって処理され/usr/lib/java/bin/javaます。

これについては言及していませんが、登録されたカスタム実行可能形式も type のオブジェクトによって記述されていますlinux_binfmtか?

load_binaryはいの場合、カスタム実行可能形式を登録するために、、、load_shlibおよびcore_dumpメソッドを明示的に提供する必要はありません。3 つのメソッドは、登録から暗黙的に作成されますか?

メソッドなし load_binaryで、対応するインタープリターを介して、登録された実行可能形式の実行可能ファイルを実行するためにカーネルが呼び出すメソッドは何ですか?

4

1 に答える 1