[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

第32回 VRとサーバー業務、二足のわらじを履くSGIマシン



1997年9月号 UNIX USER誌掲載「ルート訪問記」の過去記事

第32回 VRとサーバー業務、二足のわらじを履くSGIマシン

今回は、東京大学の柳田康幸(やなぎだ やすゆき)さんにシリコ
ングラフィックス(以下、SGI)マシンのお話を伺うため、東京大
学先端科学技術研究センター [注1] を訪ねました。柳田さんが所
属されている研究室のバーチャル・リアリティ(以下、VR)システ
ムや、そこで使用されているSGIマシンについてお聞きしました。

==========
[新規コメント]  

最近の私はルート業の大部分を優秀な学生に任せ、全体の調整を行うよ
うになっています。最近は SPAM メールや port scan など、ネットワ
ーク社会がますます騒々しくなっていますが、これもネットワークがも
はや一部の人の物でなくなるまで普及した結果だと言えるのでしょう。
(1999.8.3、柳田 康幸)
==========


*3DCG画像生成はSGIマシンで

私(以下、Y):はじめまして。快く取材に応じて [注2] いただ
き、ありがとうございます。三次元コンピュータ・グラフィックス
(以下、3DCG)画像生成などにSGIマシンを使っていらっしゃると
のことですが、同マシンを選ばれた理由を教えていただけますか。

柳田さん(以下、柳):3DCG画像の生成は、いまでこそPCでも可能
となりましたし、サン・マイクロシステムズ(以下、サン)、ヒュー
レット・パッカード、ディジタル イクイップメントなどのWSメー
カーもこの分野に力を注ぐようになりました。しかし、ほんの2年
ほど前までは自分でプログラミングするか、あるいは市販のソフト
ウェアを使用するなら(性能面で)SGIマシンを使う以外の選択肢
はありませんでした。

 私の研究分野は、VRシステムとその要素技術の研究開発です。三
次元仮想空間を構成・表示するソフトウェア・ツールキットを作成
したり、それらを用いて人間も含めたマン・マシン・システムの評
価などを行っています。私たちにとってのSGIマシンの役割は、
「人間の運動を読み込んで仮想空間の状態を更新し、人間に提示す
る視覚信号をCG画像として生成する」といった、ヒューマン・イン
タフェースのための道具となります。なお、ここ(先端科学技術研
究センター14号館1階の研究室)にあるSGIマシンの種類は、表1A
のとおりです。

 ここでは、Indigo2にPC用の拡張ボードを増設して外部と直接や
り取りするなど、少し変わった使い方もしています。

 Indigo2には、GIOスロット(グラフィック・ボードに使用)と空
間を共有する形で、EISAバス [注3] 用スロットが存在します。
EISAバスは基本的にISAバスの上位互換なので、同マシンではPC/AT
用に市販されたEISAおよびISAカードが利用できます。そこで、セ
ンサーからの信号をPC-9801に差したカウンタ・ボードやA/Dボード
で数値に変換し、PC-9801とIndigo2の双方に差した共有メモリ型イ
ンタフェース・ボードを用いてIndigo2に転送しています。

 UNIXで標準以外のデバイスを使用する場合、「デバイス・ドライ
バを書かなければならないのでは?」と思われるかもしれません。
しかしIRIXでは、ISAカードを使用する場合、ハードウェア割り込
みとDMAを使用しないという条件下ならば、カーネルに組み込むデ
バイス・ドライバなしにカードの資源へアクセスできるようになっ
ています。

 こうすることで、シリアル、イーサネット、SCSI以外の形式で、
外部の信号が入出力できるわけです。ただ、これはメーカーから推
奨されている利用法ではなく、個人の責任でやっています。

 では、どのように使われているかを理解していただくために、テ
レイグジスタンス [注4] (tele-existence)を体験していただき
ましょうか。

  まず、ヘッド・マウンテッド・ディスプレイ(HMD)を着けて、ロ
  ボットの存在する世界にテレイグジスタンス体験。次に、同じく
  HMDと今度は人間の腕の動きをロボットに伝える装置も着けて、コ
  ンピュータの生成した世界にテレイグジスタンス体験。


 テレイグジスタンスには、ロボットを用いて実際の世界に人間が
存在する場合と、コンピュータの生成した世界に人間が存在する場
合の2種類あり、後者を実現するために3DCG画像をリアル・タイム
に生成して表示します。一般的なオフラインのCGとVRとは、同じ道
具を利用しているわけですが、少しアプローチが異なっています。
VRの場合は、操作者が首を右に動かしたときには瞬時に右の絵が見
えないと困るので、絵の美しさより表示スピードを優先させている
のです。

Y:なるほど。この研究室で、どのように3DCG画像が使われている
か、よく分かりました。テレイグジスタンスは初体験だったので、
ドキドキしてしまいました。3DCG画像の表示が大変ナチュラルでし
たが、以前、三次元空間記述言語VRML [注5] で書かれたWebペー
ジにNetscape Navigator 3.0でアクセスしたとき、表示が遅くて視
点を変えてもナチュラルな動きをしませんでした。これは、なぜな
んでしょう。

柳:VRML自体は、三次元仮想空間を記述するための言語ですから、
表示が速いか遅いかというのはハードウェアも含めた実装上の問題
になります。「VRMLの仕様をすべて実現しようとすると処理が重く
なる」という指摘もありますが、現在、PCでVRMLを表示させる場合
には、3DCG画像の生成に要する時間が大半を占めています。したがっ
て、PCのグラフィックス・ボードが3Dアクセラレーション機能を装
備 [注6] し、描画処理を行うソフトウェアがそれに適した実装と
なれば、表示はすぐに速くなるでしょう。

 そこで、「どのようなグラフィックス・ライブラリを使用してい
るか」がポイントとなります。現在、代表的なグラフィックス・ラ
イブラリとしては、Open GLというものが存在します。これは、SGI
のグラフィックス・ライブラリIRIS GLの機種依存部分を切り捨て
て、SGIマシン以外もサポートできるよう変更したものです。ただ、
もともとSGIマシン用に開発されたため、ライブラリの体系全体が
大きくて重いといわれ、リアル・タイムで実行するには高価なハー
ドウェアが必要だったわけです。

 Windowsの世界では、Windows NTがバージョン3.5からOpen GLを
サポートしており、これに対応したボードもいくつか発売されてい
ます。また、Windows 95では、OSR2(Oem Service Release 2)か
らサポートされています。1年前までは、Open GL対応のアクセラ
レータ・ボードは20〜30万円もしたのですが、最近相次いでエント
リ・レベルのものが発売され、いまでは数万円で入手できるように
なりました。

また、Windows 95ではOpen GLのほかに、マイクロソフトが提唱す
る三次元グラフィックス・ライブラリDirect3Dがあり、こちらは品
質よりも実行速度を優先させた仕様になっています。現在、市販さ
れているほとんどのグラフィックス・ボードは、Direct3Dに対応し
ているはずです。


*サーバー業務にも使うために陥った環境整備地獄?!

柳:私が、この研究室でSGIマシンを使い始めた’92年ごろという
のは、3DCG画像を作成する専用機としてだけでなく、普通のUNIXマ
シンとしても使用できるようになってきた時期でした。研究室に最
初に導入されたマシンは、CPUにMIPSのR3000を搭載したIndigo(ダ
イキン工業のCOMTECシリーズ。OEM製品)で、IRIXという名前の
UNIX OSが使用されていました。ちなみにMIPSは、Nintendo 64やプ
レイステーションなどのゲーム機にも使われています [注7]。

 UNIXマシンに初めて触ったのは東京大学の大型計算機センターで
したから、当然、きちんと管理された環境で各種のフリー・ソフト
ウェアが使える状態になっていました。

 それが、いざ自分の研究室にIndigoが導入されたときには、ペー
ジャのlessやエディタのNemacs(当時は、MuleではなくNemacsが使
われていた)が、まだインストールされていない状態でびっくりし
ました。それでも最初は、viで黙々とプログラムを書いていたので
すが我慢の限界を超えたため、lessのインストールを皮切りに、環
境整備地獄に飛び込むことになりました。いままでにインストール
した代表的なフリー・ソフトウェア [注8]は、以下のものです。

 less, gzip, GNU fileutils, GNU textutils, groff, jperl, 
  kterm, nemacs, wnn, jTeX(ASCII/NTT), xdvi, dvi2ps,
  CAP 6.0, MH 6.8, POP (imap), moxftp,
  InterViews(idraw), xpaint, sendmail, fvwm, 
  lynx, httpd, samba 


Y:インストールする際に、苦労された点を教えてください。

柳:世の中のフリー・ソフトウェアは、そのほとんどがサンのWS用
に書かれている点ですね。同WS用の固有のコードがないプログラム
でも、よくコンパイル・エラーが出ました。というのも、当時のサ
ンのWSに付いていたCコンパイラは、いわゆるK&RのC [注9] と
いう古い形式のものでしたが、SGIマシンの方はANSIのCコンパイ
ラが付属していたのです。この新しいCコンパイラは関数の引数の
型をチェックするので、けっこうエラーが出てしまうんですよ。

これを回避するおまじないとして、ccコマンドのオプションに“-
cckr”を指定すると、関数のプロトタイプ・チェックを行わなくな
ります。最後の頼みの綱としては役立ちましたが、本来ならエラー
が出るべきところを無理に出さなくするので危険といえば危険です
ね。まあ、経験的には大丈夫でしたが。

 それから、当時、書店に並んでいたUNIX関連書籍の大半は、BSD
系を扱ったものだったんです。その中に「OSの起動時に自動実行さ
せるためには、/etc/rc.localに記述しておく」と書いてあっても、
IRIXでは「そんなファイルないぞ」となってしまいました。System
V系のUNIXを使っている人には当たり前の話なんですが、最初はど
こに書いておくのか探しましたね。

その後、/etc/rc2.d/ディレクトリの中のSxx○○(xxは2桁の数字。
○○は名前)というファイルが、/etc/init.dディレクトリにある
ファイルへのシンボリック・リンクになっていて、それを片っ端か
ら実行していることが分かりました。

 なお、GNUのツールをインストールする際には、苦労しませんで
した。というのは、GNUツールにはconfigureスクリプトでMakefile
を自動生成する機能がありましたから、READMEに書いてあるとおり
に実行するだけで、すんなりインストールできましたから。

Y:最近はSGIに限らず、どこのメーカーでも主なフリー・ソフト
ウェアのバイナリを提供する傾向にあるようですね。

柳:はい。SGIの場合も、日本シリコングラフィックス・クレイが
提供してくれます。たとえば、日本語パッチの当たったless、Mule、
viクローンのElvisなどです。売り物のWnn6 [注10] も、IRIXには
標準で付いてきます。

Y:Wnn6は、賢いと思われましたか。

柳:そうですね。Wnn4に比べてとても賢くなったと思います。しか
し、PCの世界のかな漢字変換システムは、この1〜2年でさらに大
きく進化していますよ。


*1台二役のSGIマシン

Y:ところで、SGIマシンは研究室のネットワークのサーバーにも
なっているんですよね。

柳:はい。同マシンを3DCG画像生成の専用機として使い、ほかにサ
ンのサーバーを用いるなら、フリー・ソフトウェアのインストール
は非常に簡単だったと思います。しかし、SGIマシンは高価なので
1台で両方の仕事をさせたかったことと、研究室内のマシンの種類
を増やしたくなかったという理由からサーバーとしても利用してい
ます。

 私の、いわゆるルートとしての活動は、前述のフリー・ソフトウェ
アのインストール以外に、研究室のLAN設計構築、および先端科学
技術研究センター全体のネットワーク運営のお手伝いといったとこ
ろです。

  最近は、UNIX単体よりもむしろクロス・プラットフォームの知識
が有用になってきており、UNIXシステム管理者の最大の仕事も
「WindowsやMacintosh(以下、Mac)などのPCに対してネットワー
ク・サービスを提供すること」へと変化してきていると思います。

 たとえばMacユーザーのために、私はCAP(Columbia AppleTalk
Package)をインストールしました。これは、UNIXマシン上のファ
イルやプリンタをMacからも共有できるようにするソフトウェアで
す。

 私を含めたWindowsユーザーのためには、Sambaをインストールし
ました。これもUNIX上のファイルやプリンタをWindowsから共有で
きるようにするもので、非常に優れたソフトウェアです。

 最近では、「UNIXしか使わない」とか「Mac(あるいはWindows)
しか使わない」という人は少なくて、たとえば、絵はMacのドロー
系ソフトで描いて、それをEPSファイル [注11] で保存し、UNIX上
のTeXで利用するといった使い方が一般的です。その場合、いちい
ちFTPでファイルをやり取りするのは面倒ですから、ファイルの共
有は必須ですね。

Y:FTPでやり取りしていると両方にファイルが存在するため、ど
ちらが新しいファイルなのか分からなくなったりするんですよね。

柳:そうそう、よほど整理好きな人なら大丈夫かもしれませんが、
私も整理は苦手なので、その気持ちはよく分かります。

 私自身も最近では、文章が長いもの、あるいは数式が多いものは
TeXを使い、短い文章はWindowsのソフトウェアでパッと作ってしま
うというように、UNIXとWindowsを使い分けています。ただし、ネッ
トワーク・サービスの業務全般、およびプログラミングを行うとき
にはUNIXを使っています。やはり、「市販の道具でできないからプ
ログラミングしなければならない」という場合には、断然UNIXの方
が便利ですね。もちろん、計算処理などはExcelでも可能だとは思
いますが、それよりはCで書いた方が早いと思いますし、テキスト
処理ではPerl [注12] が便利です。Perlは、UNIX文化の申し子みた
いな存在ですからね。

Y:「UNIXに適した処理はUNIXを使い、そのほかのOSを使った方が
楽な処理はそちらを使う」という使い分けが定着しつつありますね。
これが、ファイルやプリンタを共有した環境の中で自然に行えるの
が理想です。でも、UNIX文化とともに成長してきたインターネット
の世界は、これからもUNIX中心であってほしいと思います。

柳:何でもかんでもマイクロソフトが抱え込んでしまって、
「Windows NTを使えばネットワークの基幹サーバーにもUNIXを使う
必要がなくなりますよ」という戦略は、UNIX文化の中で長年培われ
てきたネットワーク文化を壊すような気がしてなりません。

 エンド・ユーザー向けとしては優れたGUIを備えたOSといえます
し、基幹サーバーまでWindowsで統一してしまうメリットもあるで
しょう。ただ、フリーな文化は壊してほしくないと思います。

  UNIXはとっつきにくいOSですが、そこにあるものは自己責任の文
化です。「何かやりたければ自分で勉強しなさい。その代わり、や
ろうと思えば何をやってもよいので、みんなでよくしていきましょ
う」という世界ですね。それとは逆のところに「うちの製品を使え
ば、こんなに便利ですよ」という市販ソフトウェアの世界がありま
すが、そこから一歩踏み出して自分で何かしたいと思ったときに、
何もできないんですね。エンド・ユーザーがプログラムを改良して
よりよいものにする、いわゆるハッキングの文化は貴重だと思いま
す。

 ところで、マスコミは相変わらず「ハッカー(hacker)」という
言葉を、ほとんど「システムに侵入し悪いことをする人間」という
意味で使っているようです。これはハッカー本来の意味からすると、
とんでもないことですね。“hack”とはプログラムを解析し手を加
えていくことで、そこには悪事を働くという意味はなく、むしろ優
秀なハッカーが手を加えることによりUNIXとインターネットの世界
が発展してきたといえます。悪いことをするのはクラッカー
(cracker:crime hacker)といわなければ、世の中の善意のハッ
カーがすべて悪者にされてしまいます。

 同様に、私の研究分野であるVRもマスコミに誤用されかけている
言葉の一つです。本来、「バーチャルとは決して仮想あるいは虚構、
空想という意味ではなく、形としてはそのものでなくとも本質的に
はそのもの [注13] である」という意味です。私も含めてこの分野
を研究している人間は、「VRの技術が、決して人間を惑わせるため
ではなく、時空間を超えて人間の本来の能力を活用するために利用
される」ことを願っています。

Y:なるほど。今日はテレイグジスタンスを初体験させていただい
たり、SGIやUNIX文化論など、興味深い話がお聞きできました。あ
りがとうございました。

 ’97年6月17日〜19日、東京ビッグサイトで「第5回 産業用バー
チャルリアリティ展(IVR’97)」が開催されたので、さっそく見
学に行ってきました。展示会場の至るところで、SGIマシンで動作
するソフトウェアのデモンストレーションが行われており、「SGI
マシンはVR分野で大活躍してるんだ!」ということを実感しました

(IVR’97の詳細については、
http://www.reed.co.jp/IVR/index.html を参照)。



[注1]  東京大学先端科学技術研究センター

大学組織の活性化を目的として、東京都目黒区駒場に設立された研
究機関。柳田さんが所属している「研究室」は’96年
度から東京大学本郷キャンパスに移動しているが、柳田さんがルー
トとして整備されたSGIマシンやVRシステムが先端科学技術研究セ
ンターに残っているということで、今回は同センターの方を訪問し
た。


[注2]  快く取材に応じて

筆者は、ネットサーフィン中に柳田さんのホームページ( 
http://www.star.t.u-tokyo.ac.jp/~yanagida/ )を見つけ、ルー
ト訪問の取材申し込みメールを書いた。「Silicon Graphicsを使っ
てVRを行なうための技術情報」のページがとても充実していたこと、
「あーくんのアルバム」(うちの子、かわいいでっせ!)のページ
があったことが、メールを出した主な理由。


[注3]  EISAバス

IBMのマイクロチャネルに対抗するため、コンパックとインテルが
中心となって開発したISAバス上位互換の32ビット入出力バス。最
大データ転送速度およびDMA転送速度は、ともに33Mバイト/秒で、
ISAバスに比べてバス・アービトレーション機能やDMA転送機能が強
化されている。現在ではPCIバスが主流となっており、EISAバスを
装備している製品は少ない。


[注4]  テレイグジスタンス

テレイグジスタンスとは、 ’80年に東京大学の教授が提唱された
概念で、「人間がいまいる場所および時間以外のところに、あたか
もいるような臨場感を持って存在し、実際に自分の分身であるロボッ
トを使って行動できること」である。


[注5]  VRML

Virtual Reality Modeling Languageの略。 ’93年にMark Pesce氏
によって考案された、WWW上での三次元グラフィックス記述言語。
VRML 1.0では三次元のシーンを記述するだけだったが、バージョン
2.0では動きの記述が可能となり、さらにバージョン3.0で共有三次
元環境の記述が可能になる予定である。


[注6]  3Dアクセラレーション機能を装備

現在、市販されているPC用グラフィックス・ボードの大半は、すで
に3Dアクセラレーション機能を装備している。
http://www.star.t.u-tokyo.ac.jp/~yanagida/pc3d-card.html
には、各ボード・メーカーへのリンクが集められている。


[注7]  ゲーム機にも使われています

MIPSのCPUが搭載されている製品は、
http://www.sgi.com/MIPS/applications/ に一覧表示されている。

また、「Popular Mechanics」’96年12月号の“The battle for
game players' hearts is taking place in a 3-dimensional
world.”という記事の中にも、ゲーム機へのMIPSの搭載が記述され
ている。詳細は、
http://popularmechanics.com/popmech/elect/9612EFTVM.html 参照。


[注8]  代表的なフリー・ソフトウェア

ftp://ftp.star.t.u-tokyo.ac.jp/pub/ が、舘研究室
Anonymous FTPサービス「私達が愛用しているUnix、Macintosh、
MS-DOS、Windowsのソフトウェアコレクション」として提供されて
いる。[新規注]


==========
[新規注]  舘研究室Anonymous FTPサービス

現在は大規模で便利なアーカイブサイトがたくさんあるので、研究室の
ライブラリはほとんど更新していません。
(1999.8.3、柳田 康幸)
==========


[注9]  K&RのC

K&Rというのは、「The C Programming Language」(邦訳 プログ
ラミング言語C)の著者であるBrian Kernighan氏とDennis
Ritchie氏のこと。通常、日本では「カーニハン・アンド・リッ
チー」と呼ぶことが多い。


[注10]  売り物のWnn6

売り物のWnn6は、IRIXやSolaris、AIXなどにバンドルされている。
そのほかのOS用は、オムロンソフトウェアから販売されている。な
お、 ’97年7月7日には、Wnn6 for Linux/FreeBSDの出荷が開始
された。


[注11]  EPSファイル

Encapsulated PostScriptの略。「カプセル化されたPostScriptファ
イル」とは、ファイル中に単一ページの出力に必要な要素がすべて
含まれていることを表している。ファイルの中身は、通常の
PostScriptファイルと同様に、テキスト・データのPostScriptコマ
ンド列となっている。


[注12]  Perl

Practical Extraction and Report Languageの略。NetLabsのLarry
Wall氏が開発したインタプリタ言語。sedやawkなどのテキスト処理
プログラム、BシェルやCシェルなどのコマンド・インタプリタ、
およびC言語の特徴を取り入れている。参考書としては、L.Wall,
R.L.Schwartz著,“Perl プログラミング”,ソフトバンクが有名。


[注13]  本質的にはそのもの

 VRの定義として、日本バーチャルリアリティ学会ホームページに
ある「What is Virtual Reality ?」の文章を引用して、紹介する。

『バーチャルリアリティのバーチャルが仮想とか虚構あるいは擬似
と訳されているようであるが、これらは明らかに誤りである。バー
チャル(virtual)とは、The American Heritage Dictionaryによ
れば、“existing in essence or effect though not in actual
fact or form”と定義されている。つまり、「みかけや形は原物そ
のものではないが、本質的あるいは効果としては現実であり原物で
あること」であり、

	……(中略)……

バーチャルリアリティは本来、人間の能力拡張のための道具であり、
現実世界の本質を時空の制約を超えて人間に伝えるものであって、
その意味でロボティクス、特にテレイグジスタンスの技術と表裏一
体をなしている。』

以上





(UNIX USER誌連載「よしだともこのルート訪問記」より)
http://www.tomo.gr.jp/root/ に戻る