多くの技術を取り込んだWindows 2.0

Windows 1.0登場から数えて二年後の1987年12月9日。Windows 2.0が登場しました。多くのユーザーはWindows 1.0では実現せず、そしてMacintoshのOSであるMac OSでは既に実現していたオーバーラップウィンドウを実装し、ウィンドウのカスケード(重ね合わせ)を可能にしています。GUIの実装という観点から見れば、Windows 1.0はあくまでも試作レベルであり、Windows 2.0でようやく第一歩を踏み出したと述べた方が適切でしょう(図02~03)。

図02 Windows 2.03のブートスクリーン。Windows 2.0のリリースは1987年12月9日ですが、マイナーアップデート版となるWindows 2.03は1988年1月頃と言われています

図03 Windows 2.03のデスクトップ。Windows 1.0では方針的に採用を見送ったオーバーラップウィンドウを実装しています

確かにオーバーラップウィンドウの採用は、当時のWindowsユーザーには大きなメリットとなりましたが、Windows 2.0が前バージョンを駆逐できたのは、プロセッサのサポートが大きかったと思われます。そもそもWindows 1.0は当時普及しつつあったIntel(インテル)の80286(16ビットプロセッサ。1982年リリース)をサポートしておらず、必然的に使用できるメモリも640キロバイトに制限されていました。その一方でWindows 2.0はIntel 80286をサポートしていました。

そもそもIntel 8086はメガバイトクラスのデータを扱うことが想定されておらず、使用できるメモリ空間は1メガバイトに制限されています。Intel 8086がリリースされた1978年当初はメガバイトクラスのデータを扱う場面は想定されていなかったのでしょう。実際にOSやソフトウェアが使用できるユーザー領域は640キロバイト(もしくは768キロバイト)に制限されており、起動するアプリケーションに対しても多くの制限が設けられていました。

この問題を解決したのが前述のIntel 80286です。最大メモリ空間が16メガバイトまで拡大され、GUIを始めとするグラフィカルなソフトウェアを実行する際の効率性が大幅に向上しました。しかし、1メガバイトを超えるメモリ領域にアクセスするには、プロテクトモード(Protected Virtual Address Mode:保護仮想アドレスモード)で実行しなければなりませんが、当時多くのソフトウェアは、リアルモード(Real Address Mode:実アドレスモード。8086互換動作を行うモード)で動作しています。

この問題を解決したのが、バンクを切り替えることで使用可能なメモリ領域を切り替えるEMS(Expanded Memory Specification)。MicrosoftやIntel、当時大手のソフトウェア企業だったLotus(ロータス)の3社が提唱したEMSは、リアルモードで1メガバイトを超えるメモリ領域を使用できるため、GUI実装OSのパフォーマンスはもちろん、その上で動作するアプリケーションの動作環境も向上させるものでした。つまり、ハードウェアの進化と市場のニーズという複雑な関係から、求められたOSが登場したのです。

もちろん当時のメモリモジュールは高価でしたので、気軽に増設できるものではありませんが、DOS時代と比べると膨大なメモリを必要とするGUI環境には朗報でした。なお、この頃既に32ビットプロセッサとなるIntel 80386がリリースされています(1985年リリース)。1980年代のIBM PC互換機メーカーであるCompaq(現在はHewlett-PackardのPCブランド)が1986年にリリースした「Compaq DeskPro 386」は、初めてIntel 80386を搭載したコンピューターですが、7,499ドル(1ドル90円換算で約67万円)と個人向けというよりもビジネスユーザーをターゲットに販売。また、発売数カ月後からWindows 2.0のIntel 80386対応版である「Windows/386 2.0」を同こんしています。

この遅延はプロテクトモードが備えるタスク保護の管理下で8086用コードを実行し、仮想マシンの実装をハードウエア的に支援する「仮想86モード」をサポートするため、Compaqが独自拡張を行ったと言われています。そもそもMicrosoftが1987年12月9日にリリースしたWindows 2.0には、Intel 80286上で動作するバージョンのみですが、Intel 80386上で動作するWindows/386 2.0が存在したとも言われています。Intel 80386向けWindows 2.0がパッケージとして販売されるようになったのは、筆者が調べた限りでは次バージョンの2.1以降ですので、Windows/386 2.0は、MicrosoftとCompaqの間で結ばれた契約によってリリースされたのかもしれません。

あまり高評価を得られなかったWindows 2.0ですが、同バージョンからは、アプリケーション間通信に用いられるDDE(Dynamic Data Exchange)が搭載されました。Windows 9x時代まで主要技術として拡張子への関連付けなどに用いられ、後にオブジェクトのやり取りを行うOLE(Object Linking and Embedding)や、ソフトウェアの再利用に用いるCOM(Component Object Model)の基盤となった技術。Windows 2.0はオーバーラップウィンドウといった外面だけでなく、内面にも大きな改良を施し、その後のWindows OSに連なる基礎を作り上げたのです。