« 冷える | トップページ | 4/6の本館更新 »

2004.04.04

続・やっぱりマイクロソフトはとんでもねぇ

やっぱりマイクロソフトはとんでもねぇ」では、PCWatchに掲載されていたXBoxについてのインタビューに触発されて、長々と書いた。えらく大雑把だが逆に、大枠としてこんな流れがあったし、そこをあの会社は見ているな、ということは考えといてもいいなと思ったわけ。

ただ、オペレーティングシステム(Operating System、通称OS)を「コンピュータを操作するための土台となるソフト」と記した。で、操作という言葉についてのイメージが、人によって大幅に異なるみたいだ。
そんなわけで、「やっぱりマイクロソフトはとんでもねぇ」の補足として、OSについて少し整理しておく。

***

その昔、汎用機というものがコンピュータのイメージを決定していた頃、コンピュータはきっかり、電子計算機だった。科学技術計算、大量の商業計算などを行う、計算する機械だった。操作にはコンピュータを操作する専門家=オペレーターがいる。さらに大量のデータを入力するパンチャーがいて(これは今もたくさんいる)、実際に計算するプログラムを作るSEやプログラマーがいる。
こういうコンピュータを操作する場合、素人が触ることはあり得ないし、大量なデータをどう計算するかが主な課題になる。
今のようにパッケージソフトも売っていない時代だ。あ、もちろん統計専用ソフトなどあるにはあったけど、今のようなパソコン用ソフトとは違って数千万から数百万円という規模のもの、誰でも使うものじゃない。ほとんどのソフトはプログラマーに発注して作ってもらう。
したがって、OSを使う人は、マシンを動かすオペレーターと、マシン上のアプリケーションソフトを作るプログラマー/SEである。
ということは、画面がきれいとか、すごく扱いやすいなんてことは重要じゃない。オペレーターは極端に言えば業務とコンピュータの僕(しもべ)となり、とにかく業務を効率よく回すために仕えるんである。プログラマーは、プリントアウトがきれいに出ることが重要で、あとはまっとうな性能で計算するプログラムを書けることが重要だった。
OSの役割は、メモリ(内部記憶)や、テープ/ディスクなどの外部記憶装置を効率よく管理し、複数のプログラムを同時に効率よく動かせるようにタスク管理もする、というのが主な役割だった。もちろん、結果が人間にわかるように、紙や画面に出力することもOSの重要な仕事ではあるけど、それをうまく管理するのは、オペレーターやプログラマーだった。

UNIXは、こういう状況の中で、コンピュータの研究者の手によって生まれた。コンピュータの研究をしなければならないのに、コンピュータを自由に扱うことも出来ず、ソフトを書いてはオペレーターに入力やコンパイルをお願いする、という状況を改善するために。
もちろん、TSS(Time Sharing System、時分割システム)といって、複数のユーザが同時にログインして、コンピュータの資源をみんなで分け合いながら使う方法が編み出されてはいた。ただし、マシンは高くてたくさんはないし、多くの人がログインして大きなプログラムを動かせば、全体の動作も重くなる。何より、古くさいラインプリンターとパンチカード、磁気テープの利用を前提にしたシステムに、画面とキーボードが加わったものなので、プログラムの結果をいちいちプリントアウトしてはチェックする場合も多い。効率が悪いこと甚だしい。
そこで、使い古しのマシンを独占し、その上でキーボード操作を行うと、画面にすぐ結果が返るコマンドライン入出力を前提とした、とても簡素なOSが開発された。プログラム名と処理するデータをコマンドライン上でキー入力すると、即座に結果が得られる。画面に返ってきた文字をファイルにそのまま保存したり、逆にファイルの内容をコマンドに送り込んだり、複数のプログラムで順次出力を流していくことを可能にする、リダイレクトという概念も導入された。キーボード操作と画面を含めてテキスト入出力を前提にするシステムであり、テキストファイルを入出力の中心に据えることで、画期的といえるほど洗練された操作が可能になった。このUNIXの特性は、多くのコンピュータ関係者に歓迎された。
また、コンピュータの研究では、プログラミング言語の研究が欠かせない。そのためには、プログラマーが入力したプログラム=テキストを処理しなければならない。この技術はすぐに、研究結果をまとめる論文の執筆にも役立つ。さらに、論文を処理して美しく印刷したり、プログラム間でうまくデータを使い回していく工夫が、文化として成立した。入出力や動作設定をテキストファイル化したため、多くのプログラム間で資源を共有するのにおおいに役立ったわけ。


エンジニアにとっては、入出力をファイルディスクリプタで抽象化した、ということも重要なのだが、ユーザにとっては上記のようなテキストファイルの取り扱いに強く表れている。

現在多くのパソコンで当たり前となっているこうした仕組みは、UNIXが初めて明示した世界だった。後にDOSが真似て、広がっていった。
一応触れておくと、ローグと呼ばれるダンジョン探索型ゲームは、UNIXから生まれた世界である。やはりみんな、ゲーム好きだったんだね。

パソコンが生まれた最初期、ユーザはすなわちプログラマーであった。どこにもソフトが売っていないのだ、ゲームだってお絵描きだって、自分で作るしかない。雑誌にはプログラムリストが掲載され、それを打ち込んでみる。BASICや機械語を、ユーザが自分で操る。
そういう中で、ワードプロセッサーによる文書作成、表計算ソフトによる様々な計算の2種類は早々とパッケージソフトが生まれた。UNIXでも文書処理への応用がすぐに考案されたが、やはりパソコンでも同じだった。もちろん、ゲームのほうが市場としては早かったけど。
しかし、UNIXがなんだかんだ言いつつ研究者や専門家を中心に普及していったのに対して(UNIXが載るマシンは高価で大学や企業でなければ買えなかった)、パソコンは店で金さえ出せば、誰でも買うことが出来た。最初は確かに物好きしか買わなかったが、なぜかど素人でも買いたがる人が時折現れる。そいうことは、史上初めてである。
こうして買い込んだ物好きの中から、これをビジネスチャンスととらえる者が現れた。ワープロ、表計算、通信を3種の神器に見立てて、一般ユーザ向けに仕立てる努力が始まった。
ここで初めて、どんなユーザでも少ない訓練で動かせるコンピュータということを考える必要が出てきた。

で、うまい具合に、ゼロックスのPARC研究所に集まった人々は、メディアのように扱えるコンピュータを考えていた。本来は教育目的に考案され、Altoというマシン上で、Smalltalkという言語+操作環境が動作していたのが1970年代[注:Smalltalkはプログラミング言語と操作環境が一体になったもので、OSというものを持たない、独立した世界を形成している。Squeakなどを参照のこと]。
1980年にこれが外部に発表されると、様々な分野で反響を呼んだ。また、研究所では研究成果を事業部に反映させるために、アイコン操作と、美しい文書作成のためのワードプロセッサや作図ソフトを持ったStarというシステムに結びつけた。
Smalltalkの研究はかなり有名になるが、一般に知られる前にアップル・コンピュータとマイクロソフトが相前後して研究所を訪問している。製品にする速度は、アップルのほうがだいぶ早かった。1983年にLisa、1984年にMacintosh。あいついで、実用的に動作するマウスとマルチウィンドウの世界が誕生した。Windowsは1983年にVer1.0の内容を発表したが、Windows 3.1に至るまで実用的に動作するとはお世辞にも言い兼ねる状態が続いた。
いずれにせよ、MacやWindowsから、パソコンとはメディアとなり得るマシンであり、OSとはユーザインタフェースだ、というイメージが定着していく。あまりにそちらに偏ったため、本当の意味でマシン資源の管理とユーザサービスとが両立するのは、2000年以降まで待つことになったんだけど(Windows、Macともに)。

***

そうはいっても基本的に、OSはコンピュータの持つ資源をうまく管理するためのソフト。
パソコンとは別のコンピュータ利用では、本来のメモリや入出力、タスクなどを管理することが最大重要目的になっている世界がある。

制御系、組み込みなどと呼ばれる分野がそれ。
電話の交換機や工場などを制御するコンピュータ。あるいは家電の中に組み込まれて、温度管理や時間管理などを行うコンピュータ。
こうした特定目的に向けたコンピュータは、操作のためのボタンがほとんど決まっていて、いかに少ないメモリで効率よく目的(エアコンの温度管理とか、電話交換手の替わりとか、ビデオ録画予約とか)を達成するかが重要。
制御系で重要なのは、リアルタイム性である。ユーザがボタンを押したら、指定時間(たとえば10ミリ秒以内)に必ず何らかの反応をすることを保証する。汎用機や高性能パソコンのようにCPUが豪華なら実現は簡単だが、制御・組み込みの世界で使うCPUはそうゴージャスではない。AC電源もなく、電池で動くのが当たり前なので、電力もぎりぎりで節約しつつ動かす。限られた条件で効率よく動かすというのは、こういう部分に力を注ぐわけ。
そのためには、メモリや入出力、そして同時に動作しているプログラム(タスク)をいかにうまく管理していくかが大切になる。つまり、昔ながらのコンピュータそのものの管理が、OSの仕事になっている。いや、もちろんパソコンやインターネットのサーバーなどでもこの仕事は大事なのだが、制御・組み込みの世界ではパソコンほど、エンドユーザ向けGUIなどの占める割合が大きくない。


たとえば、TRONプロジェクトでは、組み込み用のITRONカーネルがすべての基本にある。その上にエンドユーザ向けのユーザインタフェースと、そのための大規模メモリ管理方式などを追加したものがBTRON、電話交換機のような複雑な管理を可能にする機能を拡張したものがCTRONとなっている。

その事情が変わってきたのは、インターネット端末化してきた携帯電話が普及してからだろう。GUIも必要になるし、SDメモリカード/メモリスティックなどへの保存・読み出しなどが必要になり、CPUもかなりゴージャスになった(パソコンよりはるかに非力だけど)。
それで、今までの組み込み向けOS自体を改良していく他に、Javaを載せて、ユーザ向け機能をJavaで拡張していける仕組みも出てきた。
制御・組み込み系の世界なりに、ユーザインタフェースが重要になり、そのためのOSの拡張が重要なことになってきている。

では、ゲームの場合はどうか。
確かにエンドユーザ向けではあるが、ワープロソフトと表計算の間でコピー&ペーストの作法を統一しましょう、といった意味合いでのGUI統一は必要ない。ゲームごとに独自のゲームシステムがあり、それにユーザが感情移入できればいいし、コントローラもそう複雑ではない。それに、複数のゲームを同時に立ち上げて動かす、というのもあまり行う必要がない。パソコンなどでよく見るOSの豪華なユーザインタフェースは、実はあまりない。

問題は、画面が3D化され、非常に複雑な人物造形を描いたり、ほとんど映画並みの表現を要求されたりして、開発がひどく複雑になってきていることだ。
開発の経験がないとすぐに想像がわかないかもしれないが、2次元から3次元になるだけで、驚くほどプログラム規模が増大する。まして、音も立体化しようとか、複雑なシナリオによってエンディングを迎えるのが惜しいくらい長くゲーム世界に居させようなどという工夫も入る。
しかも、複雑なグラフィックやサウンドの扱いは、ゲーム会社独自のエンジンを開発して使う。昔はそれが各社の特徴などにつながっていたが、最近はそうも言っていられないくらい、開発が複雑になってきている。

制御・組み込み系は、極端に言えばパソコンOSの発展をなぞる面がある。それまであまり考える必要がなかったユーザインタフェースやGUIなどを考慮に入れつつ、今までの特徴もスポイルせずに発展する方向を研究する、ということ。
ゲームでは、そうはいかない。開発も運用もかなり異なるからだ。私はゲーム業界には全然詳しくないし、ゲームの開発経験がないので、以下はコンピュータ一般の話からの推測になるが・・・
ゲームの開発環境に必要なのは、グラフィックやサウンドのエンジンの共通化と差別化が可能な規格のようなものかもしれない。グラフィックエンジンなどに特化して商売する人が出てくると、コンピュータの性能を限界まで追い込めるエンジン屋がいることになる。また、ゲームシステムをうまく製作できるシナリオソフト屋、なんて人も出てくるのだろうか。しかも、こうしたツールを活用して組み合わせながらゲームをパッケージングする、本来の意味のゲーム屋、といった具合になれば、ソフトウェア分業体制が可能になってくるかもしれない。
といったことは、技術者向けソフト開発、組み込みの現場でテクニカルドキュメントをまとめていた頃からおぼろげに感じていたこと。もっとも、一朝一夕にはいくわけないので、いままでなかったわけだが。

PCWatchに掲載された2つのインタビュー記事[(1)(2)]を読んだ時に、マイクロソフトの視野はかなりこれに近いように感じた。しかも巨額予算を必要とせず、通常のビジネスソフト並みの予算で開発できれば、時代がまた変わる、という視点もある。

というわけで、最近のマイクロソフトは、以前のようなエキセントリックな戦略でなく、王道を進んでるなぁ、という印象。パソコンで90%以上押さえておいて、まだ王道を進むとは! というわけで「とんでもねぇ」と。
王道とはたとえば、XMLにおけるマイクロソフトの貢献は決して小さくないし、むしろ彼らが標準制定の機会をどうとらえて活用するかを垣間みる例になっている。ゲームの世界でも、そうやっていこうとしているようだ。インタビューでも「市場を方向付けようとは思っていない」と何度も言っているし。

マイクロソフトが本当にサーバでもWindows一色に出来るかは、かなり微妙だろう。組み込みでもどこまでうまくいくか、同様に感じる。それでも、Trustworthy Computingに関して、マイクロソフトは以前よりよい評価を受けるようになりつつある。少なくとも黙っていないでユーザに情報を開示し、自動アップデートをかけているという点は、以前よりよくなっている(もっと穴の少ない、根本からセキュリティを考えた設計にしてほしいと思うけど、それはLonghorn以降なのだろうか)。
ゲームは継続的に成功してきたものがプレステしかないので、まだわからないところがある。ここをとったら、組み込み系をマイクロソフト色にする足がかりが出来る。
まぁどうなるかはまだわからないけど。

***

で、私はこの文を、Mac OS Xの上で動くテキストエディターで書いている。やっぱりUNIXで育った人間としては、こっちのほうが性に合うのよ(たとえUNIXとして使っていなくてもね)。こういうのは、やっぱり理屈じゃないみたいだ。

|

« 冷える | トップページ | 4/6の本館更新 »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/16751/396346

この記事へのトラックバック一覧です: 続・やっぱりマイクロソフトはとんでもねぇ:

« 冷える | トップページ | 4/6の本館更新 »