質問が簡単すぎた場合はお詫び申し上げます。ところで、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ディスクなど)に保存している場合、ディスク以外の場所にはほとんど保存されません。