本文へジャンプ

OSのあした

研究テーマは、世の中のテクノロジーの変化につれて移り変わっていくのでしょうか?

私の研究テーマは変わっていないんですよ。ただ、半導体技術が進歩して新しいデバイスが登場し、通信もCPUも変わっていったので、その都度OSには開拓地がひらけてきたといえます。実際、その時どきのテクノロジーによって、コンピュータの構成要素は統合、分離、融合を繰り返してきました。

たとえば、さきほどメニーコアCPU向けのカーネルの話をしましたが、CPUがメニーコアになったのは、単体の演算コアでは性能の伸びしろが小さいので、たくさんのコアを集めて計算を手分け――並列化しようというわけですね。

「データの移動」に注目すると、データはなるべく転送(コピー)しないほうが有利なんです。いまのOSのつくりは、ファイル入出力の過程で何度かデータがコピーされていきますが、コピーを抑え、データが必要になる前にうまくDMAを使って送り込んでおくような仕組みは、検討の価値があるでしょう。そのためには、どのデータが使われそうか予測(プリフェッチ)がいりますね。

さらに、これまでCPUに外付けされていたネットワークインターフェイスは、今後CPUのチップの中に取り込まれていきます。すると、CPUで動作するプログラムが直接データの転送を制御しなくても、CPU外部のDMA機構にコピーを任せられるようになります。メモリの内容をリモートのどこか――PCI ExpressにつながっているSSD、あるいは別のコンピュータのメモリへというように。これをうまく使うと、OSのつくり自体がもっとシームレスな形に変わっていきます。

このあと2020年代半ばには、半導体回路のパターンは5ナノメートル間隔に達するといわれています。それだけ微細な半導体を作れる工場はできるのか、そういう需要はあるのか、それはまだ見えていません。汎用CPUで高速化を望めないとなれば、プログラムのロジックをハードウェア回路にした専用マシンによって高速化を図る動きは出てくるでしょう。

DMA(Direct Memory Access):CPUを介さずに、メインメモリと周辺機器の間で直接データをやりとりする方式。

基盤層はプリミティブであれ

未来学者のジョージ・ギルダーは2000年ごろ、「ネットワークがコンピュータの内部バスと同じくらい早くなれば、マシンは特定の目的を持ったデバイスの集まりへとネットワーク上で分解するだろう」と言いました。Ethernetもバスだねという抽象化をすると、コンピュータやOSのかたちは変わっていくのではないでしょうか?

それをOSと言ってよいかどうかわかりません。大きなシステム全体のかたちとしては、もちろん「アリ」です。ただ、基盤層のプリミティブは絶対にシンプルにすべきなんです。あまり複雑にしないほうがいい。アプリケーションに合わせて、必要があればその上に複雑なものを積み上げればいい。

すると、このままいまのLinuxのようなものをずっと使っていくのでしょうか?

すでにアプリケーションはこれだけLinuxのAPIを使っているので、当面は残ります。まったく新しいOSを作るのは、アプリケーション資産も含めて社会の転換コストが大きいので、よほどのことがないと成功しません。けれども、まったく新しいアーキテクチャが出てきたとき、あるいはユーザーのニーズや使い方が変わったとき、そのときにはOSを変えるという可能性があります。
 Linuxも含めたUnix系のOSは、開発からかれこれ40年たちます。大きな違いがないように見えても、実はその間にハードウェアのアーキテクチャが少しずつ変わり、ユーザーの使い道も大幅に変化して、それと歩調をとるように内部の作りが変わってきているんです。

まだ計算性能も通信性能も低かったころから、一貫して並列処理システム――相互に作用しながら並列に動作するプログラムの基盤ソフトウェアを手がけてこられたわけですが、いまネットワークも高速になり、マルチコア、メニーコアのCPUも登場するようになって、先生の興味に時代が追いついたといえるのではないでしょうか。

そりゃあ、大それていますね。(笑)

ページトップへ戻る