第12回 Androidに至る道:Embedded Android for Beginners(Android基礎講座)(1/3 ページ)
ソフトウェアの黎明期からAndroidの生い立ちをたどることは、Androidの今と将来を知るための大きな一助となります。今回は、そのような大きな目線でAndroid誕生までの流れを振り返ります。
→「Embedded Android for Beginners(Android基礎講座)」連載一覧
Androidは他のプラットフォームと違うと言われます。確かに、構造上は明らかな違いがあります。その本質的な違いと、異なるプラットフォームからAndroidへ移行する際の注意点について、本連載の第10回で紹介しました。その際にも触れましたが、ソフトウェアプラットフォームの構造には、関わった人や会社の意思、時代背景が大きく作用します。
ソフトウェアの黎明期からAndroidの生い立ちをたどることは、Androidの今と将来を知るための大きな一助となります。今回は、そのような大きな目線でAndroid誕生までの流れを振り返ります。
ニーズを包括的にカバーしたAndroid
まず、有名なAndroidのダイアグラムをもう一度見直してみましょう(図1)。一見すると、この図は単にソフトウェアコンポーネントを積み上げただけのようです。最近まで、筆者もなんだかつまらない図を作るものだと思っていました。しかし、実はこの図はAndroidの長所をうまく説明していることに気が付きました。
第3回で述べましたが、Androidはワンストップソリューションを実現しているプラットフォームです。携帯電話を例にとりますが、10年ほど前までの端末開発は、端末メーカー、チップセットメーカー、OSメーカー、Javaメーカー、MMS/SMSメーカーなど、10〜20社が集まってインテグレーションを行っていました。このインテグレーションという作業には膨大な費用と期間を必要としたため、すべてのソフトウェアコンポーネントがインテグレーション済みの“ワンストップソリューション”が求められるようになりました。
そのような端末メーカーの声を受けて、いくつかのソフトウェアコンポーネントを供給し、力をつけてきたソフトウェアメーカーたちがこれを手掛け始めました。例えば、Symbianなどもそのような背景から登場しました。しかし、そのようなプラットフォームは大抵作りかけで、必要最低限の機能が備わっていないものでした。特に日本では、実質的に端末開発をリードしている通信事業者などがそのようなプラットフォームを製品レベルに持ち上げて、携帯電話メーカーに使用させるという時期がありました。
しかし、ソフトウェアプラットフォームは巨大化・複雑化の一途をたどりました。一方、携帯電話の契約者数は伸び悩み、開発を維持していくことが困難になってきました。そのような、世界中の通信事業者・端末メーカー・プラットフォームメーカーがあえいでいる中で、Androidは登場しました。
- Linux Kernel
- Libraries
- Android Runtime
- Application Framework
- Applications
詳細は後述しますが、これだけのソフトウェア全てを1つのプラットフォームとして、しかもオープンソースも同時に公開したということは大変なことでした。注意すべき点は、これら全ての部分について、当時の世の中のニーズを的確に捉えていたということです。さらに、2兆円企業として日の出の勢いであったGoogleが手掛けたということが拍車を掛けて、Androidは瞬く間に業界の話題となり、現在のポジションへと突き進んで行きました。
Linux Kernel/Libraries
Linuxの普及当時はまだUNIX 系OSの1つとして数えられており、安定性に欠けるなどの指摘も少なくありませんでした。しかし、コミュニティーの成長と商業利用における成功を軸に、サーバから組み込みまで大きなシェアを持つに至りました。Androidは言うまでもありませんが、目下Androidの最大のライバルと目されているMeeGoもLinuxベースのプラットフォームなのです。
今では、LinuxがUNIX 系のOSであるということを知らない人も珍しくありません。それもそのはずで、参考までにGoogle検索してみたところ、UNIX 系OSにおいてはやはりLinuxの情報がダントツに多いことが分かりました(図2)。
特筆すべきは、UNIXというキーワードですら、Linuxに比べるとはるかにマイナーなものになっているということです。また、Mac OS Xは唯一この中で今後の大きな伸びが期待されますが、それにしても差が開きすぎており、基本的な構図は当分の間は変わらないとみられます。
さて、UNIXについては書籍やWebの情報がたくさんあり、面白いのでぜひ読んでいただきたいのですが、もともとはAT&Tのベル研究所で1969年に作られました。研究・教育機関での利用を足掛かりに普及していきましたが、その際に多くの派生系が誕生しました。Linuxはご存じの通りリーナス・トーバルズ氏が学生時代に作り始めた比較的後発のUNIX系OSですが、前述の通りコミュニティーが順調に成長し、デスクトップUNIXとして広がり、Windows Serverや商用UNIX 系OSといったサーバサイドの領域でも利用されるようになりました。
一方で、組み込み機器の世界では、OSレスのマイコン制御から始まって、固定数のタスクを切替えるだけの機能しかないRTOSの走りのようなOSが使われるようになり、それがだんだんと機能強化されていました。そのような時代には、製品開発の際、ハードウェアメーカー、RTOSメーカー、アプリケーションを供給する会社と並んで、例えばファイルシステムのドライバを単品で売る営業さんがいたりしました。つまり全ては個別の製品だったのです。しかし、(携帯電話が強力に進化したことが大きいと考えられますが、)組み込み機器は巨大化・複雑化し、特にネットワーク接続が求められるようになりました。
UNIXは古いシステムであり、よく言われるようにMulticsの反省からポータブルで小さい実装ということを念頭に置いて作られました。商用ではサーバでの利用が先でしたが、現代の組み込み機器での利用の可能性は以前から検討されていました。リアルタイム性については弱かったものの、優れた設計とネットワークに強いという特徴が武器になり、インターネットラジオなどから始まって普及していきました。日本の携帯電話では、NTTドコモがLinuxの採用を決めました。当時、携帯電話のOSのソースコードが公開されるなどあり得ないことでしたが、NTTドコモは公開の義務を守り、自社のWeb上に公開したことが話題になりました。
また、Linuxの普及により、ドライバもオープンソースを流用したり、デバイスメーカーが無料で提供するようになりました。先に挙げたドライバの営業さんも、登場する機会がめっきり少なくなったのです。また、デスクトップやサーバで構築された豊富なライブラリ群も、多くが性能・機能をチューニングするなどして組み込み機器にも対応されました。NTTドコモの携帯電話の例では、X-Windowベースのウィンドウシステムを構築しました。
このような背景から、ことLinuxに関していえば、Androidが下支えのOSとして採用したということは、異論の余地のない当然の判断と考えることができます。
Copyright © ITmedia, Inc. All Rights Reserved.