/lib/module/$(uname -r) と /sys/module の違い

/lib/module/$(uname -r) と /sys/module の違い

質問が簡単すぎた場合はお詫び申し上げます。ところで、LinuxシステムモジュールとLinuxカーネルモジュールの間に違いがあるかどうか尋ねたいと思います。違いがある場合、どちらもどこにありますか? /lib/module/$(uname -r) はカーネルモジュールを表示し、 /sys/module/ はシステムモジュールを表示しますか?

答え1

/lib/module/$(uname -r)ディスクのディレクトリです。これにはファイルが含まれており、そのほとんど(*.ko)はモジュールファイルです。つまり、カーネルモジュールコードを含むファイルです。原則として、このディレクトリ(およびサブディレクトリ)のファイルには、実行中のカーネルにロードできるモジュールが含まれています。

/sys/moduleカーネルの内部構造を公開する仮想ファイルシステムのディレクトリ。このディレクトリのファイルにアクセスすると、ディスク階層に入らず、一部の内部カーネルデータ構造のみを表示するカーネルの関数が呼び出されます。の各エントリは/sys/module実行中のカーネルのコンポーネントに対応し、コードはメモリにロードされアクティブになります。これには、ロードされたすべてのモジュールだけでなく、モジュールにロードできますが、カーネルがコンパイルされたときにカーネルに直接ビルドされるコンポーネントも含まれます。

/lib/module/$(uname -r)アイテムに対応しないファイルを含めるのが/sys/module一般的です。これは、コンピュータにない一部のハードウェア(またはカーネルによって管理されている他のもの)のドライバです。コンポーネントがカーネルにビルドされると、そのファイルなしでエントリが/sys/module表示されます(/lib/module/$(uname -r)これはこれを通知する方法)、またはモジュールが別の場所にあるファイルから手動でロードされた(または現在削除されている)かどうか。

システムがルートファイルシステムを別の場所(ネットワークやRAMディスクなど)に保存している場合、ディスク以外の場所にはほとんど保存されません。

答え2

このディレクトリは、/sys/module/システムに必要なさまざまな情報を含むフォルダで、システム内のすべてのモジュールを名前で表示します。このディレクトリには、/lib/module/$(uname -r)機能に応じてフォルダ階層に格納されているカーネルモジュールファイルが含まれています。

たとえば、ソフトウェアウォッチドッグカーネルモジュールファイルは/lib/module/$(uname -r)/kernel/drivers/watchdog/softdog.ko/sys/module/モジュール自体のファイルです。

名前でモジュールを操作できます。modprobe [args] <module-name> [module-params]

.koファイルパスを使用してモジュールを操作できますinsmod [args] <path> [module-params]

カーネルモジュールを操作するにはroot権限が必要です。

関連情報