Windows 95 の「Shift+再起動」が速かった本当の理由が今明らかに

Wait 5 sec.

Windows 95 には、Shift キーを押しながら再起動すると高速で立ち上がるという、知る人ぞ知る裏技がありました。Windowsの内部構造に詳しい、MicrosoftのベテランエンジニアRaymond Chen氏は、人気ブログ「The Old New Thing」でその「高速再起動」の仕組みをわかりやすく説明しています記事によると、Shift+再起動が高速な理由は「完全な再起動をせず、Windowsをもう一度起動し直すだけ」という挙動にあります。Windows 95は、ExitWindows という16bit関数にW_RESTARTWINDOWSというフラグを渡すことで「Windows だけを再起動」する動作が実行されます。16bitカーネル、32bit仮想メモリマネージャの順に終了し、CPUがリアルモードに戻ります。その後、win.comに「もう一度保護モードの Windows を起動して」と合図を送ると、win.comはWindows起動直後の状態を再現し、再び保護モードのWindowsを立ち上げます。つまり、OS全体の再起動ではなく、Windowsの再ロードに近い動作をしていたわけです。ただし成功するとは限らない高速再起動が成立するには、メモリ配置が起動直後と同じであることが条件でした。win.comは自分のプログラム領域以外のメモリを解放し、Windows用に大きな連続メモリを確保する設計となっています。しかし、他のプログラムがその領域を使ってしまうとメモリが断片化し、元の状態を再現することはできません。その場合は 通常のフル再起動にフォールバックする動作となっていたそうです。また同氏は、ユーザーの一部から「高速再起動を2回連続で行うとクラッシュする」という報告があったことも紹介しています。この原因として考えられるのは、一部のデバイスドライバが正しくリセットされず、その結果、メモリが壊れたまま残り、2回目の再起動で問題が表面化するというものです。まとめWindows 95の時代はPCの処理速度が遅く、再起動にも時間がかかりました。高速に再起動する特別な方法が導入されたのはそのせいかもしれません。同氏は当時のアセンブリ言語の「節約テク”」にも触れています。興味のある方は参照してみてはいかがでしょうか。