仮想化栄えて、OSは機能モジュール化するのか?
先日、BEAさんにアプリケーションサーバーの仮想化について話を聞いた。で、仮想化って今後進むと、やっぱりOSの存在感って薄くなるんだろうなぁって、改めて感じてしまったのだ。
BEAが提供するアプリケーションサーバーの仮想化は、ハイパーバイザーの上でアプリケーションサーバーを直接動かしてしまうというもの。メリットは、OSが入らないので、そのぶんのメモリの消費がないであるとか、そもそもOSがないのでそのぶんのライセンスも必要ないといったことがある。
技術的に見るとこの仕組みにはOSがまったくないのかというと、まあそんなことでもないようだ。ようは、JavaVMを動かすために必要な最低限のPOSIXベースのカーネル機能がくっついているのだ。この最低限というところには他にもメリットがある。たとえば、セキュリティを考えた場合には、そもそも攻撃対象となるOSに付随するプログラムがないので攻撃のしようがないのである。つまり、セキュリティリスクになるような要素が減るメリットもある。
もちろんメリットだけではない。OSが本来やってきた仕事がなされないわけだから、いくつか不自由な点もある。たとえば、OS上で動かすバッチ処理的なことはできないなどなど。まあ、このあたりは別途機能を分けるなど、運用で逃げられそうではある。
何でも屋のOracleも、いまや仮想化ハイパーバイザーを提供する。いまのところはハイパーバイザーの上ではLinuxがフルで動き、その上でOracle DBなりを動かすという構成になるが、おいおいOracle DBを動かすのに必要のないLinuxのプロセスは全部止めちゃえ、いっそ止めちゃうんだからそういうコードを削除した小さいOSにしちゃえという流れは出てきそうだ。
さて、このように仮想化していくと、あちこちのアプリケーションをゲスト環境で動かす場合には、OSの存在感がどんどん薄くなるのではというのは容易に想像できる。そうなるとWindowsの立場はどうなるのだろうか。Windowsも機能特化した軽いOSというのが出てくることになるのだろうか。EeePC用などに軽いOSが望まれつつあるが、仮想化という面からもこの傾向は加速するのかもしれない。OSもモジュール化して、必要な機能だけを選べばいいってなことになるのが理想かな。