DOS以前よりPC(マイコン)を使っていた身からは、最近のソフトウェア互換性の高さは目を見張るものがある。その昔は、プロセッサアーキテクチャに合ったものでさえ四苦八苦してプログラムを実行していたので、エミュレーション動作など想定できず、ましてや仮想化技術等も存在すらしていなかったので(x86の世界で仮想86モードが搭載されたのは、1985年のIntel386(たまにはIntel社公式表記に従っておこう)が最初)、同じプログラムを他アーキテクチャ(命令セット)の上で動作させるには、プログラムを移植するという大きな手間を必要とした(今日に言うなら、PSPのゲームをNintendo DSに移植するようなイメージ)。
しかし、IBM System 360の思想を真似た仮想86モードの登場によって、DOSの仮想マシン化が可能になり、それはWindows/386に搭載されたVMM(仮想マシンマネージャ)によって接ぎ木のようにWindows内に取り込まれた。しかし、あくまでDOSの環境を再現するにとどまり、ハードウェアダイレクトアクセスが主流だったDOSアプリケーションを完全に再現させることは不可能だった。つまり、異なるOS上でのソフトウェア互換性とは「その程度」のものでしかなかったのである。
その後、Windowsアプリケーションソフトウェアが充実するに連れ、Win16アプリケーションとWin32アプリケーションとの互換性問題が表れてくる。Microsoft社の仕様に従ってWin16とWin32それぞれに合わせて注意深く作成されたソフトウェアであれば、どちらの環境でも動作するが、Win32アプリケーションは一部の例外を除き(ほとんどポンコツのWin32sを使うなど)Win16環境では動作できず(これはできなくてもいいのだが)、Win16アプリケーションはWin32環境ではWin16を動作させるための互換性機構を活用して動作させていた。だが、現実はシステムファイルの扱いに難があるなど確実な動作が期待できない例も多く、DOS時代よりは大きな前進だったが、それでも互換性についての注意を常に払っていなければならなかったのだった。
そして、32-bit環境から64-bit環境へ。この移行がスムーズに行われるのは、単にAMD社のおかげであると断言してよい。前世紀、Intel社はIA-64というIA-32(x86)とはまったく互換性のないものを持ち出し、結果としてそれはItaniumに結実したが、それは惨憺たるものだった。建前上は「予定どおり」(何度も予定というか前提が大きく変えられたが)としているが、そもそもIA-64はIA-32をすべて置き換える計画だったので、それからすれば現状を見て「予定どおり」というなら投資額はまったく見合わないものとなるだろう。こういった混乱の中、AMD社はIA-32(x86)からの移行を大前提としたAMD64(x64)を発表し、それをプロセッサに実装した。ソフトウェア互換性をも考慮に入れたこの方式はMicrosoft社の支持も取り付け、しばらくしてIntel社はIA-64とは異なるIA-32との互換性を意識したYamhill(コードネーム)を用意していたが、社内闘争(IA-64グループからの反発)からリリースまでには至らず、AMD64の普及具合からYamhill用に用意されていたハードウェアを一部改良し、AMD64とほとんど同じEM64Tとして実現した。これが一定の時期を経てIntel64と改名され、うちの64-bitは最初からIntel64だというポーズをとっている。
このおかげで32-bitから64-bitへのソフトウェア移行は格段に簡単になり、それがソフトウェアの基幹であるOSにもいい影響を与え、Windowsの64-bit(x64)版は32-bit版と極めて高い互換性を維持できているのだ。
さて、そういうことからか、まだ新VAIO ZではほとんどがWin32アプリケーションソフトウェアであるにもかかわらず、ほとんどが問題なく動作し、たまにヘンな表示などに出くわすと、ああそうだ、これは64-bit OSで動作する32-bitエミュレーションなのだ、と思い出すくらい。そうなのだ。64-bitへの移行はこれまでの移行には見られない簡単さであって、これはAMD社のおかげであるのだ、と感謝しつつ今回はここまで。
コメント