Lsmodの代わりに/sys/module
のディレクトリリストを使用して、現在ロードされているモジュールのリストを取得できるかどうか疑問に思っています。
それはロードされたモジュールのリストだけですか?それとも/sys/module/*/initstate
と組み合わせたのでしょうか?
ロードされた各モジュールには、/sys/module
にエントリがあります。ただし、モジュールとしてロードされない/sys/module
のエントリを持つカーネルコンポーネントもあります。 canモジュールとしてビルドされる各カーネルコンポーネント¹には、モジュールとしてコンパイルおよびロードされるか、メインカーネルイメージの一部としてコンパイルされるかに関係なく、/sys/module
にエントリがあります。
lsmod
は、ロードされたモジュールのリストを/proc/modules
から取得します。
ロードされたモジュールだけが/sys/module
ディレクトリにinitstate
ファイルを持っていると思うので、それも使用できます。
¹ これが、ロードされたカーネルの各コンポーネントです。カーネルは、ハードディスク上のファイルにどのモジュールがあるかを認識または認識しません。カーネルは、カーネルイメージと同時にビルドされたモジュールも気にしません。 /proc/config
経由で表示される場合がありますが、その情報は何にも使用されません。