ITmedia NEWS > 企業・業界動向 >
コラム
» 2008年08月07日 15時37分 UPDATE

Microsoftは再びマイクロカーネルを目指している?

かつてMicrosoftがWindows NTでの採用を断念したマイクロカーネル。メニーコア時代を迎え、Windows 7では実現できるのだろうか。

[Larry Seltzer,eWEEK]
eWEEK

 かつて「理論的にはクールだが実際的ではない」とされていたマイクロカーネルの概念だが、今度こそ、実世界に即した、より妥当なソリューションとして現実化するかもしれない。米Microsoftは目下、次期Windows「Windows 7」、そして報道によれば次世代OS「Midori」の開発を進めている。ではハードウェアのパフォーマンスもようやくマイクロカーネルを現実化できるレベルまで向上したのだろうか?

 メディアはMicrosoftのMidoriに関する話題で持ち切りだ。MidoriはWindowsをより分散化しやすく、信頼性が高いものにするためにMicrosoftが進めている研究プロジェクトだ。ただしWindowsについては、Microsoftはそのほかにも多くの研究プロジェクトを進行中だ。

 ここしばらくMicrosoftのOS設計についてはっきりしているのは、同社がWindowsカーネルをより小さくてより効率的なものへと変更しようとしている点だ。Microsoftはしばらく前からそのための作業に取り組んでいるが、この事実は、同社がかなり以前に初代Windows NTへの採用を試みるも実社会への適用に失敗して断念した哲学への回帰を目指していることを意味している。

 わたしの記憶によれば、マイクロカーネルの概念がホットな話題となったのは1990年代初頭のことだ。当時、OS/2の先進的な次世代バージョンとして開発されていた「Workplace OS」と呼ばれるOSがマイクロカーネルをベースにすると見られていた。ほかにも多くのOSベンダーがマーケティングで「マイクロカーネル」という言葉を用いていたが、実際の製品には、マイクロカーネル設計を実装していると広く認められるようなものはほとんどなかった。

 マイクロカーネルという概念の根底にあるのは、カーネル、つまりOSの最も重要な中核部分には必要最低限の機能だけを実装するという考え方だ。そのほかの機能についてはすべてユーザーモードで実行し、プロセス間通信を介して相互に対話させる。これには、デバイスドライバやファイルシステム、ネットワークスタックといった通常特権コードと思われている要素が含まれる。

 わたしは1994年にMicrosoftのジム・オールチン氏と話をした折に、OSの哲学としてMicrosoftがマイクロカーネルをどうとらえているのかを尋ねたことがある。正確な言葉は覚えていないが、同氏の返答は「哲学のための哲学に従うことには何の価値もない」というような内容だった。現実に存在している人々のために現実の製品を作っているのだから、実際的に考えることが重要だとのことだった。マイクロカーネルモデルはパフォーマンスに負担が掛かるが、そうした負担を掛けるだけの価値が本当にあるだろうかといったようなことを同氏は語っていた。

 プロセスと特権モードを分離することで、特権の変更やタスクの切り替えの件数が大幅に増え、パフォーマンスの負担が増大する。少なくともうわさによれば、IBMがWorkplace OSの開発を断念したのも、こうしたパフォーマンスの負担が原因だったようだ。WikipediaではWorkplace OSに関して「PowerPC向けにリリースされた」と説明されているが、この情報は間違っているのではないだろうか。わたしの記憶では、Workplace OSは結局β段階に入らないまま開発が打ち切られたはずだ。打ち切りの理由は、α版の性能があまりにお粗末で、ハードウェアのパフォーマンスがよほど改善されないことにはどうにもならないが、近い将来ハードウェアのパフォーマンスが一気に向上することも期待できないというものだった。わたしは確か、同システムは起動に45分もかかるという記事を読んだ記憶がある。

 Microsoftも当初、Windows NTの設計にマイクロカーネルモデルを採用することを目指していたが、パフォーマンスの問題が明らかになったため、その方針を断念した。わたしの記憶が正しければ、MicrosoftがNTのグラフィックスコードをカーネルモードに戻したのはNT 4.0においてだ。そして、たとえシステムの安定性がある程度犠牲になったとはいえ、あるいは少なくともシステムの安定性がリスクにさらされたとはいえ、このおかげでワークステーションのパフォーマンスはかなり改善された。

 そしてIBMがWorkplace OSの開発を断念し、Microsoftがモノリシックカーネルに復帰してから14年が経った今、ハードウェアのパフォーマンスは大幅に向上した。1つのプロセッサに複数のコアが搭載され、1台のサーバに何十ものコアが搭載されている。Microsoftは最近ハードウェアの向上に依存し過ぎる傾向にあり、Vistaでもそれが問題になっているが、現行のハードウェアではなく次世代のハードウェアに合わせて計画を立てるというのはMicrosoftの核となる哲学でもあり、実際、そうしたアプローチは概してうまく行っている。

 ではWindows 7はどうなのだろう? Windows 7はマイクロカーネルを搭載することになるのだろうか? インターネットでは、Microsoftの著名エンジニア、エリック・トラウト氏がWindows 7とMinWinカーネルについて説明し、MinWinの簡単なデモを紹介した動画が公開されている。そのほかにも、一部の記事はMinWinがWindows 7のカーネルになるだろうと報じている。だがトラウト氏は何度か、MinWinは社内プロジェクトであり、具体的な製品化の計画はないと発言している。事実、わたしの知る限りでは、同氏は実際にWindows 7のデモは行っていない(ただし、Microsoftは既にWindows 7の使用許諾契約書は準備している)。

 またトラウト氏によれば、MinWinはMicrosoftが今後Windowsで目指している方向性だという。同氏はその方針の一例として、「Windows Server 2008 Server Core」を挙げている。ただし、これはマイクロカーネルにはほど遠い。MinWinは約40Mバイトで動作し、ユーザーインタフェースは唯一、端末とHTTPサーバを介したものだけだ。一方、Server Coreは約1.5Gバイトで動作する。ただし、カーネルで消費されるのはそのごく一部であり、サーバの役割によっても異なるが、メモリ使用量もかなり抑えられている。

 本来の意味からすれば、MinWinは正確にはマイクロカーネルではないが、考え方としては共通する部分がたくさんある。例えば、Windowsでは多くの機能がユーザーモードに移されている。ただし、大きな変化が実現するのはまだ先と思っていた方がよさそうだ。Windows 7での変化は漸進的なものになるだろう。

原文へのリンク

Editorial items that were originally published in the U.S. Edition of “eWEEK” are the copyrighted property of Ziff Davis Enterprise Inc. Copyright (c) 2011. All Rights Reserved.