インターネット時代のOSを考える

また、久しぶりの更新になってしまった。2週間以上も間が開いてしまっていたが、それは 1) 仕事が忙しかったから、2) 気分が乗らなかったから、3) 元気が無かったから であって、別に何か特に深い理由があるわけではない。

更新していなかった間に、アスキーReal UNIX Magazine Dayに参加してきた。OSパネルなるものがあって、UNIXを中心としたいままでの変遷などが話されていてなかなか興味深かったのだけれど、今後の話についてあまり議論されなかったのが残念。なので、ちょっと私なりに考えてみた。

OSのカーネルはCPUの発展に伴って、今後もさまざまな改善や機能追加がされていくだろう。自分としては仮想化(Virtualization)に今は興味がある。私はDEC出身ということもあり、コンピュータやCPUの密結合や疎結合技術には昔から興味があった。10数年前まではSMP/ASMPやクラスタなども実際に自分たちの開発するアプリケーションのプラットフォームとして、また販売するシステムとして利用していた。そういえば、WindowsのクラスターとしてはマイクロソフトがMSCS(Microsoft Cluster Services)*1をリリースするより先にDECがVMSのクラスタ技術を利用してWindows版を開発しリリースしていたが、それを日本で担当していたのは私だ。Windows Worldだったと思うがデモをするたびに黒山の人だかり(ちょっと大げさ)ができていたのが懐かしい。もう10年以上昔の話だ。

デスクトップOSの現状と今後

ちょっと話がずれたが、このようにOSの技術は今後も確実に進歩していくと思われるが、一般ユーザー向けのデバイスのOSとして見た場合はどうだろう。今で言うPCのOSだ。現在では、この市場はほとんどWindowsが支配している。元担当していたものとしても、これは必然の結果といえる。Windowsは過去のアプリケーション資産を継承でき、豊富なデバイスサポートがある。これにより、一度、Windowsを使ったユーザーはなかなかほかのOSに移行できない。実際、Windowsほど豊富なアプリケーションとデバイスのサポートがあるOSはいまだに無い。マイクロソフトもこの部分には多大な投資をしているのだから、当然といえば当然だ。デスクトップ(ラップトップ/ノートも含む)OSとしてLinuxにも期待が集まるが、残念ながら現在のレベルでは、アプリケーションもデバイスもサポートの量/質ともに、Windowsの比ではない。もちろん、自分ですべて対応できるユーザーにとっては、自分の使うものさえ用意できれば良いのだから、LinuxやほかOSも十分利用価値の高いものだ。だが、ほとんどのユーザーはそうではない。OS Xになって以降のMacはかなり健闘していると思うし、今後も楽しみなOSだが、当面の間はWindowsの圧倒的なシェアは変わらないだろう。

一方で、Windows Vistaの市場への浸透がなかなか進まない*2状況を見ると、CPUの高性能化に伴った多くの機能拡張がマーケットに対し、高い訴求力を持つことはできなくなっているように思う。結局、使うのはワープロと表計算、そしてブラウザとメール。あえて言うならば、あと年末に年賀状が印刷さえできれば十分なのだろう。テレビ機能だって、Windows XPから出来ていたから、機能強化されていたとしても、Windows XPレベルのもので十分とユーザーが考えても不思議はない。そもそも今の若い連中はテレビを持っていないことも珍しくない。

ここで、あえてコマーシャルな側面を除いて、今後のOS(デスクトップOS)の進むべく方向を考えてみよう。アプリケーションサポートの重要性は今後も変わらないが、実はこのアプリケーションは確実にインターネットをプラットフォームとする方向に進化している。「インターネットをプラットフォームとする」とは、俗に言われているブラウザさえあれば事足りるようなウェブアプリケーションの台頭とインターネット接続を前提とするクライアントアプリケーションの増加を意味する。前者についてはいろいろな場で語られているのでもう説明のする必要はないと思うが、ワープロや表計算なども含めて多くのアプリケーションはウェブアプリケーションとして提供されおり、インターネットが利用可能な環境であればブラウザさえあれば利用できる。後者は従来より増加していたアプリケーションであるが、ここに来て、RIA(Rich Internet Application)として、あるフレームワークに準拠することで、OSというプラットフォームに依存しないアプリケーション開発が可能となっている。Flashもそのようなフレームワークと考えられうるが、AIRやマイクロソフトSilverlightもそうだろう。このような状況がさらに進むと、OSはブラウザが安定して動作することと、RIAのフレームワークがサポートされていることがもっとも重要なこととなるだろう。

デスクトップOSに要求されるデバイスサポート

だが、このような状況になっても残るのがデバイスサポートの要求だ。先に述べたように、Windowsが市場で高いシェアを占めているのも、このデバイスサポートが強力だからだ。マイクロソフトがデバイスサポートのためのフレームワークを強化し*3、WHQL(Windows Hardware Quality Labs)でWindowsロゴを発行することにより、市場に出回るデバイスの質も確保している。今はマイクロソフトと提携しているサンマイクロシステムズのScott McNealyが昔「Windowsは出来の悪いカーネルとデバイスドライバの集まりにすぎない」と辛辣にこき下ろしたと言われている*4が、そのデバイスドライバを集めることが出来るだけでもすごいことなのだ。話がずれるが、そんなサンマイクロシステムズも今ではWindows ServerをOEM販売している。10年くらい前に、サンマイクロシステムズ以外のハードウェアベンダーがWindows ServerをOEMしているの状況で、「サンマイクロシステムズさんももうすぐWindows Serverをサポートすることになるのでしょうね」とマイクロソフト幹部が言っているのを聞いて、すごい自信だなと思ったものだが、本当にそうなるとは感慨深いというか、皮肉なことと言うべきか。

ネットワークを介してのデバイスサポート - "Network Attached"

このデバイスサポートであるが、これも状況が変わる可能性がある。デバイスの多くがネットワークに直接接続可能になってきている。ストレージやプリンタなどが典型的なものだが、ほかのデバイスもネットワーク接続が可能となるだろう。無線LANも高速化しているし、それ以上高速のものが必要であれば、UWBなどを利用することになるだろう。無線LANUWBの上でTCP/IPが使われれば、それはもはや一般のIPアプリケーションとして対応すればよいことになり、OSの依存性は限りなく少なくできる。UPnPなどはその典型的な例であろう。個人的にはすべてのネットワーク接続デバイスはTCP/IPを使うようにすべきであり、それを阻害する要因はTCP/IPのプロトコルを改善することにより解決すべきだと思う。それにより、TCP/IP対応のデバイスが増加し、TCP/IP自身もさまざまなシナリオに対応できるプロトコルとなり、アプリケーションやデバイスの対応も容易になるというポジティブループが生まれるはずだ。だが、実際にはTCP/IPを採用できないケースも多いことも十分認識している。そのようにTCP/IPではなく、デバイスとの接続に最適化されたプロトコルが必要な場合は、Bluetoothのように共通フレームワークを策定し、その上でデバイスやユーザーシナリオごとにプロファイルを定義することも可能だろう。これもOSや個々のデバイスへの依存を排除する有効な手段だ。Wireless USBなどは、個々のプロファイルは策定していないが、そのような形で仕様が策定されている例かもしれない。

このようなOSに依存しないネットワークを介してのデバイスサポートが進むためには、いくつかの課題がある。1つがネットワーク構成の複雑さの排除だ。Bluetoothなどはそれでもだいぶ簡単になっているが、無線LANの設定やTCP/IPの設定はまだまだ複雑だ。Windowsにおいて、デバイスを接続すれば、PnPで簡単にそのデバイスが検出され、自動的に適切なドライバがインストールされる*5のに比べると、まだまだ一般ユーザーには敷居が高い。無線LANの設定は、Wi-Fi Protected Setupにより改善が期待できるが、TCP/IPの設定についても改善が必要だ。何度かこのブログでも述べている(はず)だが、IPv4DHCPやAPIPA(もしくはAUTOIP)で多くのユーザーは救えるが、もっと簡単な方法が望まれているし、トラブルシューティングに難がある点もどうにかしたい。その意味で、しつこいのかもしれないが、IPv6のStateless Autoconfigurationが期待できる。

もう1つの課題がこのようなOS非依存の形でどこまで決めの細かいデバイス制御ができるかだ。一般的なデバイスを例にあげるとすると、プリンタだ。プリンタは単に印刷するだけであれば、今でもWindows以外から印刷は可能だ。だが、業務システムとして考えた場合、帳票印刷などでは、わずかなずれも許されない。個人の利用でも、年賀状に印刷する際に、年賀状はがきの表(あれ、裏かな?)の宛名書きが郵政公社のはがきの赤枠から外れて印刷されたら、がっくりくるだろう。このような細かい制御が果たして、OSに依存しない形で、スケーラブルに実現できるかは考えなければいけない課題の1つだろう。

さらに、もう1つの課題が、業界としての取り組みの意思だ。従来、PCに直付け前提で開発されていたものをネットワーク接続可能にし、そのために新たな枠組みを用意するというのは、1社ではできない。業界全体としてのサポートが必要となる。今の状況をGiven Conditionとして胡坐をかいて商売をしている限りはこの方向に進めないだろう。次のあるべきパーソナルコンピューティング環境を考え、投資をするベンダーがどの程度集まるかも重要だと思う。


久しぶりに書いたら、余計なことも多く書いてしまったので、長くなってしまった。当たり前のことをまとめただけなのかもしれないが、最近の自分のPCの使い方を振り返って、今後のOSのあり方を考えてみた。数年後に再度このエントリを読むことがあった場合、荒唐無稽なことを言っていた自分に気づくのかもしれないが。

*1:今はWindows Serverに標準搭載(Editionによる?)されているが、最初はWindows NT Server, Enterprise Edition 4.0としてリリースされた。

*2:確実に進んでいるという話もあるが、周りを見回すと、PCを買い換えるとき以外にVistaを導入したという例をあまり聞かない。元担当として少し責任を感じている。

*3:今では一般的なデバイスドライバであれば、ほとんどコードを書く必要が無いものもある。また、デバイスドライバの品質を高めるために豊富なツールを準備している。

*4:出典がどうしても見つからない。

*5:すべてうまくいった場合だが。