Yakstは、海外の役立つブログ記事などを人力で翻訳して公開するプロジェクトです。
6ヶ月前投稿 修正あり

Windowsのドライバーの日付が全部2006年6月21日なのはなぜ?更新されていないの?

バージョン番号が変わるのに日付が全部同じという不思議な仕組みのWindowsのドライバー。そこには秘密が。

原文
Why are all Windows drivers dated June 21, 2006? Don’t you ever update drivers? – The Old New Thing (English)
翻訳者
D98ee74ffe0fafbdc83b23907dda3665 doublemarket


なぜWindowsのドライバーの日付が2006年6月21日なのか?ドライバーをアップデートしたことないの?単なるなまけ者集団?

もっと重要なことに、2006年6月21日という日付は、Storage Spacesのように2006年に存在すらしていなかったドライバーにも適用されているのです!また開発部門がタイムマシンを使ったのでしょうか?

Windowsのすべてのドライバーの日付は2006年6月21日に設定されています。バージョン番号は時とともに増えていきますが、タイムスタンプは変わらないままです。

私の同僚Zacがこう説明しています。ある特定のハードウェアのために使うドライバーを探す時、システムは色々な基準に基づいてドライバーをランク付けします。ドライバーがハードウェアIDとぴったり一致するなら、それが1番目の候補になります。複数のドライバーが一致する場合、最も新しいタイムスタンプを持つものが選ばれます。それでもまだ複数ある場合、最も大きいファイルバージョン番号を持つものが選ばれます。

ドライバーのタイムスタンプがビルドリリース日と一致している場合を考えてみましょう。さらに、製造元が提供しているカスタムドライバーを持っているとします。新しいビルドをインストールした時、Windowsが提供しているドライバーは製造元が提供しているドライバーよりも新しいタイムスタンプを持つことになります。その結果、新しいビルドをインストールすると、製造元が提供するドライバーはすべてWindowsのドライバーで置き換えられてしまうのです。おっと。

ドライバーの日付を意図的にさかのぼらせておくことで、この問題を回避できます。つまり、製造元が提供するカスタムドライバーがある時には、Windowsが提供しているドライバーよりもそれらが優先されるようになるのです。一方で、もし既存のドライバーが前のビルドからあるWindows提供のドライバーなら、3番目のルールが適用されて、最も大きいバージョン番号を持つもの、つまり最新のビルドに含まれるものが選ばれます。

最終的にこれは完全に動作するわけですが、少々おかしな風に見えます。

「これは、一見馬鹿げていて大したことのないようなものが、実は深遠なる目的を持つという最高の例だね」とZacは私に言いました。

次の記事
MySQLのレプリケーション手法の違い
前の記事
GitLabのデータ消失に対するアドバイス

同じタグの付いた翻訳済み記事
Windows

Feed small 記事フィード