DECからMicrosoftへ移籍Cutler氏

この頃のDECは、回路を単純化して使用頻度の高い命令を集中的に処理できるRISC(Reduced Instruction Set Computer)チップの開発に取り組んでいました。後のAlphaにつながりますが、このRISC搭載マシンの担当者として白羽(しらは)の矢が立ったのがCutler氏です。同マシンはPrism(プリズム)と呼ばれ、Cutler氏のラボではOSとしてMica(マイカ)の設計に取り組みました。

いずれも開発プロジェクト名ですが、光の屈折や分散などを起こすガラスなどの三角柱と、ケイ酸塩鉱物のグループを指す雲母(うんも)を意味し、当時一大勢力を誇ったUNIXと自社のVMSと互換レイヤーを持ちながらも、スーパーコンピューター(科学技術計算を主要目的とする大規模コンピューター)の10分の1程度に価格を抑えられる画期的なコンピューターが誕生する予定でした。

しかし、本社にいるCutler氏を面白く思わない存在の横やりと、前述の官僚主義により、1988年6月にプロジェクトはすべて中止。ここでDECを辞める決意をしたそうです。同氏がDECで飼い殺しされていることに注目したのが、当時Microsoftで重要な地位にいたNathan Myhrvold(ネイサン・ミアボルド)氏。UNIXのさらなる成長と、RISCチップの普及によりMS-DOSのアドバンテージが縮小すると見ていたMyhrvold氏は、自社へ招き入れることをBill Gates(ビル・ゲイツ:現在はMicrosoft会長)氏に提案しました(図04)。

図04 Myhrvold氏が2011年に行った講演から。動画はこちらで視聴できます(画像は動画より)

開発チームの選択や契約内容などいくつかの問題が発生しましたが、1988年10月末、Cutler氏はMicrosoftに入社することになります。同氏はこのとき既に46歳と、プログラマーとしては高齢に入る年齢でした。それでもGates氏が描いていた"UNIXキラー"となり、RISCなど異なるプロセッサにも"移植性の高い"OSを新たに生み出すためには、Cutler氏が必要だったのです。

Microsoftに入社したCutler氏は自身の開発チームメンバーとして、DECを退社した元部下や、同氏を"カリスマ"と慕ってMicrosoftに転職した人材が集まり、10名足らずの"Cutler一家"が生まれました。加えてGates氏のCutlerに対する厚遇が、元からMicrosoftに在籍していた開発者と軋轢(あつれき)を生み出すことになります。この間を取り持ったのが、OS/2の開発にも携わっていたSteve Wood(スティーブ・ウッド)氏(詳しくは以前の記事をご覧ください)でした。

もともとCutler氏は学生時代からさまざまなスポーツに取り組み、大学生時代はフットボールの選手として高い評価を得ていたそうです。残念ながら試合中の骨折事故で選手への夢を諦めましたが、彼の攻撃性は家庭環境もさることながら、選手時代に培われた部分が大きく占めているのでしょう。その一方で部下からは高い評価を得ています。完璧を求めると同時に部下の采配を適切に行うバランス感は、学生時代から取り組んできたバスケットボールや、ベースボールといった団体スポーツへの取り組みから生まれたと言っても過言ではないでしょう。多くの開発者がCutler氏を慕って集まってきたのも理解できます。そのためNerd(ナード)と呼ばれるGates氏よりも、当時マーケティングを担当していたMicrosoftナンバー2のSteven Ballmer(スティーブン・バルマー:現在はCEO)氏と馬が合ったそうです。

このような紆余曲折(うよきょくせつ)を経て、ようやくWindows NTの開発が始まりました(この時点ではOS/2 3.0として世に登場する予定でした)。Cutler氏らはWindows NTを開発するにあたり、「移植性」「信頼性」「個性」と三つの目標を立てました。一つめの移植性はGates氏とMyhrvold氏が重要視していたプロセッサの進化に伴い、OSをゼロから作り上げるのではなく、最小構成部分を変更することで稼働させる仕組みです。

ソフトウェア開発に携わったことがある方ならご承知のとおり、アセンブラのような低級言語を使えば、コンパイルしたバイナリはコンパクトに動作しますが、高級言語の場合はサイズやメモリ消費量も肥大化せざるを得ません。詳しくは後述しますが、この問題を解決する手段としてHAL(Hardware Abstract Layer)を実装しました。

二つめの信頼性はアプリケーションがクラッシュしますと、OSを巻き込んで全体がハングアップするのを避けるため、カーネル領域とアプリケーション領域を分離して管理する構造で対応しています。そして三つめの個性はUI(ユーザーインターフェース)を固定化するのではなく、ユーザーが好みに応じて変更できる仕組みを目指しました。この時点で開発チームは、OS/2のPM(プレゼンテーションマネージャ)を搭載する予定でしたが、最終的にはWindows 3.xと同じ「プログラムマネージャ」を採用しています。

Portable Systemsと名付けた開発チームでは、Microsoft社内で作成したIntel i860(1989年にリリースされたRISCマイクロプロセッサ)を搭載した試作機を持ち込み、1989年初頭に基礎設計が完成したWindows NTのひな形を移植しましたが、当時はi860用デバッガーもろくに存在しなかったため、チーム内で独自ツールの開発をスタートしています。"牛の歩みも千里"を体現するような開発状況だったのでしょう。