第5章 Windows 8を支える機能たち - ハイバネーションで高速スタートアップを実現 その1

Windows OSを使い続けてきた方々にはあらためて述べるまでもないが、我々は常にOSの起動に要する時間に悩まされてきた。Windows XP時代はデフラグツールでOSの起動に必要なシステムファイルを最外周に追いやることで、わずかな起動時間の短縮を求めるなど、今思えば"得るものは小さいが多大な努力が必要"な作業ばかり行っていた気がする。

Windows XPには自身の起動を高速化するPrefetcher機能が搭載されていた。アクセス頻度が高いファイルを常に検証し、デフラグツールを実行する際の優先度を決めるというものである。Windows VistaやWindows 7ではSuperFetchと改称し、データファイルやアプリケーションの起動速度を高めるアプローチも行われたが、起動速度自体に大きな影響を与えるものではなかった。

コンピューターを使用する際に発生するダウンタイムは、電源制御仕様であるACPI(Advanced Configuration and Power Interface)の進化により、スタンバイ(スリープ)やハイバネーション(休止状態)という復帰時間の短縮で大幅に改善された、かのように見える。そもそもスタンバイやハイバネーションを実行するには、Windows OS上で動作するデバイスドライバー側の対応が欠かせない。仕様に沿っていないデバイスドライバーが組み込まれると、正しくスタンバイモードに移行しないだけでなく、復帰時に予期せぬトラブルを引き起こす原因になりかねなかった。

1997年生まれのACPIが、OSレベルでサポートされるようになったのはWindows 98以降である。この時点でさまざまなバグが改称され、Windows XP時代になると、スリープ関連のトラブルはあまり耳にしなくなり、便利に活用できるようになった。だが、毎月リリースされるセキュリティ修正プログラムの適用やアプリケーションのバージョンアップ時は、コンピューターの再起動を強いられることに変わりはない。つまり、スタンバイ/ハイバネーションの有用性が高まっても、Windows OSの起動/終了におけるダウンタイムは重要なのである。

Windows 8における改良点の一つが、この起動/終了における所要時間の短縮だ。Windows 7ではシャットダウン時に、アプリケーションの終了を要求し、それを終えてからユーザーセッションの終了を実行。続いてサービスの終了、各デバイスに終了通知を行ってから、システムセッションの終了を実行する。このシステムセッションを終了せずハイバネーションモードに移行させ、終了時間の短縮を実現した。Windows 8ではこれを高速スタートアップ(旧称はHybrid Boot)と称している。

一見するとハイバネーションの実行は時間がかかるように思えるが、システムセッションで消費しているメモリ容量は少ないため、ディスクへの待避時間もさほど影響を与えないという。Microsoftのテスト結果によると30~70パーセントの速度改善が見られたそうだ。また、CPUのマルチコアを平行利用することで、ハイバネーションファイルの読み込みと展開を並行的に実行可能になり、従来のハイバネーションモードからの復帰も高速化される(図305)。

図305 高速起動のイメージ図

この仕様変更に伴い、問題となるが起動オプションの設定。あらためて述べるまでもなく、Windows OSではOSの起動開始直後に他のOSを呼び出す項目や、セーフモードを実行するためのメニューを用意し、コンピューターの活用に役立てている。だが、前述の起動高速化がネックになるとは当初誰も気付かなかったようだ(図306)。

図306 Windows 7のブートマネージャーから呼び出した詳細画面。セーフモードの実行や特定機能の抑制を選択できる

Windows UXチームのChris Clark(クリス・クラーク)氏いわく、「HDDではなくSSD(Solid State Drive)を使用した時はわずか7秒でWindows 8が起動するため、従来のように[F8]キーを押して同メニューを呼び出すのが難しい」とのこと。そこで同社は、いくつかのシナリオを想定したが、最終的に至ったのは従来のキー入力による呼び出しではなく、Windows 8が稼働している状態から呼び出すというものだ。もちろんWindows 8に何らかのトラブルが発生し、正常起動しない場合にブートオプションメニューが表示されるのは従来どおり(図307)。

図307 Windows 8のブートオプションメニュー。他のデバイスやOSを起動する項目も用意されている

具体的には[Win]+[I]キーを押してチャームを呼び出し、「PCの詳細設定」をクリック。左ペインで「全般」を選択し、右ペインで<今すぐ再起動する>ボタンをクリックすることで同メニューを呼び出せる。「システム構成(msconfig.exe)」でブートオプションを一時的に変更し、セーフモードの設定を調整する操作を自動化したものに近いだろう。同様の結果を得る操作は各箇所に用意されており、チャームの<電源>ボタンを[Shift]キーを押しながらクリックし、メニュー<再起動>を選択しても同メニューを呼び出せる(図308~309)。

図308 <今すぐ再起動する>ボタンをクリックすれば、ブートオプションメニューを呼び出せる

図309 [Shift]キーを押しながらメニューの<再起動>をクリックしても、ブートオプションメニューを呼び出せる