新OSや仮想マシンがソフトウェアにパッチを当てる件
過去のOSのアプリケーションを新しいOS上で実行しようとしたり、あるいはVMwareなどの仮想マシン上でOSを実行しようとしたり、エミュレータ上でゲームを動かそうとすると、互換性や実効性能の面からさまざまな課題に直面します。
それらの課題に対して、新OSやVMやエミュレータやコピーツールが何をしたかを調査し、結果をまとめました。
[[$$amazon-search-result-middle books-jp OS 互換性]]
Windows95
- Windows95と地上の星 (Life is beautiful)
- Windows3.1用ソフトウェアをWindows95で動作するように動的パッチした話。
- 「Windows3.1用に作られたサードパーティのプログラムをロード時にダイナミックに変更して、Windows95で動くようにしてしまうというウルトラCだ。SatoshiがReader Rabbitに加えるべき変更点をデータ化し、Kevinがそのデータを読み込んでパッチをあてる様にKernelのローダーを変更する。Reader Rabbitが新しいKernelの元で動くようになった時には、既に朝であった。」
- ストラテジーレターⅡ:鶏と卵の問題 (Joel on Software)
- 新OSにとっての、過去のアプリケーションとの互換の重要性
- 「Windows 95にSimCityを検出するコードを追加した。それがSimCityが実行されているのを見つけると、それはメモリをすぐには開放しない特殊なモードでメモリアロケータを実行するのだ。」
WindowsXP/2003
- 本当はすごい「Windowsの互換性維持」 (日経ITpro)
- WindowsXP/2003から採用された互換性維持のためのデータベースの話。
- 「現在,世界中で何千万台と出荷されているWindows XPにはもれなく,Windows 95版の「ときめきメモリアル」を正常に動作させるための設定が施されている---そう考えると,なんだか胸が高鳴ってしまうのは筆者だけだろうか?」
- Windows XP アプリケーション互換性技術 (Microsoft TechNet)
- Microsoftによる説明
Winodws 7 (shim)
- Windowsの互換性テクノロジの仕組み(前編) − @IT
- 『「Windows互換性テクノロジ」と呼ばれる機能が標準で実装されている。このテクノロジはWindows 7から新しく搭載されたものではなく、実はWindows 2000の時代からずっと存在している』
VMware
- プロセッサへの実装が始まった仮想化支援機能 (日経ITpro)
- 「VMware製品は,ゲストOSで使われているそれらの命令を,VMMが横取りできるよう動的に書き換えて,実行している。このような仮想化の方式を「バイナリ・トランスレーション」と呼ぶ。」
エミュレータ
- PCEエミュレータの実行速度を速くしたい (Aoisomeのファミコンエミュレータをいまさらだけど作ってみたけどやっぱりPCエンジンのエミュレータを作ってみる日記)
- ビジーループを未定義命令で置き換えることで性能向上させる計画
コピーツール
- Apple IIのコピープロテクト(魔法の呪文 D5 AA 96) (メカAG)
- 「Copy II Plusは上記とは方向が異なり、ソフトウェアにパッチを当てることでプロテクトのチェックルーチンを外すことに力を入れていたツールだ。当然多くのパラメータが発表されていた。オートモードはそれほど強くない。日本でいえばMagic Copyに当たる。」
リンク
- Windows95の互換性譚 (大富豪家2.0の日記)
- Windows95の例を肴にいろいろな話が展開。NTTの交換機CPUの話など。
その他
- Linuxカーネル標準の仮想化機能KVM (日経ITpro)
- 特集「仮想化の正体」(2) (日経ITpro)
- x86仮想化 (Wikipedia)
- インテル バーチャライゼーション・テクノロジー (Wikipedia)
[[$$amazon-search-result-middle books-jp OS 仮想化]]