出来事の日付:2026年9月10日

Microsoftのエンジニア、レイモンド・チェンは、Windows XPが新しく作成されたユーザーアカウントに割り当てる小さな画像をどのように選んでいたかを文書化し、このOSの挙動をめぐる限定的ながら根強い疑問に答えた。選択は無作為だったが、実装にはディレクトリからファイルを読み取るのに適した、意図的な1パス方式が使われていた。

Microsoftのブログ「The Old New Thing」に掲載されたチェンの説明によると、Windows XPは、システムのアプリケーションデータ保存場所にある共有のDefault Picturesディレクトリ内で候補画像を探した。選択にはWindowsのRtlRandomEx関数を使い、GetTickCountが返した現在値で初期化していた。この方式は、特定の画像を特定のユーザー名やアカウントの特徴に関連付けるのではなく、結果に変化を持たせることを目的としていた。

より興味深いのは、プログラムが利用可能なファイルからどのように選んだかという点だ。単純な実装なら、まずすべての画像を数え、無作為な位置を生成してから、もう一度ディレクトリを走査してその位置のファイルを取得することが考えられる。Windows XPは代わりに1パスのアルゴリズムを使用した。各候補が現れるたびに、現在の選択を置き換える確率が徐々に低下する仕組みだった。

最初のファイルが選ばれる確率は100%だ。次に2番目のファイルは2分の1の確率でそれに取って代わり、3番目は3分の1の確率となり、以後も同様に続く。すべてのファイルを検討し終えると、各候補が最終的な選択として残る確率は等しくなる。これは、最終的な大きさが事前に分からないストリームから無作為に項目を選ぶ手法である、リザーバサンプリングの1項目版だ。

この実装には、デスクトップOSにとって実用的な利点があった。事前に数えるための走査を省くことでファイルシステムへのアクセスを減らせるほか、2回の別々の走査の間にディレクトリが変更されないことを前提とせずに済んだ。ストレージへのアクセスが比較的遅かった場合や、アカウント作成中にソフトウェアが画像を追加または削除した場合には、いずれも問題になり得た。

Microsoftは、この処理に上限も設けていた。コードは100枚の画像を処理した時点でサンプリングを停止した。チェンはこれを、極端に多数のファイルを含むディレクトリなど、病的な事例に対する防御策だと説明した。この上限により、フォルダーの内容がWindows XPに同梱された少数の既定画像とは似ても似つかない状態になっていても、処理を予測可能な形で完了できた。

この説明は、Windowsの新機能やセキュリティ上の変更ではない。旧型OSの実装上の詳細について、現在になって行われた技術的な開示だ。それでも、なじみ深い視覚的な演出が、効率性、変化する入力への耐性、ディレクトリエントリーのストリームを単純に処理できることを理由に選ばれた、標準的なコンピューター科学の手法に基づいていたことを示している。