カーネルパラメータ【kernel parameter】
概要

Linuxカーネルはオペレーティングシステム(OS)の中核を成す部分であり、利用者が挙動を細かく指定できるようにカーネルパラメータが用意されている。値を変更する際にシステムの再起動やカーネルの再コンパイルは不要であり、設定は稼働中のシステムに即座に反映される。
カーネルパラメータはファイルシステムに統合される形で管理されており、/proc/sys以下にテーマ別のディレクトリへ分かれて格納されている。最上位には「abi」「debug」「fs」「kernel」「net」「user」「vm」などのディレクトリがあり、項目によってはさらに細かなサブディレクトリへ分類されている。パラメータの総数は、構成によって数百から数千に及ぶ。
例えば、「net」配下にはネットワーク通信に関する設定が、「vm」配下には仮想メモリ管理に関する設定が、「fs」のは以下にはファイルシステムの挙動に関する設定が、それぞれ格納されている。これらの仮想ファイルを参照すると現在の設定値を確認でき、管理者権限で書き込むことで値を変更できる。本来カーネルの挙動を変更するにはソースコードを修正して再構築する必要があるが、この仕組みにより稼働中のシステムでも柔軟に調整できる。
設定値の確認や変更にはsysctlコマンドを使用する。値を確認するだけであれば、catコマンドなどで該当するファイルのパスを直接指定する方法でも可能であり、echoコマンドで値を直接書き込むこともできる。稼働中のシステムでパラメータを書き換えた場合、変更はその場で有効になるが、システムを再起動すると初期状態に戻ってしまう。
設定を恒久的に適用したい場合には、/etc/sysctl.confや/etc/sysctl.d/以下に置かれた.conf形式のファイル群に記述しておく必要がある。これらの設定はシステム起動時に自動的に読み込まれ、カーネルへ適用される。なお、一部のパラメータは起動時にしか指定できず、ブートローダ経由のカーネル起動オプションとして渡す必要がある。