Ultrix

歴史

UNIXの初期の開発はDECの製品（DEC PDP-7 と PDP-11システム）上で行われた。その後のVAXシステムなどのDEC製コンピュータもUNIXを動作させるプラットフォームとしては一般的であった。VAXへの最初の移植はUNIX/32Vであり、1978年に完成した（VAX自体のリリースは1977年10月である）。しかし、DEC自身は独自のオペレーティングシステムVMSを提供しており、UNIXを認めるには時間がかかったのである。
社内にUNIXを持ち込むきっかけとして、Bill MunsonはDEC内にUnix Engineering Group (UEG) を立ち上げた。当初のメンバーには、DECの顧客サービス技術部門のJerry BrennerとFred Canter、ケース・ウェスタン・リザーブ大学のBill Shannon、ベル研究所のArmando Stettnerらがいる。その後のメンバーとしては、Joel Magid、Bill Doll、Jim Barclay らがDEC内の様々なマーケティング部門や製品管理部門から集められた。
Canterの指揮の下、UEGチームはV7Mをリリースした。Version 7 Unixの修正版である。

BSD

ShannonとStettnerはUNIX/32VのCPU周りやドライバサポートに当初取り組んだが、間もなくカリフォルニア大学バークレー校の4BSD開発グループと共に働くことに集中するようになった。バークレーのビル・ジョイはニューハンプシャー州に乗り込んで Shannon や Stettner と合流し、UEGによるCPU周りとドライバを含めてBSDリリースをまとめ、最終的な開発とテストをDECの様々なシステム構成で行った。また、3人はVMS開発グループの使用しているメインのVAXでの最終評価も行った。翌朝、端末にUNIXのプロンプトが表示されてもVMS開発者からは何のコメントもなかったという。UEGのマシンで最初の新しいUNIXが動作し、4.5BSDとラベルを貼ったテープをビル・ジョイが持っていった。次のバージョンは5BSDになると考えられていたが、大学の弁護士は4.1BSDという名称にすることを勧めた。4.1BSDが完成すると、ビル・ジョイはバークレーを辞めてサン・マイクロシステムズ設立に関わることになる。Bill Shannon も後にニューハンプシャーを後にしてサンに合流した。
ちなみにUEGのメインのVAX (decvax) は UUCP と Usenetネットワークの主要ノードのひとつであった。米国西海岸のUCバークレー (ucbvax) と東海岸のデューク大学 (duke) の電子メールとネットニュースを初めてリアルタイムで接続した。後にネットニュースに圧縮機能が追加されると、decvaxはヨーロッパ（アムステルダムのVrije Universiteit）やオーストラリア（メルボルン大学）にも接続され、少なくとも1日に2回通信を行った。
Armando StettnerはBill Dollとの立ち話で、そろそろDECが自身の製品としてVAX用UNIXを顧客にリリースすべきであると提案した。Bill Munsonへの提案書が作られ、彼はそれをケン・オルセンに提案した。オルセンはUNIXのライセンスプレートをつかみ、誰かの胸をそれで叩きながら「やろう」と言ったといわれている。Ultrixの始まりである。
UNIXのライセンスプレートとは、Stettnerが作った自動車のナンバープレート状のプレートである。ニューハンプシャー州には "Live Free or Die" というモットーがあり、ナンバープレートにはそれが書かれていた。その言葉とUNIXの精神の類似を感じて、Stettnerはそのようなプレートを作ったといわれている。彼はこれをUsenixで配っていた。

最初のリリース

最初のUltrix-32は4.2BSDベースで、System Vからいくつかの機能を持ち込み、1984年にリリースされた。その目的はDEC自身がVAX用UNIXをサポートすることにあった。また、decvaxをUUCP/ネットニュースで使っていた経験も生かして、いくつか改造が加えられた。後にUltrix-32はDECnetをサポートし、DEC LATなどのDEC独自のプロトコルもサポートすることになった。コンピュータ・クラスターはサポートしなかった。その後すぐにV7Mをベースとした製品も提供した。AT&Tのライセンス規定により、DEC（も他社も）バイナリのみを配布することしかできなかった。従って、様々な構成に合わせた設定ができるように柔軟な設定機能を追加することに力が注がれた。
後にDECは3つのプラットフォーム向けにUNIXを提供した。PDP-11（様々なOSが既にあり、その1つとして）、VAX（2つの主要OSの1つとして）、そしてDECの最初のRISCシステムであるDECstationワークステーションとDECsystemサーバである（唯一のOSとしてUltrixが使われた）。DECstation はMIPSアーキテクチャのプロセッサを使用したもので、後のAlphaではない。
本来は Ultrix-11 と Ultrix-32 というようにプラットフォーム毎に名称が違っていたが、PDP-11が使われなくなると単に Ultrix として知られるようになった。Buglix とか Scrofulix と中傷されることもあった。MIPS版Ultrixがリリースされると、VAX版との違いを示すためVAX/ULTRIXとRISC/ULRTIXと呼ばれるようになった。技術的な重点はサポータビリティと信頼性の向上に置かれ、CPUやデバイスドライバサポートの改良（これはバークレーにも送られた）、ハードウェア故障サポートと復旧やエラーメッセージの改善など、様々な改良が施された。Ultrix-32には4.3BSDの機能、DECnet、TCP/IP、SMTPなどが追加されていった。
UltrixにはSystem Vのプロセス間通信 (IPC) 機能（名前つきパイプ、メッセージ、セマフォ、共有メモリ）も実装された。SVR4がサンとAT&Tの共同開発によって1986年末に開発され、これにはBSDの機能が取り入れられたわけだが、DECは逆にSystem Vの機能をBSDに取り入れたのである（UNIX戦争参照）。
VAXのワークステーション向けに Ultrix-32 はUWS (Ultrix Workstation Software) と呼ばれるデスクトップ環境を持っていた。これはX Window Systemに基づくものである。後にX11ベースとなりDECwindowsと呼ばれるようになったが、UWSに似せたルック・アンド・フィールが使われた。その後、DECwindowsには Motif のルック・アンド・フィールも追加された。
UltrixはVAXやDECsystemのマルチプロセッサシステム上で動作した。カーネルは対称型マルチプロセッシングをサポートしていたが、完全なマルチスレッドではなかった。一部のタスクは特定のCPUでのみ動作した（割り込み処理など）。これは当時の他のSMP実装（SunOSなど）とは異なる。このように Ultrix は他社と比較してUNIXの最新機能をサポートするのが遅かった（例えば、共有ライブラリは最後までサポートされず、4.3BSDのシステムコールや数学ライブラリなどのライブラリのサポートも遅かった）。また、様々な問題に悩まされ、特にファイルシステムは不安定だった（4.3BSDのファイルシステムに関する修正は取り入れられなかった）。

最後のリリース

OSFへの関与の一環で、DECは Ultrix-32 を OSF/1で置き換えた。これはAlphaベースのシステムが登場する少し前にリリースされた。OSF/1はMachベースのカーネルを使い、Ultrixにはない様々な機能を備えていた。UEG（当時は Ultrix Engineering Group）は OSF/1ベースの Digital Unix(後のTru64 UNIX) がDECのハードウェア上で動作するよう信頼性と保守性を重視しつつ開発をおこなった。
Ultrixの最後のメジャーリリースは1995年のバージョン4.5であり、DECstationとVAX向けである。その後、Y2Kパッチがいくつか出ている。