Windows 95 が暴走インストーラーと戦った方法とは?Microsoft 開発者が語る裏側

Wait 5 sec.

Microsoftのベテラン開発者Raymond Chen氏がブログ記事「Windows 95 defenses against installers that overwrite a file with an older version」を公開し、Windows 95がマナーの悪いアプリケーションのインストーラーとどのように戦ってきたのかを説明してえます。記事によると、当時のWindowsでは、多くのシステムコンポーネントがアプリと一緒に再配布されており、インストーラーは自分が持っているファイルをシステムに上書きすることがよくありました。本来は「既存ファイルより新しい場合だけ上書きする」というルールがあったものの、実際には守られないケースが多発していたのです。その結果、Windows 95の新しいシステムファイルが、古いWindows 3.1時代のファイルで上書きされてしまうという深刻な問題が起きていました。Windows 95が取った現実的な防衛策この状況に対してWindows 95が採用したのは、インストーラーの動作を強制的に止めるのではなく、いったん好きにさせておいて後からOS側で修復するというアプローチでした。壊れやすい重要なファイルはあらかじめC:\Windows\SYSBCKUPにバックアップし、インストール後にWindowsがファイルの状態をチェックし、もし古いバージョンで上書きされていればバックアップから復元するという仕組みです。逆に新しいバージョンが導入されていれば、バックアップ側を更新して次に備えるという柔軟な運用が行われていました。つまり、インストーラーが引き起こす「やらかし」をOSが影でこっそり片付けるという、非常に現実的な対処法だったわけです。なぜ「上書きをブロックする」方式は失敗したのか当初は上書きを防ぐ方向も検討されましたが、実際にはインストーラーがエラーを出して途中で止まったり、ユーザーに判断を求めて混乱を招いたり、さらには再起動後にバッチファイルを使って強引に上書きしようとする悪質なケースまで現れました。ブロック方式はユーザー体験を悪化させるだけでなく、システムの安定性も損なうことが分かり、最終的に「後で掃除する」方式が最も現実的で効果的な解決策となったそうです。特に壊されやすいコンポーネントについては、勝手に上書きされないよう専用のインストーラーを提供し、「この方法以外で更新してはいけない」という仕組みを整えることで、インストーラー作者の暴走を抑える工夫も行われていました。まとめWindows 95の裏側では、アプリケーションのインストーラーがシステムを壊すのを防ぐために、OSにより後始末が行われていました。現代のWindowsで非常に堅牢なシステムファイルの保護も、初期の段階では、このような泥臭い工夫の積み重ねから始まったことがわかります。