ハイバネーション

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

ハイバネーション(Hibernation)とはパーソナルコンピュータオペレーティングシステム(以降OSと略)に備わる機能の一つで、電源を切断(シャットダウン)する前に、メインメモリが保持している内容を外部記憶装置ハードディスクドライブ、以下ハードディスクと略)に待避させ、次にコンピュータを起動させた際、作業途中から再開できるようにする機能である。シャットダウンの場合は、ファイルを開いていた場合、保存を行うかどうかの確認プロセスなどが入るが、ハイバネーションする際はそういった確認もなく、作業中途状態のままコンピュータ使用の中断が行える。初期の実装では物理メモリ容量と同じだけの空き容量がハードディスクに必要だったが、現在[いつ?]は退避時に圧縮を行うことで必要なハードディスク空き容量を減らした実装も存在する。

ハイバネーションは特にノートパソコンで利用されることが多く、バッテリー残量が少なくなると自動的にハイバネーションへ移行するよう設定することもできる。

かつて、ハイバネーション機能の実装にはBIOSが利用されたが、現在[いつ?]ではOSの機能として備わっている。ハイバネーションは「スリーピングモードS4」としてACPIの仕様で定義されている。

オペレーティングシステムの実装状況[編集]

Microsoft Windows[編集]

Windows 95Windows 98 ではAPMしかサポートされていなかったため、ハードウェアデバイスドライバ、BIOSが対応している場合だけ「サスペンド[1]といわれる機能を利用することが出来た。Windows 98ではACPIもサポートされたが、当時はほとんどのハードウェアがACPI 1.0に完全に対応していたわけではなく、WDMドライバも無かったためハイバネーションは不完全な形でしか利用できなかった。それに加え、FAT32 ファイルシステムにも問題があった。

特殊なデバイスドライバ無しでOSレベルでのハイバネーションがサポートされたのはWindows 2000の登場以降、「休止状態」といわれる機能が搭載されてからのことである。

物理メモリの内容はLZXPRESSアルゴリズムによって圧縮され、その作業内容の完全な複製が「hiberfil.sys」という名前の隠し属性システムファイルでシステム・パーティションルートディレクトリに作成される。Windows Me ではこのファイルのサイズは実物理メモリ領域の半分のサイズまで抑えられるようになり、Windows XP ではさらに改善された。

すべてのハードウェアがACPIとプラグアンドプレイに準拠しており、デバイスドライバがプラグアンドプレイ互換である場合のみ、ハイバネーションは正常に機能する。

Windows Vista以降では「ハイブリッドスリープ」が搭載され、メモリ内容をハードディスクへ待避させた直後に「スリープ」へ移行することで、素早いシステムの復帰を実現するとともに、ノートパソコンにおけるスリープ中のバッテリー放電や取り外し(およびデスクトップパソコンにおける停電)によってメインメモリの内容が失われるリスクにも対応している。ユーザーはオプションによってハイブリッドスリープを停止することができ、その場合のスリープは(従来同様に)ハードディスクへのメインメモリ内容退避を行わず、より速くスリープに移行できる。

Mac OS[編集]

2005年10月パワーブックG4以降に搭載されたセーフスリープモードは物理メモリの内容をハードディスクへ保存し、瞬時に作業途中の状態に復帰できる機能である。ACアダプタ接続無しでバッテリーを交換する時のように、もし電源が遮断された場合、メインメモリの中身はすべて消えてしまうので、Mac OSは即座にハードディスクからメインメモリの内容を復元して元の状態に復帰させる。

セーフスリープは通常のスリープ機能を実行すると自動的に処理されるため、アップルメニューには「ハイバネーション」に相当する選択肢が存在しない。また、OS X v10.4以降に搭載された機能である。OS X v10.4リリース後、マッキントッシュ・マニアはこの機能を古いマッキントッシュでも実行可能にするハック・プログラムを発表した。昔のMacにはWindowsのように「ハイバネーション」のメニューがあったが、現在[いつ?]アップル社によって削除されている。

Linux[編集]

Linuxカーネルでは2.6シリーズに組み込まれたswsusp(Software Suspend)で実装されている[2]。ほかに、Linuxカーネルへのパッチの形で提供されている「TuxOnIce[3]や「uswsusp」(Userspace Software Suspend)[4]がある。

脚注[編集]

  1. ^ Windows 95 では「サスペンド」、Windows 98からは「スタンバイ」と呼ばれるが、どちらもメインメモリ以外の給電を停止するものである。厳密な用語としてはサスペンドはメインメモリ以外のすべての給電を停止(スリーピングモードS3)、スタンバイはCPUといくつかのデバイスの給電を停止するもの(スリーピングモードS1)。なお「レジューム」という呼称もあるが、これも厳密には「中断状態から復帰すること」を指す用語である。
  2. ^ swsusp のLinuxカーネルのドキュメント
  3. ^ TuxOnIce
  4. ^ uswsusp

関連項目[編集]

外部リンク[編集]