Linuxカーネルから共有ライブラリを接続する

Linuxカーネルから共有ライブラリを接続する

Linuxカーネルのセキュリティモジュール(特にセキュリティ/IMA)を修正したいと思います。 (このモジュールはカーネルでコンパイルする必要があります)

このモジュールでは、共有ライブラリ(.soファイル)の関数を使用する必要があります。

しかし、どのようにコンパイルするのかわかりません。

共有ライブラリファイルをLinuxカーネルに入れる方法はありますか?

方法がない場合は、理由を教えてもらえますか?

ベストアンサー1

実際にはできません(共有ライブラリをカーネルまたは一部のカーネルモジュールにリンクします)。カーネルは概念的に別々のプログラムです(したがって、malloc共有fprintfライブラリで最もよく使用されるような低レベルの標準C機能についての知識はありません)。カーネルモジュール(*.koファイル)は、特別なカーネルコードによって特別に構築されロードされます。

また、ユーザー空間コード(ライブラリを含む)は次のものに基づいています。システムコール(に記載システムコール(2))、カーネルコードでは使用できません(カーネルは次のようなためです)。供給システムコールプロセス走るユーザーモード特定のマシンによって)。

ユーザー空間ヘルパープログラムがカーネル(カーネルモジュールなど)と通信することを検討できます。ウェブリンク(7)。おそらく一度見てくださいシステム

あなたはおそらくもっと読む必要がありますオペレーティングシステムそして読んでください高度なLinuxプログラミングユーザードメインの側面を理解します。

しかし、経験上、システムに追加するカーネルコードの量を制限する必要があります(そしてユーザースペースで作業することを好む)。

おすすめ記事