Windows 95が「行儀の悪いインストーラー」と静かに戦っていた話

あなたのWindows 95が安定していたのは、OSが裏でこっそり後始末をしていたからかもしれない。Microsoftのベテランエンジニアが明かした、隠しフォルダの知られざる防衛機構。

Windows 95が「行儀の悪いインストーラー」と静かに戦っていた話

あなたのWindows 95が安定していたのは、OSが裏でこっそり後始末をしていたからかもしれない。Microsoftのベテランエンジニアが明かした、隠しフォルダの知られざる防衛機構。


インストーラーが壊す、OSが直す

Windows 95の内部に、C:\Windows\SYSBCKUPという隠しディレクトリが存在していた。その役割は、行儀の悪いサードパーティ製インストーラーからシステムファイルを守ることだ。

Microsoftのベテラン開発者レイモンド・チェンが、自身のブログ「The Old New Thing」でこの防衛機構の詳細を明かした。30年以上Windowsの進化に関わってきた人物の証言は、単なるトリビアではない。OSの設計思想そのものを映し出している。

16ビットWindows時代、多くのシステムコンポーネントは「再配布可能」だった。アプリケーションが自分のインストーラーにシステムファイルのコピーを同梱し、ユーザーのPCにインストールできる仕組みだ。Microsoftのガイダンスは明快だった。すでに存在するファイルのバージョン番号を確認し、自分が持っているファイルの方が新しい場合にのみ上書きせよ、と。

問題は、このガイダンスに従うインストーラーがほとんどなかったことだ。

Windows 3.1のファイルで95を上書きする暴挙

チェンが語る当時の実態は、現代のエンジニアから見ても衝撃的だ。多くのインストーラーは、既存ファイルのバージョンなど一切気にせず手当たり次第に上書きしていた。Windows 95上でこれらが実行されると、95のシステムコンポーネントがWindows 3.1時代の古いバージョンに置き換えられる。

結果は想像に難くない。そのコンポーネントに依存する他のソフトウェアが軒並み動作不能に陥る。後に 「DLL Hell」 として広く知られるようになるこの問題の原型が、すでにここにあった。共有ライブラリという仕組みは効率的だが、誰もルールを守らなければ崩壊する。

技術的に正しい設計が、人間の行動によって台無しにされる構図は、30年経った今でもどこか見覚えがある。


「好きにさせて、後で直す」という発想

チェンが明かしたSYSBCKUPの仕組みは、驚くほど現実的だ。SYSBCKUPディレクトリに、頻繁に上書きされるシステムファイルのバックアップを保持しておく。インストーラーの処理が完了するたびに、Windowsがファイルのバージョンを照合する。

もしインストーラーが古いバージョンで上書きしていれば、SYSBCKUPから正しいファイルを黙って復元する。逆に、インストーラーが持ち込んだファイルの方が新しければ、SYSBCKUPのバックアップを更新する。

チェンの言葉を借りれば、Windows 95は「インストーラーの作業が終わるのを待ち、それから戻って仕事をチェックし、ミスを修正していた」のだ。

子どもの宿題を後からこっそり直す親のようだ、と言えば語弊があるかもしれない。だが本質はそこにある。正面から戦うのではなく、相手の面子を潰さずに結果だけ修正する。これはエンジニアリングの判断であると同時に、ビジネスの判断でもあった。

正面から止めようとした結果

実は、SYSBCKUPが最初のアプローチではなかった。開発チームは当初、もっと直接的な方法を試みている。

最初の設計では、インストーラーによるファイルの上書き自体をブロックしようとした。だがこれは裏目に出た。ブロックされたインストーラーの中には、インストール失敗と判断して処理を中断するものがあった。エラーメッセージを表示してユーザーに判断を求めるものもあった。チェンが皮肉を込めて書いているように、「ユーザーが次に何をすべきか分かるとでもいうのか」。

さらに過激なインストーラーも存在した。ファイルの上書きを阻止されると、システムを再起動してバッチファイルで強行突破するものまであった。「止められるものなら止めてみろ」というわけだ。

ダミーファイルへのリダイレクトも試みられたが、チェックサムで検証するインストーラーには通用しなかった。書き込みの失敗を検知し、エラーを出してしまうのだ。

結局、最もうまくいったのは、好きなようにやらせてから後片付けする方法だった。力でねじ伏せるのではなく、柔軟に受け流す。武道の精神にも似た発想だ。


「信用しない」という設計思想

チェンのブログには、もうひとつ興味深い逸話が添えられている。

一部のコンポーネントは、自前の専用インストーラーを提供した。サードパーティには「ファイルを直接インストールする資格がない。我々のカスタムインストーラーを実行せよ」と通告したのだ。チェンは「自分でファイルをインストールする能力がないことを自ら証明したのだから、自業自得だ」と付け加えている。

この逸話が面白いのは、単なる懐古趣味ではないからだ。SYSBCKUPの設計思想は、現代のソフトウェアエンジニアリングにも通じる普遍的な問いを含んでいる。「ルールを守らない相手にどう対処するか」という問題だ。

正面からブロックすれば衝突が起きる。ルールを強制すれば、予想外の回避策が生まれる。結局Windows 95が選んだのは、制御ではなく修復という戦略だった。完璧ではないが、現実の混沌の中で最も被害が少ない道を選んだのだ。

現代のパッケージマネージャーやコンテナ技術は、この問題をより根本的に解決しようとしている。だが「人間は仕様書通りに動かない」という前提に立った設計は、AIが書いたコードを人間がレビューする2026年の今日でも、おそらく最も誠実なエンジニアリングの姿勢だろう。

Windows 95は30年前、インストーラーを信用しないことを選んだ。我々は今、何を信用しないことを選ぶべきなのか。


#Windows95 #SYSBCKUP #DLLHell #レイモンドチェン #Windows #後方互換性 #情報の灯台