
Windows 95の「Shift+再起動」が速かった理由とは?16bit/32bitの境界で起きていた“ソフト再起動”の正体
Windows 95の時代、「再起動」を押すときにShiftキーを押し続けると、いつもより速く戻ってくる――そんな小技を覚えている人もいるはずです。あれは単なる都市伝説ではなく、Windows 9x特有の起動構造を突いた“条件付きのソフト再起動”でした。本記事では、その仕組みを当時の内部構造に沿って噛み砕き、なぜ速いのか、なぜ効かないことがあるのかまで整理します。
「Shift+再起動」で何が変わったのか
Windows 95/98/ME(いわゆるWindows 9x系)は、DOS上で立ち上がる“二段構え”のOSです。表面上は32bit OSですが、内部には16bitのWindowsコンポーネントが残り、DOS(リアルモード)からWindows(保護モード)へ移るための橋渡し役として WIN.COM が動いていました。
Shiftを押しながら再起動を選ぶと、状況によってはフルの再起動(BIOSのPOSTからやり直す“ハード再起動”)ではなく、Windows側だけをいったん畳んで、再びWindowsを立ち上げ直す“軽い再起動”に近い挙動になります。これが「速く感じる」正体です。
キモは「ExitWindows」とEW_RESTARTWINDOWS
当時の挙動は、古い16bit APIである ExitWindows に対して EW_RESTARTWINDOWS 相当のフラグを渡すことで説明できます。ポイントは“Windowsを再起動する”のであって、“マシン全体を電源投入直後の流れから再起動する”とは限らない、という点です。
フル再起動は、ハードウェア初期化→BIOS/POST→ブートローダ→DOS→WIN.COM→Windows起動…と全部通ります。一方、条件が揃えばこのフラグ経由の再起動は、Windowsの終了と再起動をOS内部の段取りでまとめ、BIOSに戻る前の工程を短縮し得ます。
内部では「16bitカーネル終了→32bit側も畳む→リアルモードへ戻す」
Windows 9xは、歴史的経緯から16bitの核と32bitの仕組みが混在していました。Shift再起動(=Windows再起動)では、ざっくり次の流れが起きます。
-
16bit Windowsカーネルがシャットダウン
-
続いて 32bit仮想メモリマネージャ(VMM)などもシャットダウン
-
CPUを 保護モードからリアルモードへ戻し、制御をDOS側の WIN.COM に返す
-
WIN.COMが「Windowsをもう一度起動して良い」という合図を受け取り、可能な限り“起動直後に近い状態”へ戻して再始動を試みる
このとき、画面に「Windowsを再起動しています…」のような待機メッセージが出ることがあります。要は、電源投入直後の世界(BIOS)まで戻らず、DOS/WIN.COMの層に着地して“Windows部分だけ”を再ロードするイメージです。
それでも「必ず速い」わけではない理由
ここが重要で、Shift再起動は万能な高速化ではありません。条件が悪いと結局フル再起動になります。
-
ドライバやデバイス状態が不安定で、ソフト再起動では整合が取れない
-
何らかのクラッシュや深刻な状態破綻が起きていて、Windows層だけの再始動が危険
-
終了処理の途中で例外が起き、通常の再起動手順へフォールバックする
つまり「速い再起動」は、“Windowsをもう一度立ち上げ直せるだけの状態が残っている”ときに限り成立します。Windows 9xはハードウェアとの距離が近く、ドライバ品質も玉石混交でした。だからこそ、安全策としてフル再起動に倒れる場面が多かったのです。
なぜ「当時のユーザー」はあまり使わなかったのか
体感で速いとしても、当時この小技が活躍するシーンは意外に限定的でした。
-
まず「Shiftを押すと挙動が変わる」こと自体が知られていない
-
不具合回避の再起動では、ユーザー側も「完全にリセットしたい」心理が働く
-
ソフト再起動が失敗してフル再起動になるなら、最初から普通に再起動しても差が小さい
結果として、“知っている人だけがたまに得する”種類の機能になりがちでした。
現代の視点で見ると何に近い?
この発想は、今の世界にも形を変えて残っています。
-
PCを完全に落とさず状態を保持する「スリープ」や「休止状態」
-
起動時の工程を短縮する仕組み(例:高速スタートアップのような概念)
-
Linuxの kexec のように、BIOS/ファームウェア段階を経ずに新しいカーネルへ移る手法
共通点は「“全部やり直す”のが遅いから、やり直す範囲を賢く狭める」という思想です。Windows 95のShift再起動は、その原始的で分かりやすい例だと言えます。
まとめ:Shift再起動の正体は「Windows部分だけを再ロードする仕掛け」
Windows 95のShift+再起動が速かった理由は、BIOSまで戻るフル再起動ではなく、16bit/32bit混在のWindows 9x構造を利用して、WIN.COMへ戻ってWindowsを再始動する“ソフト再起動”を試みていたからです。ただし条件が揃わないとフル再起動に切り替わるため、いつでも高速というわけではありません。
懐かしさだけでなく、OSが高速化のために「どこまで戻るか」を設計するという点で、今の省電力や高速起動にも通じる話です。Windows 9xの“境界の技術”が生んだ小さな裏技として、覚えておくと面白い知識になります。