ITRON? Android? Windows Embedded? 〜OS移行のメリットとOS選定のヒントを探る〜【後編】特集・組み込みOS採用事情(1/2 ページ)

OS移行のメリットとOS選定のヒントを探る。【後編】では、日本マイクロソフトが開催した「組み込み開発者セミナー 〜Android、Linux、ITRONなどのオープンソースを考察する〜」の中で、安川情報システムが講演した「組み込みOS採用事情」の内容をベースに、AndroidとWindows Embedded OSとの機能面から見た違いについて紹介する。

» 2011年07月27日 12時38分 公開
[八木沢篤,@IT MONOist]

はじめに

――【前編】に引き続き、日本マイクロソフトが2011年6月28日に開催した「組み込み開発者セミナー 〜Android、Linux、ITRONなどのオープンソースを考察する〜」の中で、安川情報システムが講演した「組み込みOS採用事情(1)(2)」の内容をベースに、OS移行のメリットとOS選定のヒントを探る。

 【後編】となる今回は、安川情報システム 中田佳孝氏の講演テーマ「Android? Windows Embedded OS? 機能面から見たOS解説」の内容を基に、両OSの特徴を踏まえながら、OS選定のポイントについて紹介したい。なお、本文中に掲載している図表は、同セミナーで使用された安川情報システムの講演資料を利用している。

Android? Windows Embedded OS? 機能面から見たOS解説

Androidの爆発的な普及は組み込みの世界にも

 スマートフォンやタブレット端末での採用に代表されるように、今、Androidブームの真っただ中といえる。本当にそういう経営者やマネジャーが実在するのかは定かではないが、「はやっているからAndroidを採用しよう!」という気持ちになるのも分からなくはない。

 TV CMのみならず、TVや雑誌のスマートフォン特集などで見ない日はないほど露出し、アーリーアダプター層だけでなく、今や一般にまで広く認知され(高い認知度)、日本国内においてもAndroidを搭載したスマートフォンやタブレット端末が数多く発表・発売されている(採用実績の増加)。また、ライセンス費用が掛からないという点も魅力の1つであるため、Androidの採用を検討する動きは増えてきている。さらに、開発者視点から見ると、XMLベースでUIが記述できたり、Javaでアプリケーションを開発できたり、Googleが提供する各種サービスとの連携が容易であったりなどの点もAndroidの大きな魅力として、採用を後押ししている。

 こうした流れを受けてか、組み込み関連の展示会やイベントでもAndroidの特設ゾーンが設けられたり、出展企業各社からAndroidをテーマに掲げた展示デモが披露されたりなど、Androidを他の組み込み機器に適用しようという動きが活発になってきている。また、一般社団法人「Open Embedded Software Foundation(OESF)」のような団体も発足され、多くの参加企業とともに、組み込み用途向けのAndroidディストリビューションや関連サービスやツールなどを手掛け、携帯電話以外の組み込み機器へのAndroid適用を普及促進している。この辺りの活発な動きについては、過去の組み込みイベントレポートなどでご確認いただきたい。


Androidを手放しで採用してしまってよいのか?

 このように組み込み機器向けのOS(正確にはプラットフォームだが)としても、その存在感が日に日に増しているAndroidだが、“組み込み用途”として見た場合、幾つかの懸念点がある。

Android OS懸念点(組み込み機器向けOSとして) 図1 Android OS懸念点(組み込み機器向けOSとして)

 まず、セキュリティの問題だ。現状、それほど多くはないようだが、過去、Windows OSが流行したときと同様にAndroidがはやれば、ウイルスの標的になる可能性が高まる。また、Androidの場合、(スマートフォンを例に挙げると)端末メーカーからのセキュリティパッチのリリースが早いとはいえないため、その点もリスクとして把握しておくべきである。

 さらに、GPLの懸念が挙げられる。Androidのカーネル層はLinux 2.6がベースとなっているため、カーネル内部に組み込むようなデバイスドライバを開発した場合、そのソースコードの公開義務が発生してしまう可能性がある。新規にハードウェアを作り、Androidをポーティングし、ミドルウェアを作って、アプリケーションを載せるというような、組み込みならではのトータルなシステム開発の場合には避けて通れない問題といえるだろう。

 また、もともとのターゲットがスマートフォン向けで、アプリ開発の容易性を追求したためか、Androidはリアルタイム性が考慮されたOSではない。厳密なリアルタイム性が求められる組み込み機器での利用には不向きである。

 そして、処理速度の問題も気を付けておかなければならない。Androidの場合、OSの起動からアプリケーションの起動までを考えると、

「ブートローダ−」→「Linuxカーネルのブート」→「Dalvik VMの起動」→「アプリケーションの起動」

と、いろいろなものを立ち上げながら最終的にアプリケーションを起動する。また、アプリケーションは通常、Dalvik VMで動作する中間言語でコンパイルされるため、ネイティブコードに比べ処理速度が遅いという問題もある(処理速度を求めるならば、ネイティブコード+JNIでの開発が必要になり、Java言語開発技術者にとってはハードルが高くなってしまう)。

 何も考えずにAndroidを採用してしまうと、このような課題にぶつかり、思っていた・想像していた“Android効果”が得られないといったことも起こりかねない。

 ただ、その一方で、組み込み機器へのAndroid適用を推し進める動きも活発化しており、リアルタイムOSと共存させるような(リアルタイム処理はRTOSで、UIをAndroidでといった)仕組みや、システム高速起動の仕組み、組み込み向けにAndroidを最適化・軽量化する取り組み、Android端末向けのウイルス対策ソフトウェアのリリースなど、さまざまなアプローチでこうした懸念点を払拭する動きも各企業から出てきている。ターゲットシステムにAndroidを採用すると決定した場合には、こうした弱点を克服するような技術的アプローチも併せて検討すべきだろう。


AndroidとWindows Embedded OSとの機能面での違い

 それでは、AndroidとWindows Embedded OS(ここでは、Compact 7とWindows Embedded Standard 7(以下、Standard 7))との機能面での違いを紹介しながら、OS選定のポイントについて考察していきたい。なお、Compact 7とStandard 7の特徴については、以下の関連記事を参考にしてほしい。

Windows Embedded Compactとは? 図2 Windows Embedded Compactとは?
Windows Embedded Standardとは? 図3 Windows Embedded Standardとは?

 あらためて、昨今の組み込みOSに求められるポイントを整理してみると以下のような項目が挙げられる。

  • 多くのセンサー/通信デバイスなどに対応
  • セキュリティ
  • コネクティビティ(Webサービスなどとの)
  • リッチUI
  • スピード(処理速度)
  • 開発のしやすさ/開発リードタイム
  • パワーマネジメント 
    など

 ここでは上記の項目を踏まえ、「対応デバイス」「セキュリティ」「コネクティビティ」「開発環境」の観点から各OSの特徴や保有する機能、選定のポイントを紹介したい。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.