PR

 一口にMicrosoft Windowsといっても,実はさまざまな種類がある。いろいろな分類方法があると思うが,ここでは以下の3つに分けてみよう。

(1)Windows 3.1に代表される16ビットOS
(2)Windows 95に代表される16ビット/32ビット混在OS
(3)Windows NT以降の純32ビットOS

 歴代のWindowsで,商業的にもっとも成功したのはWindows 95だろう。実際の売り上げは,もしかしたらWindows 2000の方が大きいのかも知れないが,インパクトの大きさではWindows 95に勝るものはない。Windows 95の日本語版が登場したのは1995年暮れ(私が京都から東京に引っ越したときでもある),おそらく作り話だと思うがMacintoshユーザーが買って帰ったという逸話まで生まれたくらいだ。

 ただし,個人的な好みで言えば,Windows 95が一番嫌いである。せっかくの32ビットカーネルなのに,互換性のため(わざと)大量に残された16ビット・モジュールのために,その性能が生かされていないからだ。わざわざミューテックス(注1)まで組み込んで,性能を落としながら,16ビット・プログラムを生かしたと聞いたときはあきれてしまった。

 もちろん,マーケティング的には絶対に必要なことであったことは理解できる。一般ユーザーにとっても必要な機能に違いない。しかし,技術至上主義の立場からはかなり「汚い」構造であることは確かだ。

 では,一番好きなWindowsは何だとお思いになるだろうか。実はWindows 3.1なのである。Windows 3.1は確かに不安定で,不具合も多かったが,Windows 3.1のスタンダードモード(注2)は,インテル80286のアーキテクチャを実にうまく利用した素晴らしいOSだった。

 もちろん,不安定で不具合の多いOSなど価値はない。それでもWindows 3.1は80286のセグメント・アーキテクチャを実にうまく利用した素晴らしいOSだったと思う。もし責められるとすれば,コードの品質を保証できなかったコーディング・エンジニアと,80286を設計したデザイン・エンジニアであろう(注3)。しかし,Windows 3.1のアーキテクチャを設計した人は,与えられた条件の下で最善を尽くしたはずである。

 かなり専門的になるので,詳細は省略するが,メモリ割り当てと開放,そして再割り当てのメカニズムは目からうろこが落ちる思いであった。それは私が単にセグメント方式のメモリ管理システムに詳しくなかったせいもあるのだろうが,デマンドページングに慣れた目には新鮮に思えた。

 Windows NT系列は,最新のOS技術が投入されているし,インテルi386のアーキテクチャも,デマンド・ページングを含めて自然なものになった。Windows NTが,そしてその後継であるWindows 2000やWindows XPなどが優れているのは当然であり,それほど面白みはない。それよりも,80286という独特なアーキテクチャに実装されたWindows 3.1の方がよっぽど興味深いと思うのである。

 ところで,不安定なWindows 3.1と,技術的な妥協で一杯のWindows 95,両者にはエンジニアが目指すべき目標があるように思うのだが,それは別の機会に書いてみたい。

(注1)排他制御機能の一種。ミューテックスを確保したプログラムは実行できるが,確保できなかったプログラムはミューテックスが確保できるまで待つ必要がある。

(注2) Windows 3.1にはスタンダード・モードとエンハンスド・モードがあり,デフォルトはエンハンスド・モードだった。スタンダード・モードはインテル80286互換モードで動作する。

(注3)もちろん,8086との互換性を維持するために必要な妥協であったことは承知の上での暴論である。