|
| Japan Worldwide |
とんでもないところに入ってしまった 初対面の人とのインタビューは、会話が弾み出すまでが難しい。そこで、まず加藤先生のコンピュータ遍歴を伺った。ちなみに、加藤先生は、今から20年ほど前に筑波大学に入学している。昔話なんて面白くないという人もいるかも知れないが、その当時の課題を自分がクリアできるかと考えてみると興味が湧くだろう。 『僕らの時代(※)は良い時代で、計算機環境のこの20年の進化をほとんどリアルタイムで体験できたんですね。大学に入った時期が、大型計算機がバッチ処理からTSSに変わろうとしているタイミングだったんです。だから、その両方を実地体験できて、それからUNIXやPC-98みたいなのが出てきたわけです。 当時の筑波大のカリキュラムに、 今でも覚えている一番難しい課題に、その環境で電卓を作れっていうのがありました。「アセンブラで電卓を作りなさい、仕様は君たちのレベルに合わせていい」と言われ、OSがないので、入出力をするときに、割り込み処理を全部自分で書きました。自分で割り込み指定プログラムを作らないと文字が出てこない。文字が出てこないとレポートに付けられません。 これは、とんでもないところに入ってしまった。これでは、いつ落ちこぼれるか分からないなって、みんなビビってました。』 ※編集注記:加藤先生が筑波大学に入学された1980年頃を差す。 オープンソースの有難味
筑波大学のコンピュータ環境は、瞬く間に変化していったという。数年後には、PDP-11でUNIXを体験し、さらに大学院時代にはSun-2を使い始めた。また、日本の学術組織を結んだ研究用のコンピュータ・ネットワークであり、インターネットの前身とも言えるJUNETも同時期にスタートしており、加藤先生は筑波地区での管理者として活動していた。 そんな中で、同大学では"オープンソースな"ソフトウェアにも、早くから触れていた(当時は、そのような呼び名はなかったが)。 『当時の研究室で、富士通のハードディスクを買ったことがあり、「ソースコードをいじればVAX-11につながるはずだから、デバイスドライバを書いてつなぐのが君の仕事だヨ」と頼まれました。 それで、富士通のハードディスクのマニュアルを読んで、近い動きをするドライバを見つけてきて、それにちょっと手を加えていきました。そのBSDのソースコードをすこしいじって、デバイスとつなぐっていうのが、今にして思えば、オープンソースの最初ですね。』 『サンに触ったのもすごく早くて。Sun-2が来たのが僕が修士1年のときです。当時、サンのワークステーションって想像を絶するほど高くて、メモリが主記憶2MB、ハードディスクが40MBで、セットで800万円。 そこにTeXをフルで入れると、20MBくらい喰っちゃうんです。それで、フォントを削れるだけ削って、最小限の構成で入れる。ところが、TeXをやるためにはフォントがないとダメで、やっぱりディスクが足らない。そこで、xdviという、実際にフォントを展開する部分のソースコードをちょっとだけいじりました。ファイルをオープンに行って、なかったらrcpとかftpでコピーしてきて、もう一回トライする。で、いっぱいになったら消すっていう。5行か10行ぐらいのコードをちょっと入れたんです。NFSが登場する前の話です。 僕のは簡単な改造例ですけれど、このように、プログラムにちょっと手を加えるだけで限られた資源が結構使えるようになりました。こんなことはソースがないとできないですよね。オープンソースは、素晴らしいなと感じました。』 OpenSolarisの授業
そこで、話題はOpenSolarisに及んだ。ご存じのとおり、OpenSolarisは、UNIXに由来するオープンソースのOSである。サンがこれまで培ってきたノウハウを丸ごと公開したものと言える。では、筑波大学の授業で、OpenSolarisをどのように利用されるのだろうか。 『我々は今、OpenSolarisでどうやって授業をやるかを検討しているところです。OpenSolaris独特の機能としては、OSの動きをモニタリングするDTraceがあります。あれを使って、OSの挙動とかシステムの様子を調べながらやる授業をやったら面白いだろうなってことを考えています。 今、OSは巨大になっちゃっているから、簡単には手が突っ込めないんですね。ソースコードを読もうにも、1万行読むのも大変だから。だから、OpenSolarisのソースをみんなで読もうって言っても、なかなか大変なんです。それをDTraceを使って、プローブを突っ込むようにして、OSの状況を調べたり、将来、自分で何かシステムチューニングを調べたいときに、Dtraceをツールとして使いながらできるといろいろ役に立つと思います。 他の機能は、結構Linuxとか他のBSDとかにもありますからね。大学のコン ピュータサイエンスの講義や演習でOpenSoalrisを題材にする場合、このあたりがひとつの回答になるんじゃないかな。』 『Solarisの場合は、BSDのころから20年くらいかけて、プロのプログラマーが脈々とやり続けていますよね。最近の新しいセキュリティ関係などの新しい機能を含めて、高いクオリティの元で作られている。それを目の当たりにできるっていうのは、スゴイ価値あることだと思うんです。良質なコードから学ぶっていう意味では、OpenSolarisは非常に良い物だと思いますね。 もうひとつ、Solarisのいいところは、実験環境としては非常に安定しているところです。Linuxでやると、いろいろ中でボロボロのところがあるので、実験環境として安定していないとか。システム系の実験だとか開発をするときに、どうも挙動がおかしいといった声をよく聞くんです。 一方、Solarisは、さすがに質が高くて安定しているという声があがります。ですから、いわゆる開発環境としては良いんですよ。完成度が高いし、ミッションクリティカルな現場のシステムで使われてきたということもあると思います。』 『あとは、OpenSolarisを題材にしたOSの教科書が出ると大学としては良いですよね。もしかしたら世界で書き始めているかもしれないし、「それは先生の仕事ですよ」と言われてしまうかもしれませんが、OSの教科書をOpenSolarisとDTraceベースで作ったら、大学の授業でも使いやすいですね。 今だと、バーチャルマシン(以下、VM)のもおかげで、今あるOSをどけなくても、VMの上に乗せることができます。学科のマシンにはLinuxが入っているんですが、契約やサポートの問題もあるので、それは簡単にどけられません。そこで、その上のVMでOpenSolarisを動かして、OSの授業をするというのは、十分に可能性がありますよね。 だから、OpenSolarisをベースにして、VMの上で動かせるOSの教科書があるといいですよね。それが、ユーザ会を含めたコミュニティへのリクエストですね。』 10万行に立ち向かう若者たち
では、昨今の学生は、このような素材をどのように受け止めるのだろう。16ビットのミニコンでトグルスイッチを操作するのは、昔話としては興味深いが、それを日常的に使う訳ではない。誰もが自宅に、WindowsやMacを持ち、インターネットの高速回線を完備している。大学でも、それがありきたりな物として捉えられる。このような環境をどう捉えているのだろうか。 加藤先生は、『人間の種類が分極化している』と感じているという。 『今は、とにかく膨大なソフトが手に入りますよね。そのために、片方では、"もうこりゃ手が出ない"っていうので、物をなんとかするというよりは、いかにその上位から使っていくか、あるいは、いかにソフトを使いこなすか、について考える方向に向かう人たちがいます。 で、もう一方のほうで、数は少ないんですけれど、大規模なソフトウェアを我々の想像を超えていじっちゃう人たちが現れてます。いろいろなソフトウェアの環境とかオブジェクト指向とかノウハウがたまってきたことも関係していると思います。 昔よりも、ソフトの生産性は上がっているんですね。例えば、UNIXバージョン6のソースコードって1万行だったんです。当時、だいたい人間が理解できるソースコードの限界は1万行だよ、と言われていた訳です。BSDの場合は、1万行を越えてコアの部分で3万行ぐらいで、周りまで入れると10万行位になりますから、あれはもう、いじる限界を越えちゃってていじれないと取られられていたんですね。僕もだいたいそう信じていました。 で、最近の若い人の非常に生産性の高い人は、1万行なんて割と軽々越えるんですね。1万行、3万行は、全然苦にしない。10万行でも苦にしない。10万行のソースコードをいじったり、あるいはソフトイーサで有名になった登さんのような人になると自分書いてしまいます。あそこまでの生産性は、予期しなかったんですね。』 驚くことをやる人 このようなソースコードを扱う人材として、加藤先生は、榮樂さんという学生について言及された。彼は、Linuxの上でNetBSDというOSを動作させてしまったという。同じような技術としては、User mode Linux(以下、UML、が有名だ。これも、Linuxの上でもう一つLinuxを動かすことができる。彼の実現した技術は、全く独自の物で、バーチャルマシンのレイヤーと、コードを機械的に変換するという2つのテクニックを組み合わせている。その成果は、LilyVMとして公開されている。
その彼が、OpenSolaris上でLinuxを動作させることに挑んだという。これは、昨年のコンピュータシステム・シンポジウムComSys2005における、OpenSolarisChallengeというポスター&デモ・セッションで、OpenSolaris上で動作するプログラムを用いて行われた研究発表の中から優秀なものを表彰するという企画であった。 『"せっかくOpenSolarisっていう、ちょっとやってみたくなる良い題材が来たんだから、OpenSolarisをホストOSとして、Linuxを動かすというのをOpenSolarisChallengeに向けてやってみよう"って、榮樂君をけしかけました。 OpenSolaris上のVMで、LinuxのOSがそのまま動いて、Linuxのアプリが何の変更もなしに動いちゃう、というのをやってみて、と。彼は、それを短期間で成し遂げてくれました(複合ハイパバイザによる仮想計算機の高速化、ComSys2005/OpenSolarisChallenge) OpenSolarisの機能で、Linuxエミュレーションの機能が入っているみたいなんですけれども、Linuxのアプリケーションのバイナリーコードが動くときに、Linuxのシステムコールの動きをOpenSolarisでエミュレートしているんだと思います。榮樂君の研究は、本物のLinuxのOSをOpenSolaris上のユーザモードで動かしてるんで、多分あの時点、去年の12月では、世界で最初じゃないかと思うんですね。 おそらくアメリカのサンに、学生が日本でこんなことをやりましたよって言っても、相当に評判になる仕事をやってくれたと思います。』 日常的なコンピュータ環境の先へ進む 充実したコンピュータ環境が日常的に使われているが、それで新しい刺激的な研究がなくなった訳ではない。優秀な人材が集まれば、コンピュータ環境は、さらにその先へ進むだろう。そこで、最新の研究内容についても伺った。 『現在、CRESTというプロジェクトを大型予算を取ってやっています。そちらでは自立連合システムというのを作っています(科学技術振興機構 戦略的創造研究推進事業CREST)。これは、VMの技術とP2Pの技術を融合させたもので、自ら生き延びるシステムです。
最近、コンピュータのハードウェアが壊れなくなっているんだけれども、ソフトの設定ミスとか、いくらサーバを一生懸命立ててもネットワークが切れちゃったらどうしようもないですよね。例えば、国際会議の論文投稿サイトを作ったりすると、〆切間際になるとシステムが落ちたり、システムは落ちないんだけどネットは落ちるということが、往々にしてあります。前に本当にあったのは、WWWってネットで一番大きな会議で、〆切の一週間前に火事になっちゃって。それで一週間前から投稿できなくなりました。 僕らが作っているシステムは、そういうことが起きても何とかしようというものです。どうやるかというと、まずサーバをバーチャルマシン上に作ります。これは割と簡単です。バーチャルマシンは、割とOSみたいに透明に作ってあるので、今あるサーバをVM上で動いているOSの上でインストールすればできるんです。 VMで動かすと良いところがいろいろあって。まず、スナップショットみたいなのを取ることができる。スナップショットを取ると、一生懸命いろんなツールを作っていろんなソフトを組み合わせて作ったサイトが、1ファイルに圧縮できる。それをP2P的なコピーで配りまくる訳です。P2Pってファイル交換でしょう、VMのスナップショットをファイル交換するような感じです。 国際会議の例でいうと、国際会議のコミッティの20人くらいのメンバーに配りまくっておく訳です。で、20人が互いにサーバがおかしくならないか見張っていて、おかしくなったら、誰があの仕事を代わりにやろうかって相談して、良さそうなところにサーバを立てる。そこで、とりあえず論文を受け付け、おかしいサーバが復旧してきたら、片方が降りるなり、並行してやって、そのサービスをずっと生き延びさせることができます。これは、すでにSBUMLというVMや、安全にソフトウェアを流通させるSoftwarePotという仕組みができています。 しかも、これはアプリケーションにほとんど手を入れずに、OSのミドルレイヤーのレベルの技術で全部やってしまうんです。セマンティックスに影響を与えない部分については、ほとんどアプリケーションに手を入れずに実現できます。』
『さらに、このようなVMをインターネットで実験したいなと思っています。それを手元でばんばん実験するために、"仮想インターネット"っていうのを作っています。サンからも協力して頂いていて、たくさんのマシンがうちのマシンルームにあり、そこに、"仮想インターネット"を作っています。このプロジェクトには、ソフトイーサの登君に参加してもらっています。 彼は、ソフトイーサーでレイヤー2スイッチのところまで仮想化したんですが、今度はレイヤー3のところまで仮想化するルータの仮想化のソフトを作ってもらっています。 ルータがソフトウェアで作れると、コンピュータ上にたくさんルータが作って、それを任意のところにつなぐことができる。仮想ルータの技術と仮想計算機の技術をいくつか我々のところで持っているので、それを組み合わせると、1台のコンピュータで10台から100台くらいの小さなサブネットを組むことができます。 それで、クラスタが100台と200台とかあるので、1個のマシンで100台エミュレートできれば、100×100で1万台のマシンがあって、任意のところにインターフェースを組めという仕組みを作りつつあります。 それを今年の末までに完成させて、お披露目でデモするっていうのをやりたいと思っています。』 その次のステージへ
『今年中に、とりあえずデモができるように完成度を上げて、サービスのソフトVMに興味がある人など、他のユーザにも、いろんな実験に使ってもらえるようにしたいですね。普通、こうしたプロジェクトを大学で行うと、自分達で使えるところまで行って、論文を書いて終わってしまうのですが、私は、他の人が実社会で道具としてつかえるところまで行きたいと考えています。』 『アメリカの場合は、国の中で大予算が付くので、BSDを作るとか、Machを作るだとか、億単位・数十億単位が集中的にピンポイントで投下される。かつ、リサーチプログラマがいますからね。でも、イギリスでやっている規模なら、やろうと思えばできそうですよね。 CRESTは大型予算を取っているプロジェクトなので、そういうふうにしたいなと思ってやっています。その次のステージに進むためには、プロジェクトとして世界に通用するものを作り出したいと思っています。』 加藤先生はこのほかに、『CRESTに匹敵するプロジェクトを準備している』と語って下さった。これもVM技術を活用し、Winnyなどでも大丈夫なコンピュータ環境を作り上げるという。 先日、このプロジェクトについて、内閣官房情報セキュリティセンター(NISC)から「高セキュリティ機能を実現する次世代OS環境の開発」という発表があった。ここでは、VMを利用してOSから独立した安全なコンピュータ環境を実現し、政府機関での利用を目指すという。加藤先生は、この開発の中心人物になる。CRESTの内容から判断すると、相当すごいコンピュータ環境が登場することが期待できる。 最先端のコンピュータ研究は、進み続けている。もしかすると、そこにはOpenSolarisのソースコードでコンピュータサイエンスを学んだ人材が参加しているかもしれない。
※著者のタイトル、所属等は、執筆当時のものであり、現在と異なる場合があります。
| Sun Fun Times
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||