Domain/OS

Domain/OS（ドメインオーエス）アポロコンピュータ社 (Apollo Computer, Inc.)製のワークステーション、Apollo DOMAINシリーズに搭載していた分散オペレーティングシステム。Apollo DOMAINシリーズには、CRT表示インターフェースボードありのDNシリーズ、CRT表示インタフェースボードなしのDSPシリーズが存在した。
また、従来はAEGISがオペレーティングシステムとして搭載されていたが、DN-10000・DSP-10000など、マルチプロセッサ構成のコンピュータをリリースにあたり、これまでのオペレーティングシステムの設計を見直し、再設計されたオペレーティングシステムがDomain/OSである。分散オペレーティングシステムの機能は、AEGISから受け継いだものである。
当時としては桁外れの先進機能を備えていたが、ヒューレット・パッカード社 (HP) に吸収され消滅した。
DOMAIN/OSは当時のワークステーション業界においてプログラム編集開発環境、ネットワーク技術分散技術、グラフィック技術において世界で最も進んでいたOSである。その技術の一部をOpen Software Foundation (OSF) へ提供し、さらにHP-UXへ機能移植行う数年がかりの計画を発表したが、UNIXとのあまりの機能格差が大きすぎたため途中で断念した。
理想を言えば既にマイクロカーネル化を実現していたDomain/OSカーネルに他のUNIX同様、HP-UXを4つ目のOSミドルウェアとして搭載する手法が妥当であったが、吸収された手前行われなかった。
分散オペレーティングシステムとは、ネットワークで接続された複数のコンピュータを、一つの大きなシステムと捉えて管理するオペレーティングシステムのことである。DOMAIN/OSは、AEGIS同様に分散処理の管理機能を備えており、さらに分散ファイルシステムも搭載していた。
ここでDOMAINとは、“Distributed Operating Multi Access Interactive Network” の略である。

開発の終焉

Apollo社独自のウィンドウシステムに比重を置いていたことと、ディスプレイマネージャが非常に軽いウインドウシステムであったため搭載されることはなかった。その後、別売りでHP-VUE（Motif (GUI) ベースのウィンドウマネージャー）が売られるようになり、Xもある程度まともに操作できる環境は整ったが、起動が遅いこと、別売り（高価）である問題が解決できていなかったこともあり、Xを動作条件するもの以外わざわざXを使用することは少なかった。
結局、Xの動作環境を改善することなくDOMAIN/OSのリリースは終了した。
なお、HP社内ではXにディスプレイマネージャ環境を移植したソフトウェアDMX (HP-UX)、ディスプレイマネージャとXを独立動作させるワークスペース切替など、いろいろと試みがあったようだが、リリースされることはなかった。

OSの移行

AEGISの時はモノリシックカーネルであった。その上にディスプレイマネージャが搭載されていた。
UNIXについては標準ではなく別売りの追加機能としてDOMAIN/IXという名称でUNIX (4.2BSD, UNIX System V) の機能をライブラリレベルで提供していた。
Domain/OSに移行の際、AEGISのモノリシックカーネルの機能分離を行いマイクロカーネル化（Domain/OSカーネル）を行った。さらにAEGISソースコードはUNIXに合わせ、PascalからC言語に置き換えを行った。AEGISの高度な機能部分をミドルウェア化を行い、同時にUNIX (4.3BSD, UNIX System V Release 3) をミドルウェア化を行うことで、Domain/OSが完成した。PascalからC言語への置き換えの影響でOSのファイルシステムにてアルファベットの大文字、小文字を区別するようになった。
マイクロカーネル化したDomain/OSカーネルのSPI (System Programming Interface) は公開されていなかった。
また、将来Domain/OSカーネルをMach (Multiple Asynchronously Communication Hosts) カーネルに置き換える予定も存在したが、リリースすることなかった。
なお、Machへの置換えは、当時の流れとDOMAIN/OSカーネルの構造考えたとき、マルチプロセッサ化をより容易に行うことを目的としていた。さらに、メモリオブジェクトをネットワーク分散システム拡張することで理論上DOMAIN/OSカーネルの必要最低限の機能を実現できると言う憶測であったが、Machの完成度がまだ低かったため検討・計画のみ行われたが、HP社に吸収されたことで終了した。

Apple社とのパートナーシップ

Apollo社はApple社とのパートナーシップを結んでいた。Domain/OS を実行するワークステーション系列に Mac デスクトップを移植する作業を行っていたが、スティーブ・ジョブズ (Steven Paul Jobs) がApple社を離れると、後任のジャン＝ルイ・ガセー（Jean-Louis Gassée)によりこの契約を解除された。この開発に投資していたApollo社にとっては大打撃となった。

ファイル管理

DOMAIN/OSではネットワーク上のすべてのファイルをオブジェクトとして抽象化を行い管理する。このオブジェクト管理機構をOSS (Object Storage System) と呼んだ。DOMAIN/OSのオブジェクトはUID (Unique Identifier) という64ビットのネットワークワイド一義的識別子で管理される。

アカウント管理

レジストリデーモンというネットワーク分散技術を使用したアカウント管理を実現していた。ここで使用されたネットワーク分散技術（当時NCS (Network Computing System) と呼ばれた）は、その後、OMGのCORBAおよびMicrosoft DCOMの基となった技術である。
Domain/OSのアカウントはネットワーク全体を管理するネットワークレジストリとその機器のみのアカウントを管理するローカルレジストリが存在した。優先されるのはネットワークレジストリで、ネットワークレジストリにアクセスできない場合、ローカルレジストリが存在する。ログインする機器がネットワーク接続できないトラブルが発生してもローカルレジストリがカバーする仕組みである。これらの管理要素は、「オーナー」、「グループ」、「組織」という要素にパスワードをつける形式であった。
もともとUNIXより大きな枠組みがAEGISころから存在したのでそのまま機能を拡張していない。
スーパーユーザーはUNIXと同様rootが存在し、さらに、locksmithというスーパーユーザーグループが存在した。locksmithはUNIXには無い概念だが、WindowsのAdministratorsに相当する。
組織については特別なものは登録されていない。
Domain/OSには、他のUNIX機器とアカウント統合で互換性をもつためYP（Yellow Page、現在のNIS (Network Information Service)）も存在した。ただし、DOMAIN/OSで同士では利用しない。

シェル（コマンドプロセッサ）

シェルはAEGIS用にAEGISシェル、UNIX用にBourne Shell、C Shell、KornShellの環境が用意されていた。ユーザーはその中で使いやすい環境を選択できた。また、同時に複数種類の環境を走らせることも可能であった。

シングルレベルストア

この方式では、ストレージ階層化を行わない。
プライマリストレージは、プライマリストレージが、メインメモリ＋ディスクのフリースペースとなる。
そのため、プライマリストレージは可変長記憶システムとなっている。つまり、実行状況で変化する。
ファイルシステムには、その場所を示す「特別なアドレス」が割り当てられる。
特別なアドレスは、OSにより表現が違うのみで機能的に同一である。
プログラムの実行には、プライマリストレージに、「特別なアドレス」をマップすることで実行される。
このため、プライマリストレージへの転送がないため、実行が高速である。
さらに、スワップエリアを専用で持つ必要がない。
なお、「特別なアドレス」の範囲が機器単体で管理される範囲としている。
Multics (Multiplexed Information and Computing Service) やIBM System/38,AS/400等ではこの方式を採用している。

ネットワークワイドシングルレベルストア

基本的に、シングルレベルストアと同じ方式で実行される。
違いは「特別なアドレス」は、オブジェクトアドレス空間と言い、ネットワーク全体を含む96ビットの巨大なアドレス空間をあつかう。
このため、Domain/OSでは、特別な手続きなしに、ネットワーク接続されたすべての機器にあるプログラムを直接実行が可能である。
これにより、ネットワーク全体を1システムととらえ、プログラムリソースを分散できるという強みを持っている。
また、この機能をサポートするため、ネットワークワイド・デマウントページングをサポートしている。
なお、UNIXもOSF（Open software Foundation = IBM, HP, DEC, Apolloによって設立された分散コンピューティング技術の普及を目的として設立された非営利の業界団体）のOS再構築にて、シングルレベルストアへ移行することを計画した。
ただし、実際の製品ではそこまでの改変されていなかった。

ネットワークワイド・デマウントページング

ページング処理については、ダブルレベル仮想ストアやシングルレベルストアと同じ条件で行われている。
大きな違いは、ネットワークワイドシングルレベルストアであるため、自ノード以外のリモートノードからマッピングを行うことがある。
そのため、ネットワークワイドにデマントページング処理を行う必要がある。
上記機能を実現するため、2つのネット・ページジング・サーバが動作しており、ローカル用とリモート用が動作している。
マッピングされるオブジェクトアドレスには、ノードID情報が含まれており、この値で、自ノードかリモートノードかを判定している。