フラグメンテーションと Linux

jzemlin_jp's picture

最近、組込み Linux とそのフラグメンテーションに関する批判が聞かれます。つまり MeeGo、Android、webOS といった活気ある Linux プロジェクトに関するものですが、これは Linux にとっては良くないことであり、危険なことであるというものです。これらの批判する人々は、Linux のフラグメンテーションが Microsoft や Apple との競争力を低めるだろうと言っています。もちろん私はそうは思いませんが、マーケットやマーケティング戦略家も、私と同様です。フラグメンテーションの問題をありがちな言い方で大袈裟に取りざたするのは、Linux に係わる経済の一面だけしか見ていません。

Linux プラットフォームは、分断化(フラグメント)されていると同時に、統一化されています。

Linux には、統一化された基本部分があります。アップストリーム コンポーネントと呼ばれているものです。エンタープライズ Linux OS 同様、組込み Linux OSは、Linux カーネルのようなコアのアップストリーム コンポーネントで構成されています。まず、デバイス ドライバーなどを含むハードウェア サポートを実現する カーネルのレベルで見ますと、Linux エコシステムは高度に統一化されています。Linux に自社のハードウェアをサポートして欲しいデバイス メーカーやシリコン サプライヤーは、迷うことなく kernel.org のメインライン Linux カーネル プロジェクトに、コードをコントリビュートします。メインライン カーネルを使用することは、基本中の基本です。最近 Google は、自社のドライバーをメインライン カーネルに入れるためにコミュニティに協力しています。それにより、Android をメインライン カーネルに統一化するうえで大きな進展が見られました。

つぎに、Linux ディストリビューションは、コア ライブラリ レベルでも統一化されています。Linux ディストリビューションには、カーネルに加えて、X.org、glibc、gstreamer、Gnome、QT、webkit、CUPS、clutter などのプロジェクトが含まれています。これらはみな、ほとんどのモバイル Linux 、つまり Chrome、Android、MeeGo、WebOS、LiMo などに含まれているコア ライブラリの例です。 これらの モバイル Linux は、すべて同じ「基本」コンポーネントを使用しています。たとえば MeeGo プロジェクトの開発哲学は、「アップストリーム第一」主義です。MeeGo やその他の多くの Linux ディストリビューションのコード開発は、ほとんどアップストリームで発生します。つまり、MeeGo がアップストリームにコントリビュートすると、すべてのダウンストリーム ディストリビューションがその恩恵を受けることになります。これはサーバーやデスクトップ市場でも同じなので、ディストリビューションにとって、アップス トリームの開発に重点を置くことは非常に重要なのです。

フラグメンテーションのように見える領域も存在します。それはアプリケーション エコシステムや API の領域です。アプリケーション API は上位レベルで定義され、市場で優位に立つ Linux のバージョンは、しばしばここで決まります。多くの場合、市場では複数の Linux バージョンが成功を収めます。Google の Android は Linux をベースにしたモバイル OS ですが、Java ベースのランタイムでアプリケーションの互換性を維持しています。消費者は、Android マーケットプレイスからアプリケーションを入手することができます。また、WebOS (まもなく HP の Linux バリアントになる予定) でも、ランタイムや SDK は異なりますが、やはり同様の手法がとられています。MeeGo には Qt をベースにした SDK があり、Symbian、Mac、Windows、MeeGo 上で動作するアプリケーションの開発に使用できます。Amazon Kindle にもアプリケーション SDK があります。

これらはでたらめに作られた Linux ではありません。それぞれの取り組みは、Google、HP、Intel、 Nokia、Amazon など、独自のエコシステムを形成する主要な企業の協力によって支えられています。これは Linux にとって悪いことでしょうか? Linux は多様な選択を許容し、そうすることで、企業やプロジェクトや個人 は競争し、成長することができるのです。 API の違いを打ち出すことで、企業は競争が可能 になり、プラットフォームが拡充していきます。参加者は、特定のプロジェクトの人脈メリットや参加の容易性を基準に、Linux アプリケーション API の取り組みを取捨選択できます。

つまり、アップストリームの進化の中ですべてを共有できることは、Linux にとっても良いことであり、また、多くのエコシステム メンバーにとっても良いことなのです。 さまざまなブランドを作ることによって、巨大で拡大する マーケットに対応しているのは、組込み Linux に限ったことではありません。消費者ブランドを見てみましょう。たとえば P&G は、オムツの市場を確実に占有するために、複数のオムツのブランドを持っています。Intel、 Nokia、Google、HP、Motorola、およびその他のメーカーが、それぞれの方針に基づいて製品を開発しているのであれば、セグメンテーションは賢い戦略です。

Android、MeeGo、Chrome、WebOS はすべて Linux ベースであり、これらが構築するアプリケーションの種類や参入する市場について戸惑う人はいません。実際、Apple、RIM、Microsoft を除けば、Linux を使わずにクライアント コンピューティング デバイスを構築する企業はほとんどありません。コンピューティング スタックの低位レベルで統一化されているさまざまな Linux システムのトップには、複数のアプリケーション エコシステムが存在することになります。これが研究開発費の分担 とマーケット競争の絶妙なバランスを提供します。企業にとって重要なことは、信頼できる企業に支援されている Linux エフォートに自らを適合させ、それらのエフォートがアップストリーム でコードを開発し続けることを確かめることです。エフォートはさらに増えるでしょうか? おそらく増えるでしょう。しかし、既に動いている技術やプロセスを制限したり、規定したり、改造したりするために、「統一」という名目で新たなエフォートが作成されることは望ましくありません。

市場では、アプリケーション レベルにおける Linux のフラグメンテーションは、全く問題ないと考えているようです。世界最大のチップ メーカーと、世界最大のモバイル ハンドセット メーカーが、2 つの Linux エフォートを 1 つの Linux ベース エフォートにマージしました。ハードウェア OEM や通信事業者が、続々と MeeGo に参入し始めています。 Android は、ユニット出荷で Apple iPhone を抜 いたばかりです。また HP は、自社デバイス向けのプラットフォームとして webOS を使用するために10 億ドル以上を支払い、同時に Microsoft とのタブレット プロジェクトを解消したところです。Linux は、組込みシステムの シェアで優位を占めています。私たちは、モバイル コンピューティングにおける長い戦いの初期段階にいます。私個人としては、Linux がこのように多くの人々から賭けてもらっていることを嬉しく思っています。
(オリジナルのブログはこちら)