index | labo | nextstep | rhapsody | network
1997.05.25 Updated

Rhapsody ROAD これからの道のり
1997.05.25 執筆中
RhapsodyとOPENSTEP

 WWDCではやくも "Prelude to Rhapsody" が参加者に配布されたという話が聞こえてきましたので、NEXTSTEP編と並行してRhapsody編を書き始めることにしました。もうお気づきとは思いますが、このページでは書いている途中のものを掲載しています(笑)。(しまったなぁ、千葉の申し込みしとけばよかった……旅費のいらない大阪だったら申し込んだのに)

 さて、Rhapsody編ではRhapsodyのYellow boxについて書いていきます。いままでのAppleの発表を素直に受け取ればYellow boxはOPENSTEPそのものだといえます。OPENSTEPには誤解が多いのでこの章ではRhapsodyとOPENSTEPの関係について書きます。

Yellow boxの構成
 Appleが公開しているRhapsody(のYellow box)の構成図を、以下のようにYellow boxを3つの部品に簡略化して書き直してみました。(OPENSTEPの定義が間違っていますがここでは目をつぶってください)。WWDCでYellow boxのマルチプラットホーム戦略が発表されましたが、以下の表は主要なプラットホーム3つについてのものです。

MacOS8 GUI
OPENSTEP for Mach
Mach for PowerMac
Yellow box
for Rhapsody
MacOS8 GUI
OPENSTEP for Mach
Mach for Intel
Yellow box
for Intel
Windows GUI
OPENSTEP for Windows(仮名)
Windows 95/NT
Yellow box
for Windows

 一番上はGUIです。AppleはRhapsodyではMacOS8のデザインを採用すると当初から宣言しています
 真ん中はカーネル上で動作するシステムソフトウェア(OSの大部分)で、ここがOPENSTEPの中心部です。OPENSTEP for Machはすでに市販されていますが、MacitoshのようなPCはunixサーバーとは違う性質を持っています。従来のOPENSTEPはこの特性を十分に活かしているとはいえないので、いくつかの改良が必要になります。
 一番下はカーネル部分で、ハードウェア・ファイルシステム・マルチタスクの管理などするところです。この部分はシステムの効率に大きく関連するとともに、将来にわたって簡単には設計変更できない重要な部分です。ここもPCでの利用にあわせた新たな改良がいくつか必要です。

既存OPENSTEP製品の構成
 比較のために上と同じように再構成した従来のOPENSTEP製品の構成図を以下に示します。どれもすでに市販されている製品です。上のYellow boxの構成図とほとんど同じであることがわかると思います。

NeXT&Solaris GUI
OPENSTEP for Solaris
Solaris for Sparc
OPENSTEP
for Sparc
NeXT GUI
OPENSTEP for Mach
Mach for Intel
OPENSTEP
for Mach(Intel)
Windows GUI
OPENSTEP for Windows(仮名)
Windows 95/NT
OPENSTEP
for Windows(仮名)

 ここで注目してほしいのはOPENSTEP for SolarisのGUIです。ベースはSolarisで、Solarisの(X windowの)アプリケーションはX window形式のウィンドウを開いて動作します。そしてOPENSTEPアプリケーションはNeXT形式のウィンドウを開いて動作します。この両者が混在して動作します。(私は実際に使ったことがないので、統一された操作性が確保されているかどうかはわかりません。) 現在のAppleの発表では、MacOS互換環境であるBlue boxは、新しい環境であるYellow boxと「切り替えて」動作することになっていて、Yellow boxアプリケーションをバックグランドで動作させることはできないように感じられます。これはWin95の「DOSモードで起動」に近いもので、もしこのタイプのBlue boxしか用意されなければ並列実行・サーバー可能というYellow boxの利点はほとんどなくなってしまいます。完全互換のBlue boxだけでなく、Yellow boxを停止せずに利用できるようなBlue boxも用意してほしいと願うのは私だけではないと思います。

GUI: Graphical User Interface ( look and feel )
 OPENSTEP製品によってはGUIもOPENSTEPの要素に含まれることがありますがここでは別のものとして扱いました。MacではFinderとQuickDrawに相当します。OSと不可分というほどではなくかなり自由に設計できる部分ですが、使いやすいものにするにはOSの特性に配慮した調整が必要です。RhapsodyのGUIは、MacOS8の十分に練り込まれたデザインにマルチタスク動作への配慮を加えたものになると予想されています。
 たとえば、動作優先度の制御をうまくする必要があります。特定のアプリケーションがCPUパワーを猛烈に消費したり、Finderがネットワーク反応待ちになったりしても、常にFinderはユーザーの操作に素早く反応しなくてはいけませんし、ユーザーの意志で任意のバックグランド実行項目をいつでも中断できなくてはいけません。Win95では未完成の部分ですがWin97ではかなり改善されるでしょう。NEXTSTEPでは内部要因で固まることはないものの、ネットワークトラブルやハードディスクトラブルなどの外部要因には弱いです。ワークステーションではまず起きないことですが、PCではユーザーの操作ミス(ケーブル切断など)によってこういったことがよく起こるため、このあたりの改善が望まれます。

 MacOS8のGUIにも不安は少しあります。MacOSのGUIはよくできていますが、MacのGUIは歴史的な事情から画面サイズ512x384で2色ないし16色が基本になっていると考えていいでしょう。このように狭い画面でも十分な情報量を表示することができることは、POWERBOOKなどでも快適にFinderを使うことができる反面、最近主流の広い画面では物足りなさを感じたり、 NeXTでは画面は

OPENSTEP
 これは単体のソフトウェアではなく複数のソフトウェアの集合体です。この部分はアプリケーションソフトに対してカーネルへの窓口になると同時に、アプリケーションソフトにいくつかのシステムサービス(ランタイム,クラスライブラリも含む)を提供します。ここで提供されるクラスライブラリがうまく作られていれば、それを利用するすべてのアプリケーションで統一された理解しやすく使いやすい操作性を確保することが容易になります。Yellow box用に書かれたアプリケーションソフトがどのプラットホームでも動作するという仕掛けもここにあります。
 ではOPENSTEPをMacの骨格として採用するとどのような利点があるのでしょうか?

カーネル
 今回のRhapsodyに向けた修正は何年に一度もないような大改訂で、古いコードの入れ替えだけでなく、ノートPCなどの最新のPC特有の技術に対応するためにunixにはない機能の追加が望まれます。
 カーネルはNeXT社が持っていた(でもまだ製品には採用されていなかった)最新版カーネルが選ばれました。これにどういう機能が新たに必要になるのかをみていきましょう。

補遺1: OPENSTEP Windows(仮名)について

補遺2: OPENSTEP仕様の詳細について

ちょっと疲れてきたので続きはまた !

Rhapsody ROADの目次に戻る


Copyright (c) 1996-1997 hyoudo@kcn.or.jp