サポート・アーキテクチャ/デバイスの拡充:全貌を現したLinuxカーネル2.6(第2章)(2/3 ページ)
対応ハードウェアの拡充は、適用範囲の拡大をもたらす。カーネル2.6では、より多くのCPUやデバイスをサポートするほか、電源管理機能などの大幅な強化が行われている。(編集局)
電源管理系の強化
■ACPIによる電源管理
カーネル2.6では、ACPI(Advanced Configuration and Power Interface)に基づく電源管理がデフォルトとなります。ACPIはIntelが提唱するOSPM(OS-directed configuration and Power Management)に準拠した電源管理機構であり、電源状態の管理(電源状態の変化の検出など)をOSで行うことを前堤としています。
ACPI/OSPMに基づく電源管理は、以下の3種のソフトウェアが互いに連携し合って動作します。
●電源管理ポリシー設定ツール
現在、ospmd_guiという電源管理ポリシー設定ツールが開発されています。ospmd_guiを用いることで、Windowsなどと同様な電源管理ポリシーの設定が行えるようになります。具体的には、次のような設定が可能です。
- 電源ボタン押下時の動作設定(サスペンド/シャットダウンなどから選択)
- 周辺機器への電源供給停止までの継続アイドル時間数
●acpid/ospmd
カーネル内部で保持している現在の電源状態の変化を監視し、変化に応じて指定されたコマンドを実行します。具体的には、ACPI関連の/procファイルシステムを定期的に監視することで電源状態の変化を検出し、指定されたコマンドを実行するようになっています。
●カーネル/デバイスドライバ
カーネルはシステムの電源状態を保持し、/procファイルシステムを通してapcid/ospmdに通知します。電源状態の変化の検出は、電源管理対応デバイスドライバが検出した電源ボタンの押下などのイベントをカーネル内のACPIサブシステムに通知することで行われます。
これらの関係を図3に示します。
例えば、電源ボタン押下に伴うシステムのシャットダウンは、以下のような順序で実行されます(図4)。
図4 電源ボタン押下に伴うシャットダウン処理
(1)ユーザーがospmd_guiを通して電源ボタン押下時の
動作をシャットダウンに設定
(2)電源ボタンを押下
(3)電源ボタン押下をデバイスドライバが検出
(4)ACPIサブシステムがシステムの電源状態を更新
(5)ospmdがシステムの電源状態の変化を検出
(6)ospmdがshutdownコマンドを実行
■ソフトウェアサスペンド機能
ソフトウェアサスペンドとは、システムのサスペンド/レジュームをソフトウェアによって実現する機能です。
ソフトウェアサスペンドは、実行時のメモリイメージをディスク(swapパーティション)に退避し、レジューム(再起動)時に復元することで実現されています(図5)。
図5に示すように、ソフトウェアサスペンド機能によるシステムのサスペンド処理は、swsuspまたはshutdownコマンド(-zオプションを指定)を発行することで行われます。
また、システム状態の復元は再起動時にカーネルが行います(注)。
注:サスペンド時に退避したメモリ内容を格納したデバイスを、カーネルの起動オプションで指定する必要があります。
動作時のオーバーヘッドを考慮に入れると、ACPIやAPMの代わりというよりもRAS機能の1つとして利用する(正常動作時の状態を保存しておき、異常発生時に復元するなど)ことが考えられます。
Copyright © ITmedia, Inc. All Rights Reserved.