●sysfs(「/sys」ディレクトリ)
デバイス関連の情報を扱うための擬似的なファイルシステム。ハードディスク上にファイルは存在せず、システムが起動する際にメモリ上に作成。
sysfsは、デバイスファイルを動的に管理するudevなど、デバイス情報を扱うユーティリティによって使用される。
■「/sys」ディレクトリ配下にある主なディレクトリ
・devices デバイスの親子関係に関する情報
・bus/pci PCIデバイスに関する情報
・bus/usb USBデバイスに関する情報
・firmware ファームウェアに関する情報
・fs ファイルシステムに関する情報
・kernel カーネルに関する情報
・module モジュールに関する情報
※「/sys」ディレクトリ配下に格納されているファイルの多くはASCIIテキスト形式なので、catコマンドなどで内容を確認できる。
●カーネルパラメータ
カーネルの動作や細かな設定値を参照・変更するための仕組み。
基本的にはユーザが個別に設定を行わなくても自動で適切な設定が行われるが、任意の値を設定することもできます。
設定を実行時に参照・変更する方法としては、sysctlコマンドを使う方法と、/proc/sys 以下に存在するカーネルパラメータを操作するための仮想ファイルに対して読み書きを行う方法がある。
ビルド時に行うカーネルコンフィギュレーションとは異なり、(一部の例外項目を除いて)実行中に設定を変更することができ、設定内容は即座に反映。
■sysctl コマンドでカーネルパラメータの操作を行う
表示
sysctl カーネルパラメータ
変更
sysctl -w カーネルパラメータ=値
(-w オプションをつけなくても変更が行える環境もある)
一覧
sysctl -a
■仮想ファイル「/proc/sys」を使ってカーネルパラメータの操作を行う方法(kernel.shmmaxが対象パラメータと仮定)
表示
cat /proc/sys/kernel/shmmax
変更
echo ‘153’ > /proc/sys/kernel/shmmax
上記2つの方法は結果的に同じで、いずれも/proc/sys以下の値を一時的に置き換える。
※sysctlでの「.」が「/」に置き換えられた形式であることに注意。
※この2つの方法で設定した場合は、再起動時に設定が失われてしまう。
恒久的に(再起動後も)設定を有効にするためには、起動時に自動実行されるスクリプトを編集し、起動毎に設定したい値を変更する sysctl コマンドを実行するようにするか、/etc/sysctl.conf または /etc/sysctl.d ディレクトリ配下の設定ファイルに設定を記述。/etc/sysctl.d ディレクトリは、目的別に設定ファイルを分ける際などに使用
●modprobe の設定ファイルでは、各カーネルモジュールのデフォルトパラメータを指定したり(options)、カーネルモジュールに別名をつけたり(alias)、特定のカーネルモジュールのロード時・アンロード時に実行されるコマンドを設定したり(install, remove)できる
●modprobe
・-f 強制的に操作を行う
・—show-depends 指定したモジュールの依存関係を表示
●modinfo
オプションをつけずに実行すると詳細情報(ファイル名、解説、作者、ライセンス、パラメータ)表示。
-d, --description(モジュールの説明)
-l, --license(モジュールのライセンス)
-n, --filename(モジュールのファイル名(パス))
-p, --parameters(モジュールがサポートしているパラメータ)
個別に指定して表示することも可能