/proc/sys および /sys/modules/mod/parameter

/proc/sys および /sys/modules/mod/parameter

数日間、それが正確にどのように機能するのか疑問に思いました。 sysctlを使用してカーネルランタイムパラメータを設定できますが、echo boolen 1> /proc/sys/module/exactParameter/sys/modules/module/parameters/parameterを設定することもできます。

モジュールのパラメータはカーネル/proc/sys/へのハードコンパイルにのみ関連していますか?それともカーネルモジュールをロードするパラメータもありますか?

LKMが実行されているカーネルにロードされます/sys/modules/module/paraeter/params。これは、カーネルにコンパイルされたモジュールにパラメータがないことを意味しますか?

2つのディレクトリの違いは何ですか?

ベストアンサー1

どちらもカーネルインタフェースであり、名前が重なる点以外は、それらの間に/proc/sysほとんど関係がありません。/sys

/proc/sysインターフェイスですシステム制御、これはカーネル構成パラメーターです。読み取りまたは変更は、/proc/sys/foo/barsysctlの取得または設定と同じですfoo.bar。 Sysctl の値は意味カテゴリで構成され、本質的にカーネル構造とは関係ありません。多くのsysctl値は、コンパイルされたドライバや機能に関係なく、すべてのLinuxシステムに存在する設定です。一部はオプションの機能(特定のネットワークプロトコルなど)に関連していますが、特定のハードウェアデバイスとは関係ありません。

/sys/module名前が示すように、カーネルモジュールへのインタフェースです。各ディレクトリはカーネルモジュールに対応します。fooモジュールのパラメータに書き込んで読み取ることができ、時には修正することもできます/sys/module/foo/parameters/*

カーネルにロードされたコンポーネントは、カーネルコマンドラインから対応するパラメータを読み込みます。これらのパラメータは実行時に設定することはできません(少なくとも自動生成されたインターフェイスでは設定されません。たとえば、コンポーネントは/sys/moduleそれに対するカスタムインターフェイスを公開できます)。

おすすめ記事