テクノロジー
256KBのコードで64KBを初期化。怒ったエミュレータチームがやったこと
Microsoftのベテランエンジニア、レイモンド・チェン(Raymond Chen)氏がまた、Windowsの内幕を一つ明かした。今回の舞台は、かつてWindowsに搭載されていたx86プロセッサエミュレータ。あるプログラムのあまりに酷いコードに義憤を覚えたチームが、エミュレーション中にそのコードを「修正」してしまったという話だ。 64KBの初期化に256KBを費やしたコンパイラ チェン氏が6月15日にブログ「The Old New Thing」で明かしたのは、x86以外のプロセッサでWindowsが動いていた時代のエピソードだ。具体的にどのプロセッサかは明かされていない。ただ、Windowsにはx86以外のアーキテクチャへ移植されてきた歴史がある。DEC Alpha、MIPS、PowerPC、Itanium、そして現在のARM64。そのたびに、x86アプリを動かすためのバイナリトランスレータが作られてきた。 問題のプログラムは、スタック上に約64KBのメモリを確保して初期化する必要があった。普通なら、スタックプローブで領域を確保し、小さなループで初期化する。数十バイトの命令