SUN-OSのRelease 4.0の仕様が発表になったけれど、 君はどう思っていることだろう。 UNIXのケチをつけるのが楽しい憩のひとときであった我々ではあるが、 いやあ、だんだん文句がつけにくくなっていくので悲しい。 UNIXの文句というと色々ある(あった)。 ライブラリのダイナミック・リンクの機能がないので、 ロード・モジュールがでかくなってしまいディスクを食う。 スレッド(ライト・ウエイト・プロセス)がないので、 ネットワークのプログラムや、 ウィンドウ・システム下のインタラクティブなアプリケーションが書きにくい。 ファイルをメモリ(プロセスのアドレス空間)にマップすることができないので、 データベースなどのアプリケーションに向かない。 スワップ領域用のデバイスが、 通常のファイル・システム用のデバイスと分かれているため、 ディスクが効率良く使えない。 ネットワーク・ファイル・システムがあるのに、 ディスクレス・ノードはネットワーク・ディスクがないと動かない。 (ただし、最後のものは、UNIX一般に対する文句というより、 SUN-OSに対する文句である。) 実は、残念なことに、 以上のような文句は、 もう言えなくなってしまうのである。 別にSUNの宣伝をするつもりはないが、 Release 4.0では、メモリ管理の大改訂を中心にして、 UNIXの悲願であった問題が次々と解決されてしまったのである。 ダイナミック・ロードの機能は、 ダイナミック・ローダを新たに導入し、 コンパイラにポジション・インディペンデントなコードを 出力するオプションを付加することによって可能となった。 スレッドの機能はライブラリによって導入された(ライブラリでやるところが、 若干せこいという気もする)。 メモリ管理の大改訂によって、 メモリをファイルにマップすることが可能となった。 スワップ領域は通常のファイルとして実現されるようになり、 スワップ・デバイスがなくなった。 ディスクレス・ノードは、 ネットワーク・ファイル・システムによってブートできるようになった(従って、 ネットワーク・ディスクはもう要らない)。 しかし、よく考えてみると、以上のような機能は決して新しいものではない。 どれも、オペレーティング・システムの分野では既に確立されている記述であり、 要するに、UNIXだけが(わざと)サボっていたものなのである。 とはいっても、それをチャンとやるところがSUNは偉いのである。 偉い、偉い、偉い、偉い、偉い、偉い、偉い、偉い、偉い、偉い。 しかも、従来のUNIXとのコンパチビリティを保ちながら。 コンパチビリティ、コンパチビリティ、コンパチビリティ、コンパチビリティ。 さて、これで、UNIXのケチをつける楽しみがなくなってしまった、 とガッカリしたのであるが、 これまた、よく考えてみると、全然ガッカリすることはないのである。 UNIXは、依然として、二つの致命的な欠陥を持っているのである。 一つは、リアル・タイム性。 これについては、何も説明することはあるまい。 リアル・タイム性の無さがUNIXの本質ではないことは、 リアル・タイムUNIXというようなものが数多く出回っていることが示してはいるが、 UNIX全体にリアル・タイム性を持たせることは、 果たして可能であるのかよく分からない(おそらく、 UNIXカーネル全体を書き直す必要があるだろう)。 また、リアル・タイムUNIXと呼ばれているものは、 UNIX全体にリアル・タイム性を持たせたものではなく、 UNIXに、チョコっとリアル・タイムの部分をくっつけたものに過ぎない。 もう一つは、フォールト・トレレント・ファイル・システム。 これについても、何も説明することはあるまい。 SUN-OSのRelease 4.0でも、ファイル・システムの変更はない(つまり、 従来通りである)。 フォールト・トレレント・ファイル・システムの欠如が、 UNIXをして、OA等の分野からマトモなOSという評価を得ることを不可能として いるのであるが。 (余談であるが、StallmanのGNUプロジェクトのOSは、 フォールト・トレレントなファイル・システムを実装するそうであるが、 GNU OSのできる日は遠い。) 以上の欠陥は昔から言い古されていることである。 更に、いよいよ実用化されようとしている 分散OSの立場からも文句をつけることができる。 要するに、SUN-OSを含めてUNIXは分散OSではないということ。 ネットワーク・ファイル・システムによって、 一つのマシンから他のマシンのファイルを自由にアクセスすることができる。 インストールによっては、ネットワーク全体が 一つのファイル・システムを共有しているように見せることもできる。 しかし、そのようなことは、OSの他の資源についてはいえない。 例えば、Aというマシンで走っているプロセスから、 Bというマシンで走っているプロセスに直接シグナルを送ることはできない。 要するに、UNIXは分散OSではないのである。 世界中の大学で、UNIXを分散化する研究が行われている。 だから、UNIXを分散化することは不可能なことではない。 しかし、SUN-OSが分散化されるまでには、まだ時間がかかりそうである。 従って、それまでは、SUN-OSなんて分散OSでもないくせに、 という文句はいえるので、嬉しい。 最後の文句は、マルチ・プロセッサ化である。 これも、世界中で、UNIXをマルチ・プロセッサ化する研究が行われている。 実際に、UNIXをマルチ・プロセッサ化したOSが売り出されている。 しかし、SUN-OSがマルチ・プロセッサ化されるまでには、 まだ時間がかかりそうである。 なにしろ、SUNがマルチ・プロセッサ・ワークステーションを 売り出さなくてはならないのだから。 従って、それまでは、SUN-OSなんてマルチ・プロセッサOSでもないくせに、 という文句はいえるので、嬉しい。