ハイバネーション

出典: フリー百科事典『ウィキペディア(Wikipedia)』

ハイバネーション(: hibernation)(macOSではセーフスリープ(: safe sleep))とは、パーソナルコンピュータオペレーティングシステム(OS)に備わる停止モードのひとつで、コンピュータを停止させるにあたり、まず揮発性メモリからなるメインメモリが保持している内容を不揮発性メモリ(基本的にハードディスクドライブ(HDD))に待避させてから電源を完全に切断し、次にコンピュータを起動させた際は作業途中から再開できるようにする機能である。

従来のスリープモードと比べて一層深い眠りという意味でハイバネーション(冬眠)の語が用いられる。

概説[編集]

コンピュータを停止させる場合でも、稼働中のアプリケーションソフトなどを終了させなくて済む。

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

初の実装は1992年のアメリカのコンパック・コンピュータ社によるものだとされ、同社は特許も取得している[1]

ハイバネーションは「スリーピングモードS4」としてACPIの仕様で定義されている。

スリープモードとの比較

スリープでコンピュータを停止させる場合は、停止後もメインメモリの内容を保持するために電力がわずかづつだが消費され、モバイル運用に不利である。ハイバネーション(セーフスリープ)では、完全に電源を切るのでバッテリーの消費を避けられる。

バッテリーを搭載しないデスクトップPCなどでも、不意に電源供給が途絶えた場合など、事前に不揮発性メモリにすべて保存されているので、スリープモードとは異なって作業状態が失われない。

まずメインメモリの内容をハードディスクに書き込む作業がおこなわれるので、停止するまでに余計な時間を要するというデメリットはある。

単なるシャットダウンとの比較

シャットダウンの場合は、ファイルを開いていた場合、ファイルひとつひとつについて保存を行うかどうか確認ダイアログが表示され、ふたたび電源を入れた時には、停止前の作業内容は失われる。ハイバネーションでは、これらのプロセスなしに速やかに停止状態に移行し、電源再投入時にシャットダウン直前の状態がそのまま再現され。


各OS[編集]

Microsoft Windows[編集]

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

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

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

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

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

macOS[編集]

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

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

Linux[編集]

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

脚注[編集]

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

関連項目[編集]

電源[編集]

外部リンク[編集]