アップルコンピュータはiMacやPowerMac G3など数々の魅力ある新製品を投入し、マーケティングでは大きな成功を収めたかにみえる。だが、“エンタープライズ向けOSの投入”という重大な課題が、いまだ残されている。アップルは過去この分野に何度か挑戦したが、そのいずれも失敗に終わっていた。だがこの課題も、まもなく出荷される『Mac
OS X Sever』で解決されるはずだ。従来のMac OSにはない安定性を持ったMac
OS X Severを開発した中心人物、Avie Tevanian氏に聞いた。聞き手は、林信行氏。
なおこの記事は、“「一部の開発者向けに初期段階のMac OS Xを配布している」--米アップルコンピュータ、Avie
Tevanian氏に聞く”http://www.ascii.co.jp/ascii24/issue/990308/keyp01.html および月刊アスキー4月号(3月18日発売)の156ページに掲載した“アップルコンピュータ ソフトウェアエンジニアリング担当上級副社長 Avie
Tevanian氏”のインタビュー全文である。
Mac OS 8.xもニーズがある限り進化を続ける
--Mac OSの現在のロードマップは? Mac OS 8.6とMac OS Xのβ版は今年第1四半期にリリースするのですか?「第1四半期とは言っていないはずです。ともかく、Mac OS 8.6の開発は、春ごろリリースの予定で進んでいます」
「一方、Mac OS Xでもこの四半期にいわゆる公開β版のようなものを提供する予定はありません。しかし、春ごろには多くの開発者にβ版を提供する予定です。実のところ一部の開発者には昨年末から、開発初期段階のMac OS Xのシーディングも開始しています」
--Mac OS XがPowerPC G3を最初から搭載したMacを対象としていることで、多くのMacユーザーが同OSのリリース後、旧機種用OSがなくなるのではと心配しています。
「アップルはこの春、Mac OS 8.6をリリースし、続いてSonataというコード名のOSをリリースする予定です。Sonataの後もできるだけMac OS 8シリーズのOSの開発を続けたいと思っています。しかし、現時点で将来版のMac OSにどういうバージョン番号が振られるか、どういった機能が盛り込まれるか--といったことまでは決まっていません」
「Mac OS 8.xは顧客からのニーズが大きい限り開発を続けることになるでしょう。ただし、それがどれだけの期間であるかは今のところわかりません」
--Mac OS 8からMac OS Xへの移行はいつごろ完了すると思われますか?
「まったくわかりません。すべて、サードパーティーの開発者とユーザー次第です」
Mac OS Xの動作保証はG3搭載機のみ
--Mac OS XがPowerPC G3を最初から搭載したMacしかサポートしないとしているのは、それ以前の機種をサポートしようとするとCPUやロジックボードの構成にバリエーションが多すぎるからだと聞いていますが・・・。「たしかにそれも理由の1つです。あれだけの製品バリエーションすべてをテストするというのは大変なことです」
「もう1つの理由は、Mac OS Xが出ることにはPowerPC G3搭載機が市場に出てから2年ほど経っていること、そして以前の機種に比べて価格も手頃になり、それでいてPowerPC 603や604と比べてパフォーマンスの差が圧倒的であることです」
「Mac OS Xは、PowerPC 603や604搭載機でも動くかも知れませんが、われわれが動作保証をするのはG3搭載機だけです。古いマシンでは、動くかどうかも分からない上に、動いたとしても遅すぎてほとんど使い物にならないかもしれません」
「今から1年もすれば非常に高速なG3搭載機、それどころかG4搭載機が驚くほど安い価格で買えるようになっていますかも知れません。そんな時代に、Mac OS Xの先進的な機能を4~5年前の603搭載機に対応させるため四苦八苦するのはおかしいと思いませんか?」
--昨年、将来のMac OS 8.xにCarbonを搭載する予定を発表しましたが、これは実現しそうですか?
「その方向で開発を進めています」
Mac OS X Serverはこれから進化を始める
--Mac OS X Serverにはネームサーバーやファイヤーウォールなどが用意されておらず、サーバー向けソリューションとしてはやや物足りない感じがするのですが。「その通りです。しかし、これはまだ発売もされていなければユーザーもほとんどいないまったく新しい製品です。いくつかのソリューションはサードパーティーによって提供されることになるでしょうが、これもOSの発売までは開始しないでしょう。我々はサードパーティーと協力して、そうしたサーバーで必要なソフトのスイートを築いていくつもりです」
「もう1つ大事なのが、Mac OS X ServerにはBSDのインターフェースが用意されているということです。つまり、今日あるUNIX用の各種サーバーツールは、Mac OS X Server上で再コンパイルするだけで、簡単に移植することができるのです」
--Mac OS X Serverに付属のApacheは、標準的なApacheなのでしょうか?
「OSに最初から統合しているといった違いはありますが、Apacheそのものは公開されているソースコード通りの極めて一般的なものです」
Yellow Box向けソフトのWindows対応を考慮
--QuickTimeストリーミングを利用する場合、Windows NTのようにクライアントの数によってライセンス料が変わるのですか?「いいえ。ストリーム数による制限は設けていません。OSのパッケージ価格は無制限のクライアントの使用料を含んでいます」
--では、NetBootするMacの数は?
「こちらも無制限です」
--OSの売り上げに影響は出ませんか?
「NetBootができるのはMacだけなので、ユーザーはNetBoot用にMacを1台買わなければなりません。しかし、すべてのMacにはいずれにせよMac OSがついてきますから、現時点では問題はないのです。問題は、今後、OSをアップグレードした時どうやって料金を徴集するかで。それに関してはまだ煮詰めていません」
「少なくても現状では何台のMacを接続しようと、OSの価格には影響はありません。パフォーマンスには多少の影響があるかも知れませんが」
--Intel用のRhapsody、つまりMac OS X Serverは?
「OSそのものは非常に移植しやすいので、技術的には開発が可能ですが、我々の顧客の大半はMacのハードを購入しています。だから、現状ではPowerPC以外のCPUをサポートする予定はありません」
「ただし、Yellow Box向けソフトをWindowsで実行するためのランタイムライブラリーは今でも開発中です」
上述の〔Yellow Box向け・・・ランタイムライブラリー〕とは、正確にいうと次のようなものである。Windows 95/98/NT用のランタイムライブラリーで、Mac OS X Serverなどで採用しているYellow Box(基本的にNeXTstep、OPENSTEPのAPIとほぼ同じ)用に開発したソフトをこれらのOSで実行可能にするもの。
Mac OS X:難しいが開発は可能
--続いてMac OS Xに関して質問します。日本ではまだOPENSTEPを使い続けている企業も多く、そうした企業ユーザーは、ある心配を抱いています。同OSに、Macのユーザーインターフェースをかぶせるといった大きな改造をすることで、これまでのような高い安定性を失ってしまうのではないかというのです。「そんなことは、まずありません。Mac OS Xは、OPENSTEP同様、きわめて安定したOSになるはずです」
--Mac OS Xでは、PDFをグラフィックモデルとして採用するので、Display PostscriptのようにAdobe社にロイヤリティーを払わなくていいということですが・・・。
「その通り、払う必要はありません。PDFは標準技術であり、我々は独自のインプリメンテーションを実装するからです」
--これまでのQuickDrawやDisplay Postscriptに代わって、PDFを採用するメリットは何でしょう?
「PDFは非常に柔軟性に富んだ描画環境です。多くの開発者が既に採用し、慣れ親しんでいます。さらに表現力も非常に豊かで、2Dのオブジェクトであればほとんどどんなものでも表現できます。いくつかできないこともあるが、我々はそうした足りなさを補っており、機能的には十分なものになっています」
アップルコンピュータ ソフトウェアエンジニアリング担当上級副社長 Avie
Tevanian氏
「PDFでもう1つ素晴らしいのは、この必要十分な表現力がシンプルに実現されていることです。Display
Postscriptも表現力は優れていました。しかし、それは何でもかんでもやろうと思えば力任せでできたからであって、PDFのように整然とした構造になっていたからではありません」
「表現力と整然さのバランスがよかったので、われわれはPDFをディスプレイモデルに採用したのです」
複数のAPIを実装し続ける
--ネットワークはソケットベースなのでしょうか?「そうです。TCP/IPに加えてAppleTalkもサポートします」
「Mac OS X内のBlue Box環境は、現在のMac OSがサポートするすべてのAPIをサポートしています。しかし、ローレベルなシステムコールはサポートしていません。例えば、Mac OS 8のファイルシステムにパッチをあてるような類のソフトは、Mac OS Xでは動作しません。なぜなら、ファイルシステムはMac OS Xが所有しており、保護しているからです」
「同様にMac OS 8のネットワークスタックに割り込むような類のパッチもMac OS Xでは動作しません」
--Mac OS Xで驚かされるのは、非常に多彩なAPIを共存させていることですが・・・。
「たしかに、BSD、Yellow Box、Carbon、Javaなど非常に多彩なAPIを備えています。どの開発者がどのAPIを使うかは、開発者自身が決められます。例えば、UNIXのシェルレベルのツールを持っている開発者であればBSDを使うでしょう。既にMac用ソフトを持っている開発者ならCarbonを使うでしょう。Javaを使った新しいソリューションを開発している開発者はJavaを使えばいいし、Yellow Boxの先進的な技術が使いたければYellow Boxを使えばいいのです」
--これらのAPIを将来どれか1つに統合するといった予定はあるのでしょうか?
「ユーザーは、より多くのソフトが動かせることを望んでいます。ですから、それぞれのAPIセットのどれか1つがメインになるといったことはなく、このままずっとすべてを実装していくことになるでしょう」
AppleScriptはソフトの開発基盤に左右されずに動作
--これだけさまざまな機能を搭載すると、OSのオーバーヘッドが心配になりますが。「異なるAPIセットを同時に使用するようなことが多発すれば、多少はあるかも知れません。しかし、例えばサーバーとして稼動しているマシンでは、BSDのツールやApache、WebObjectsなどを動かすことはあっても、同時にCarbonで開発された一般のソフトを動かす機会は少ないはずです」
「また逆に、Carbon版Photoshopを使うようなユーザーが同時にサーバー用ツールを使うといったことも、やろうと思えばやれないことはありません。しかし、シチュエーションとして考えにくいでしょう」
「万が一そうしても、普段よりメモリー消費量が多少多いくらいで深刻なことにはならないはずです」
--個々のAPIセットの中で別のAPIを呼び出したり--といったことはないのですか?
「各種APIセットの下には、共通の基盤となるコアファウンデーションと言うソフトウェア層が設けてあります。これはローレベルのコールと各APIとの仲介を果たすものです。各APIセットは、このコアファウンデーションを土台に作られており、異なるAPIセットでも多くのリソースの共有化が図られています」
--Carbonで作ったソフトとYellow Boxで作ったソフトといった具合に、異なるAPIセットで作ったソフト同士でも、メッセージの交換はできるのですか?
「できます。AppleScriptもソフトの開発基盤の違いに関係なく、きちんと動作します」
--はた目から見ていて、これだけの異なる環境を同一画面上に混在させるというのは、ほとんど夢のように思えてならないのですが・・・。
「いい知らせは、我々はこれがどうやったらうまくいくかを知っているということです。確かに大変な仕事になるとは思うが、必ず実現してみせます」
成熟したMach
--この奇跡のようなMac OS Xを影で支えているのが、Machカーネルだと思います。マイクロカーネル型OSでは、カーネルとサーバーとの通信がボトルネックとなり、ある程度以上パフォーマンスを上げることが難しいと聞きます。Mac OS Xでは、それをどのような方法で解決しているのですか?「マイクロカーネル型OSが、生来、パフォーマンス問題を抱えているという前提は成り立たないと思います。通常のアプリケーション開発1つをとっても、設計がまずければパフォーマンスが悪くなる。それと同様に、OSパフォーマンスの問題も、OSのデザインそのものに関わっていると私は信じています」
--Machの質問をするのに、あなた以上に最適な人物はいないと思います(*1)。実際、Mach OSとはどれくらいの間、関わってきたのですか?
「最近ではさすがにMachをガリガリいじるようなことはしていません(笑)。だから、どれくらいの期間、Machをいじってきたかといわれても答えられないが、Machに関わり始めた時のことなら何とか覚えています。あれはたしか'84~85年のことでした」
(*1)アビー・テバニアン氏は、カーネギーメロン大学でMachの主任デザイナーとしてキャリアを始めた。その後、'88年にこのMachを採用した初の商用OS、NEXTSTEPの開発スタッフとしてNeXT社に入社。米アップルが同社を買収したのにあわせて'97年、アップル上級副社長となった。
言語やOS固有のサービスに依存しない中立性
--Mach開発のきっかけや目標は何だったのでしょう?「大きな目標の1つは、さまざまなOSをホストできるようにすることでした。先ほどの質問にありましたが、Mac OS Xで、BSDやCarbonやYellow、Javaといった異なる環境を混在させることが可能になっています。このことからも、この目標は果たせていると思っています」
「Machの開発時には、もう1つ、機能を必要最小限にとどめ、コンパクトなカーネルにすることを心掛けました。Machは、長い年月を経て、実に有用なカーネルに育ってきたと思います」
--Machはよくオブジェクト指向のソフトに向いたカーネルだと言われます。それは、同カーネルが非常に優れたメッセージングメカニズムを備えているからなのでしょうか?
「メッセージングメカニズムも大きな理由の1つですが、それだけではありません。15年前、Machを設計した時、我々がもう1つ注意したのは、非常に中立な設計のカーネルに仕上げることでした。実際、Machは現存する各種OSの固有サービスにも依存しなければ、特定のプログラミング言語にも依存しないという、非常に中立的な設計に、なっています」
「Machは現存する各種OSの固有サービスにも依存しなければ、特定のプログラミング言語にも依存しないという、非常に中立的な設計に、なっています」 |
「これに対して、他の多くのOSは、C言語などの特定言語に依存した作りになっています。こうした依存性は、スタックの処理の仕方やスレッドの処理の仕方といったところに如実に現れてきます」
「Mach OSの設計は、さまざまな環境が実装できるように、非常に汎用性のあるものになっています。このためオブジェクト指向のプログラムがどの言語で開発されていようとトランスレーションレイヤー(変換レイヤー)などを介す必要がないのです」
最初の筋のよさが15年間でさらに伸びた
--Be OSやWindows NT/2000といった、他社製OSが実装しているマイクロカーネルをどのように評価していますか?「“我が社のOSは、他社製に比べてどこがどう優れている”といった比較をするのは、あまり好きではありません。今日では、たとえどこの会社のOSであろうと、多かれ少なかれ似たような働きをするようになってきています。また、他社製品の揚げ足をとることが、建設的だとは思わないからです」
「ともかく、Machの優位性をあげるとすれば、15年前最初に設計した時から、既に非常に優れたOSデザインを目標としてきた点があると思います。さらにその優れたデザインに、この15年間でさらに磨きが掛かりました。15年間、さまざまな実績をあげてくる中で、OSそのものが非常に成熟し、強力なOSになったと思います。これは他のOSにないMachだけが持つ特徴でしょう」
--どの会社のマイクロカーネル型OSも、メモリー保護やプリエンプティブマルチタスクといった特徴を唱っていますね。これを話題にしたのは、それらの質的差異がなかなか表沙汰にならないからです。
「OSによって、同じメモリー保護やプリエンプティブマルチタスクでも微妙な違いはあります。他社製品について言明するのは避けましょう。Machについて語るとすれば、最初からよいデザインを心掛けていたことや、時間をかけて成熟してきたということは、こういった面でも優位に働くと思います」
「例えば今のOpen Groupに合併する前のOSF(Open Software Foundation)も、何年にもわたって努力してきました。Machを良いOSにすることに多大な投資をし、これを学術的な研究分野などさまざまな方面に応用しようとしてきました。これは他のOSにはない経験です。こうした長い成熟の間に、非常に優れたリアルタイム処理のサポートなど、さまざまな新しい技術が盛り込まれてきました」
「アップルが出荷するOSでも、こうしたさまざまな研究の成果が生かされることになるでしょう」
--Machの1つの特徴であるサイズの小ささについてです。現在でも本当にコンパクトなのでしょうか?
「マイクロカーネルそのもののサイズは今でもコンパクトです。しかし、Mac OS XなどOS全体のサイズは、確かに巨大になってきています。ネットワークサポートやウェブサーバーなど、今日必要とされている機能を組み込んでいるのですから、それは仕方がないことでしょう」
--あとはマルチプロセッサのサポート?
「それもカーネルサイズを多少大きくすることになるでしょう」
XML、Javaはそこまで来ている
--今、IT業界で最もホットなトピックの1つであるXMLについてはどう思いますか? まだまだ先の技術なのでしょうか?「そんなことはありません。今後、さまざまなソフトが、XMLを汎用のデータ記録方式として、どんどん採用していくことでしょう。XMLは、データ交換に非常に有効な言語仕様です」
「実際に今でもXMLに対応した非常にいいエディター製品が頭角を現わし始めています。最近各種メディアで、XMLを必要以上に持ち上げ過ぎていると思います」
「XMLは、テクノロジーとしてもアイデアとしても非常にシンプルなものです。ただし、それでいて非常に強力で応用の広い技術であることは認めています」
--では、分散オブジェクト技術は? 未来のコンピューターの標準技術となるのでしょうか?
「そうなると信じていたが、最近では疑問を持ち始めています」
「なぜかというと、人々の間でインターネットモデルのアプリケーションが急速な勢いで広まってきているからです。ここでいうインターネットモデルのアプリケーションとは、分散オブジェクト技術ではなく、ウェブブラウザーのインターフェースとバックエンドを担うサーバーの組み合わせによるものです。かつての分散オブジェクトがそうであったように、この両者の間で、たくさんの情報が、常に行ったり来たりを繰り返しています」
「これからも従来通り、分散オブジェクトシステムが開発され、使われていくでしょう。しかし、主流となるのはサーバー上に実装され、ブラウザーやその類をインターフェースとする、インターネットモデルのアプリケーションになるでしょう」
--それならWebObjectsは最適ですね。
「その通り。WebObjectsでは、アプリケーションの主体をサーバーに置き、HTMLやJavaのフロントエンドからアクセス可能にします。WebObjectsは、そうしたアプリケーションを開発するための最良の手段といえます」
QuickTime for Java、実現近し
--ところで、そのJavaについてです。今のXML同様、これまでさんざん騒がれたわりに、なかなか実用的な形になってきませんが・・・。「Javaはじっくりとですが、熟成し始めていると思います。たしかに、他のプラットフォームと比べると、まだまだ未成熟な部分もあります。着実に正しい方向に向かっていると思うし、アップルは、そのJavaを全力でサポートしていく方針です」
「アップルは、先日、Mac OS用の最新Java仮想マシンであるMac OS Runtime for Java 2.1(MRJ 2.1)をリリースしました。このリリースでは、パフォーマンスも互換性も劇的に向上しています。また、OracleやPeople Soft、SAPなどが提供するJavaソリューションの実行にも十分用をなします」
--マルチメディアソリューションに関してはどうですか? QuickTime for Java(*2)の開発は進めているのですか?
「進めています。実際、今回リリースしたMRJ 2.1の仮想マシンには、QuickTime用のフックが用意されています。次のQuickTimeのリリースを持って、QuickTime for Javaを実現できるようになります」
「Javaの実行速度は、全般的に向上したが、それでもQuickTimeと同等の機能をJavaだけで実現するのはまだ難しいと思います。だから我々は、QuickTime対応のOS用に、JavaとQuickTimeのフックとなるQuickTime for Javaを提供する予定です」
(*2)QuickTime for Javaは、アップルがBiscottiの名で開発していた技術。インタビュー中にあるとおり、QuickTimeの描画再生機能を持っているわけではない。Mac OSやWindowsにインストールされたQuickTimeを、Java中から利用できるようにするJava用のマルチメディアAPIセット。
QuickTime専用のアクセラレーターは邪道
--そのQuickTime 4.0についてです。3.0の時と同様に、Mac版とWindows版とを、同時リリースするのでしょうか?「その予定です」
--QuickTime専用のアクセラレーターを開発するといった動きはあるのでしょうか?
「それは間違った方向だと思います。QuickTimeの側から今ある汎用グラフィックアクセラレーターをうまく使いこなすというのが、正しい道筋でしょう。ハードウェアアクセラレーター技術は時代とともに進化していきます。QuickTimeはそうした変化に順応していかなければならないと思います」
--AltiVecをマルチメディア以外に応用することも考えているのですか?
「メモリー中で大量のデータをコピーする時など特定の処理を非常に高速化できます。ですから、マルチメディア関連に限らず通常のグラフィック処理などにも使えるかも知れません。しかし、具体的にどういったところで使えそうか --は、あまり把握していません。
パソコン、これからの道程
--Macが発表されてから15年間、我々はGUIに慣れ親しんできました。GUIには、たしかにメリットも多いが、煩わしいことも多いのです。何かGUIの次にくるようなインターフェースを考えていますか?「あるが、それは教えられません(笑)。我々は常に先の技術のことを考えており、アイデアは持っています」
--新インターフェースへのパラダイムシフトはいつごろ起こるのでしょう?
「大きなパラダイムシフトが、これからすぐに起こるということはないと思います。変化は絶えず続く改良の中で、徐々に実現していくでしょう。ある日、突然GUIがなくなってしまうなどとは考えないでほしい」
「常にほんの少しずつではあるが、コンピューターとのインタラクションがしやすくなってきたことに気がつくでしょう」
--音声合成などのような技術で、GUIの物足りなさを補完していくといった具合に?
「それも1つの可能性だと思います」
--今後、音声認識技術なども重要になってくると思います。アップルは開発をやめてしまったのですか?
「何人かのエンジニアは今でも音声認識の開発を続けており、実際にMac OS 8.5でも新しいPlainTalkを出荷しました。これを使って、“~を開け”だとか“~を印刷しろ”といった簡単な操作なら、英語で命令できるはずです。米国では、音声合成のソフトも長い間、出荷し続けています」
「今、他にもっとやらなければならないことがたくさんあります。このため、以前のように開発力を注ぐようなことはしていませんが、現在でも一応、開発は続けています。今はまだ未成熟な技術だが、これからじっくり時間をかければ非常におもしろい技術になると思います」
らしいコンピューターとらしくないコンピューターとが共存
--現在、家電とコンピューターとの融合の動きが活発化しています。ソニーや松下などが、家庭用AV機器にIEEE 1394を採用したりといったことです。こうしたことが進めば、アップルもOSをそれにあわせて変化させるのですか?「もしかしたら、それにあわせてOSを変更することになるかも知れません。現在、デジタルカメラの接続などは、簡単なドライバーで実現していますが、このようにたいがいの家電機器への対応は、ドライバーを用意するような形で対応できると思っています」
--これから5年後、人々は今日使っているようなコンピューターを使い続けているのでしょうか? それとも、日常用品の中にどんどんコンピューターが組み込まれていくことで、コンピューターの形が変わっていくのですか?
「その両者は共存すると思っています。今でもかなりの民生機器にコンピューターが組み込まれていますが、こうした動きは今後ますます活発化してくるでしょう。一方、コンピューターも現在のような形のまま進化を続け、ワープロやウェブブラウジングといった作業をするためのツールとして人々は使い続けることになるでしょう」