Windows NT 4.0 をいまさら VMware 上で動かす (Reprise)
昨日の HalProcessorIdle が HLT 呼んでない問題だけどこれは halmps.dll なんかのマルチプロセッサ対応 HAL に限っての話で、それ以外の halapic.dll なんかのユニプロセッサ対応 HAL ではちゃんと呼んでるんだな。 つまりこの実装は意図的なものなんだろう、カーネルと言われてもサンダースとしか思い浮かばない情報処理弱者なので理由はわからんけど。
HLT 命令って実行した CPU しかお休みしてくれない & 同じ改造を NT 3.51 でやってる人の話じゃ HalProcessIdle に HLT 命令入れても CPU 100% が 50% になる(つまり 2 コアのうち片方がビジー)程度で NT 4.0 と比べて効果薄いそうだからなんとなく想像はつくけど。 そもそも当時まだ高嶺の花のマルチプロセッサで計算休む暇なんて無くね?という話もあるんだろう。
そんなわけで正しい結論としては「仮想環境で NT 4.0 飼うならユニプロセッサで」という酷いオチ、また下らない記事書いちゃったね。 もはや誰もこのチラシの裏を読んでる人間がいるはずもないのでどうでもいいか。
ABIT BP6 や VP6 で Windows 2000 動かしてた頃からの手癖で、インストール時に F5 キー押してマルチプロセッサ対応 HAL 選んでしまったのが間違いであった。 そいや何年か前にジャンク屋巡り中に Tyan Tiger MPX の未開封品を 500 円で買ってしまったけど、Athlon MP なんて今更入手できないし絶賛放置中である。
Athlon XP をパターン加工すれば MP 代わりに使えるのは知識としてあるんだけどそもそも Athlon XP 自体も今更ジャンク屋にも無いのだ、あっても FSB 333MHz は動かねえしな。 もうとっくに都市鉱山としてあの忌まわしき東京オリンピックの金メダルに生まれ変わったに違いない。