**Windows 95:古いバージョンのファイルで上書きされるインストーラに対する防御策**

- **ファイルシステム保護**  
  - FAT ファイルシステムは、書き込まれるファイルのタイムスタンプを確認します。新しいファイルが既存ファイルよりも古い場合、Windows 95 は上書きを拒否します。

- **ユーザー確認プロンプト**  
  - インストーラが既存ファイルを日付的に古いコピーで置き換えようとすると、Windows 95 は「本当に続行しますか?」というダイアログボックスを表示し、ユーザーの確認を求めます。

- **読み取り専用属性の強制**  
  - 読み取り専用に設定されたファイルは、ユーザーが属性を明示的に変更するか、管理者権限でインストーラを実行しない限り、上書きできません。

- **インストーラ整合性チェック**  
  - インストーラにはチェックサム検証機能が組み込まれることがあります。書き込み対象ファイルのチェックサムが期待値と一致しない場合、インストールは停止します。

- **バックアップ・ロールバックメカニズム**  
  - ファイルを置き換える前に、Windows 95 は一時的なバックアップコピーを作成することがあります。新しいファイルが検証に失敗したり、古い場合はシステムが自動的に元のバージョンへ復旧します。

2026/03/30 2:38

**Windows 95:古いバージョンのファイルで上書きされるインストーラに対する防御策** - **ファイルシステム保護** - FAT ファイルシステムは、書き込まれるファイルのタイムスタンプを確認します。新しいファイルが既存ファイルよりも古い場合、Windows 95 は上書きを拒否します。 - **ユーザー確認プロンプト** - インストーラが既存ファイルを日付的に古いコピーで置き換えようとすると、Windows 95 は「本当に続行しますか?」というダイアログボックスを表示し、ユーザーの確認を求めます。 - **読み取り専用属性の強制** - 読み取り専用に設定されたファイルは、ユーザーが属性を明示的に変更するか、管理者権限でインストーラを実行しない限り、上書きできません。 - **インストーラ整合性チェック** - インストーラにはチェックサム検証機能が組み込まれることがあります。書き込み対象ファイルのチェックサムが期待値と一致しない場合、インストールは停止します。 - **バックアップ・ロールバックメカニズム** - ファイルを置き換える前に、Windows 95 は一時的なバックアップコピーを作成することがあります。新しいファイルが検証に失敗したり、古い場合はシステムが自動的に元のバージョンへ復旧します。

RSS: https://news.ycombinator.com/rss

要約

日本語訳:

Windows 95は、16ビット Windows でインストーラが古いファイルを新しいものに上書きしてしまうという長年の問題を解決しました。意図されたルールは、新しいファイルのバージョン番号が既存コンポーネントより高い場合のみ置き換えることでしたが、ほとんどのインストーラはこの規則を無視し自由に書き込みました。この問題を解決するため、Windows 95 は頻繁に上書きされるファイル用に隠しバックアップディレクトリ(

C:\Windows\SYSBCKUP
)を作成しました。各インストール後に OS はバックアップされたファイルが上書きされたかどうかを確認します。置き換えが新しい場合はバックアップを更新し、そうでなければ古いバージョンを復元します。上書きを完全にブロックしたりユーザーにプロンプトを表示する以前の方法はインストール失敗を引き起こし、複雑さを増していました。最も効果的な戦略――インストーラが自由に上書きできるようにし、Windows 95 が後で誤りを整理する――が、その後の Windows リリースで標準アプローチとなりました。一部のコンポーネントは独自のインストーラを提供し、サードパーティ製インストーラにはそのファイルに直接触れないよう指示していました。

このバージョンはリストから主要なポイントすべてを保持し、未検証の推論を避け、明確で簡潔な物語を提示しています。

本文

16‑ビット版Windowsの時代に、多くのシステムコンポーネントは再配布可能であり、プログラム側がそのコピーを含めてインストーラからシステムへインストールできるようになっていました。
システムコンポーネントをインストールする際の指針としては、もしインストーラがすでにシステム上に同じコンポーネントのコピーを見つけた場合、既存ファイルのバージョン番号とインストールしようとしているファイルのバージョン番号を比較し、新しい方が高い番号ならばそのファイルだけを上書きする。そうでなければ既存ファイルは変更せずに残す、というものでした。

このルールはWindows の後方互換性保証に依存しており、古いプログラムから呼び出されても新しいバージョンが動作し続けることを前提としています。実際にはインストーラの多くがこの指針に従っていませんでした。
プログラムインストーラは「既存ファイルのバージョン番号に関係なく、何でも上書きする」ことがよくありました。Windows 95 上で実行されると、これらのインストーラは Windows 95 用に設計されたコンポーネントを Windows 3.1 の古いバージョンに置き換えてしまい、システム全体に大きな問題を引き起こしました。

Windows 95 はこの問題を回避するため、頻繁に上書きされるファイルのバックアップコピーを隠しディレクトリ

C:\Windows\SYSBCKUP
に保持していました。インストーラが終了した後、Windows はこれらのファイルが上書きされたかどうかを確認します。

  • 上書きされており、新しいファイルのバージョン番号が
    SYSBCKUP
    内のものより高ければ、その新しいファイルを
    SYSBCKUP
    にコピーします。
  • 逆に、上書きされた方が低いバージョンであれば、
    SYSBCKUP
    のコピーを元に戻して元の状態へ復旧します。

この仕組みにより、Windows 95 は各インストーラが終了するまで待ち、その後に間違った上書きを修正することができました。
以前の設計では、インストーラがファイルを上書きしようとするとブロックしてしまいましたが、これも問題を増大させました。いくつかのインストーラは失敗として終了したり、ユーザーに次の手順を尋ねるエラーメッセージを表示したり(ユーザーが何をすべきか分かっている前提で)しました。あるいはシステム再起動後にバッチファイルから上書きを行うケースもありました。
ダミーファイルへリダイレクトして書き込みを妨害する試みも失敗し、インストーラが検証ステップで失敗を検知すると中断されてしまいました。

最終的に見つかったベストソリューションは「インストーラには好きなファイルを上書きさせ、後からクリーンアップする」ことでした。
一部のコンポーネントは自前で専用インストーラを提供し、他のインストーラに対してそのコンポーネントファイルを直接インストールしないよう指示することで、この問題を回避しました。


著者について

Raymond は30年以上にわたり Windows の進化に関与してきました。2003 年に「The Old New Thing」というウェブサイトを立ち上げ、予想以上に拡大し、今もなお彼はそれを見てドキドキしています。このサイトから同名の書籍(Addison Wesley 2007)が出版されました。彼は時折 Windows Dev Docs の Twitter アカウントで、役立たずな話題を共有するために登場します。

同じ日のほかのニュース

一覧に戻る →

2026/04/02 8:35

新しいC++バックエンド for `ocamlc`

## 日本語訳: 新しいC++バックエンドが `ocamlc` に追加され、インクリメントされていない C ランタイムと外部関数インタフェースを置き換えました。著者は、ユーザーが指定した上限まで素数を生成するプログラムでその使用例を示しています。このプログラムは OCaml の List モジュールの一部を純粋に関数型スタイルで再実装しています。プログラムは `primes.cpp` という慣用的な C++ コードへ翻訳され、`Cons`、`I`、`ifthenelse` などのテンプレートメタプログラミング構造を含みます。`g++ -Dlimit=100 primes.cpp` でコンパイルすると、`print` が型ではないためにコンパイラー風エラーが発生し、出力形式は古い C プリプロセッサのエラー(OCaml の `::` の代わりにネストされた `Cons<hd, tl>`)を模倣します。生成されたコードはデフォルトテンプレート深度を増やす (`-ftemplate-depth=999999`) ことでのみ大きな上限を扱うことができます。著者のマシンでは、`limit = 10000` を実行すると約 30 秒で 10000 以下のすべての素数が出力され、約 11 GiB のメモリを使用します。clang++ は遅く、セグフォールトする可能性があります。アルゴリズム自体は非効率的です——コンテナライブラリからの優先度付きキュー/レフトヒープに基づく改良された純粋関数型素数生成器は、同じ上限で実行時間を約 8 秒、メモリ使用量を約 3.1 GiB に削減します。今後の作業では、このアプローチを他言語へ拡張することが目標です;Rust は部分的な実装特殊化がサポートされれば OCaml プログラムを実行できるようになります。 この改訂された要約は、すべての主要ポイントを反映し、不当な推測を避け、明確な主旨を提示し、あいまいまたは混乱を招く表現を排除しています。

2026/04/02 2:11

NASAの「アーテミス II」クルーが月へ発進します

## Japanese Translation: > **Artemis II 発射成功:** オリオンのソーラーアレイ翼が午後6時59分に完全展開し、各翼は約15,000セルを含み、およそ63フィート(19メートル)にわたります。 > > **主要推進マイルストーン:** 固体ロケットブースターが午後6時37分に分離;SLSコアステージの主エンジンカットオフは午後6時43分に発生;その後、コアステージ分離が午後6時59分に行われ、最初の推進フェーズが終了しました。 > > **打ち上げタイミング:** 打ち上げウィンドウは午後6時24分(EDT)で開き、ロケットコンプレックス-39Bからの離陸は午後6時35分に実施されました。 > > **事前準備:** 最終天気ブリーフィング(約80%が許可)、クルー服チェック、ハッチ閉鎖、打ち上げ中止システム検証をカウントダウン前に完了しました。コアステージとICPSのタンク作業はLH₂/LOX のスロー・フィル→ファスト・フィル→リペンリッシュ段階で行われました。 > > **離陸後の計画マヌーバー:** オリオンは低軌道上昇マヌーバー(PRM)を実施し、その後遠地点上昇バーナー(ARB)で深宇宙軌道を形成します。 > > **クルーと運用:** 乗員の4名は司令官レイド・ウィズマン、パイロットビクター・グローバー、クリスティーナ・コッホ、およびCSA宇宙飛行士ジェレミー・ハンセンです。NASAはケネディ宇宙センターで午後9時に打ち上げ後の記者会見を開催し、その後クルーは中間液体推進ステージを使用した近接操作デモンストレーションの準備に取り組みます。

2026/04/02 6:36

DRAM の価格がホビイスト向けのSBC市場を潰しつつあります。

## Japanese Translation: ### 改訂要約 ホビイスト向けのシングルボードコンピュータ(SBC)市場は、DRAM価格が急騰したため圧迫を受けています。Raspberry Pi は LPDDR4 RAM を搭載したすべての Pi モデルの価格を引き上げ、新しい 3 GB‑RAM の Pi 4 を $83.75 に設定し、16 GB の Pi 5 を $299.99 にしました。これらの値上げは主に LPDDR チップのコスト増によるもので、現在ボードコストの大部分を占めています。その結果、4 GB 以上の RAM を搭載したボードは多くのホビイストにとって手が届かないものとなっています。以前はお得だったミニ PC は 8 GB バリアントで $250 を超え、同様に使用済み PC も 4 GB 超で $250 を上回る価格になっています。Radxa は昨年新しいボードをリリースし続けましたが、ほかのベンダーは発売を減速または停止しています。Raspberry Pi の創設者 Eben Upton は「メモリ価格は現在の非常に高い水準で永続するわけではない」と述べており、その期間は不確実です。著者自身のプロジェクトは学習コストを下げ、破損リスクを減らすために $100 未満の部品を対象としています。DRAM 価格が高止まりする場合、ホビイストは古い SBC やマイクロコントローラへ戻る可能性が高く、手頃な選択肢が狭まり、小規模ベンダーは事業停止のリスクに直面します。Raspberry Pi の強力なマイクロコントローラエコシステムと産業基盤はある程度のレジリエンスを提供しますが、ホビイストセグメント全体での多様性は減少する可能性があります。

**Windows 95:古いバージョンのファイルで上書きされるインストーラに対する防御策** - **ファイルシステム保護** - FAT ファイルシステムは、書き込まれるファイルのタイムスタンプを確認します。新しいファイルが既存ファイルよりも古い場合、Windows 95 は上書きを拒否します。 - **ユーザー確認プロンプト** - インストーラが既存ファイルを日付的に古いコピーで置き換えようとすると、Windows 95 は「本当に続行しますか?」というダイアログボックスを表示し、ユーザーの確認を求めます。 - **読み取り専用属性の強制** - 読み取り専用に設定されたファイルは、ユーザーが属性を明示的に変更するか、管理者権限でインストーラを実行しない限り、上書きできません。 - **インストーラ整合性チェック** - インストーラにはチェックサム検証機能が組み込まれることがあります。書き込み対象ファイルのチェックサムが期待値と一致しない場合、インストールは停止します。 - **バックアップ・ロールバックメカニズム** - ファイルを置き換える前に、Windows 95 は一時的なバックアップコピーを作成することがあります。新しいファイルが検証に失敗したり、古い場合はシステムが自動的に元のバージョンへ復旧します。 | そっか~ニュース