2017-02-08 8 views
2

私はあなたがそうすべきではないことを知っています。それは悪い習慣などですが、Cユーザー空間ライブラリをカーネルモジュールに含めることは可能ですか?Linuxカーネルのユーザー空間ライブラリmodal - テスト用

私は自分の目的のためにいくつかのことをテストするためにモジュールを書いています。誰もそれを公開したり使用したりすることはありません。私はちょうどよい習慣について心配しないで速い刻み目がほしいです。

答えて

0

ACライブラリーは、最初の関数のすべてのコレクションのある

おかげで(特に私は<stdint.h>に含まGCCが提供する__int128データ型を使用したい)、USER-」の間には本物の区別はありません「スペース」および「カーネルスペース」と呼ばれます。しかし、動的共有ライブラリを使用することは、カーネル空間では可能ではありません。これには、適切な動的ローダーがないためです。実際、カーネルモジュールのロード自体は動的なロードですが、モジュール自体が別の共有ライブラリをロードすることはできません。

しかし、スタティックライブラリ(.a)のコードをカーネルモジュールにリンクすることは可能です。このコードは、カーネルモジュール自体の不可欠な部分になり、カーネル空間(特にlibcのシンボル)には存在しない外部シンボルに依存しない限り、ユーザー空間のようにカーネル空間で動作するはずです。

関連する問題