【第二回】 組込みOSの選択 ~Windows Embedded CE か Linux か~
組込みOSに求められる要件と比較のポイントを探る
単純な比較での選択が難しい組込みOS
組込み機器向けの汎用OSとして、現在主にWindows Embedded CE と Linux が利用されています。この2つのOSにどのような違いがあるのでしょうか?
「サポートの充実度ならば Windows Embedded CE」「コストを重視するならばオープンソースのLinux」と単純に考えてしまいがちですが、実際にはそれぞれ異なった特長やメリットがあり、機器に応じて最適なものを選択することが求められます。
ここでポイントとなるのが、以下の3つです。
- 開発のしやすさ
- ライセンスとリスク
- 技術的な要件

組込みOSの選択において、単純な答えは存在しない
Linuxでもサポートは無料ではない
まずは、1番目の要素から比較してみましょう。ひとくちに「開発のしやすさ」といっても、さまざまな側面がありますが、なかでも重要なのが「調達のしやすさやサポートの充実度」です。たとえばLinuxの場合、標準ソースコードである「メインライン」により、カーネルの標準機能や主要なCPUへの対応が提供されていますが、数多くの派生版があり、どれを選択すべきかという問題があります。また、Linuxディストリビューションそのものが無料でも、サポートは有料というのが一般的です。
一方で、Windows Embedded CE はマイクロソフト社から国内4社のValue Added Partner と呼ばれる代理店を経由して販売されています。OSの更新モジュールについては、マイクロソフト社が提供するQuick Fix Engineering、Service Pack、Feature Pack といったモジュールを利用できるほか、各代理店の固有サポートを受けられるなど、サポート面が充実しているといえるでしょう。

Linuxは調達の選択肢が広い分、多種多様なディストリビューションが存在しており、どれを採用するかの見極めが難しい
Windows Embedded CE でもソースのカスタマイズができる?
では、ミドルウェアやドライバの充実度に関してはどうでしょうか。Linux では多数のミドルウェアがオープンソースで公開されているだけでなく、Webブラウザやコーデック、Webサーバなどの豊富なサーバソフトを利用できます。メインラインのソースには膨大なドライバが含まれており、各種ベンダーが積極的にドライバを開発しているのも特徴でしょう。対するWindows Embedded CE にも、標準で多数のコンポーネントが用意されています。Internet Explorer や Windows Media などのマルチメディア系のコンポーネントをはじめとしてHTTPなどのサーバコンポーネントを利用できるほか、ARMやSH、XScale、x86など、主要なCPUに対応したソフトウェアライブラリも公開されています。
ただし、ターゲットデバイスによってはそのまま動作せず、カスタマイズや移植が必要な点に関しては両者に違いはありません。
では、カスタマイズ性に関してはどうでしょうか。ご存じのようにLinux はオープンソースであり、誰でも自由に入手して改変することが可能です。またWindows のカーネルは非公開だからカスタマイズ性に劣る、と誤解されている方が多いかもしれませんが、Windows Embedded CE は、シェアードソースライセンスのもとに、ソースの参照や改変が認められており、殆どのソースが公開されています。

ミドルウェアやドライバでは、開発コミュニティによる改良が頻繁に行なわれているLinux にやや分があるが、コンポーネントの充実度ではWindows Embedded CE も負けていない

Windows Embedded CE でもカーネル部分に手を入れられるため、カスタマイズ性に大きな違いはない
運用時のリスク対策を念頭においた選択を
次に、ライセンスと導入にあたってのリスクについて考えてみましょう。LinuxにはOSライセンスが不要ですが、利用者自身でリスクを見極める(もしくは、リスク判断を手助けするコンサルティング企業を利用する)必要があります。Windows Embedded CEの場合、標準で提供される機能やコンポーネントに関してマイクロソフト社の保証を受けられますが、OSライセンスが必要となります。
OSの見極めには高度な技術ノウハウが必要
では最後に、技術的な要件について見てみましょう。Linuxでは図に挙げたように、起動時間短縮のための様々な手法が検討されており、製品にも導入されています。また、Windows Embedded CE でも同様にOSイメージのロードに時間がかかるため、分割ロードなど起動時間を短縮する仕組みの採用が必須です。
リアルタイム性に関しては、当初からリアルタイムOSとして設計されたWindows Embedded CE と比較して、もともとタイムシェアリングシステムとして設計されたLinux に厳密なリアルタイム性はありません。
フットプリント(注)に関しては、カーネルコンフィグレーションやドライバ構成によってメモリ使用量が変化するLinux と同様に、Windows Embedded CE でも環境変数によってメモリ使用量が定義されます。とはいえ、どちらのOSも非常に多くのコンポーネントが存在するため、個々のコンポーネントの役割を把握することが難しく、必要な機能を取捨選択するためには、技術的に高度なノウハウが求められる点は同じでしょう。
ここまで見てきたように、組込みOSとしてのLinuxとWindows Embedded CE は、いずれも一長一短で選択には豊富な知識が要求されます。また導入にあたってのカスタマイズやチューニングなど、技術的なサポートも不可欠といえるでしょう。

いずれのOSでも、起動時間短縮にノウハウが必要な点では同じ

リアルタイム性ではWindows Embedded CE が上だが、Linux もパッチによる対応が可能だ
【注釈】
| 注 | フットプリント: | システム稼働時のメモリ使用量 |
「組込み開発トータルサービス」のご紹介
富士通ソフトウェアテクノロジーズでは、Windows Embedded CEをはじめとした、Windows Embedded ファミリーとLinux の両組込みOSに、高度な技術と豊富な実績を保有。OS選択からデバイス向けカスタマイズまで、お客様に幅広いサポートを提供させていただきます。組込みOSに関してお困りの方は、ぜひ当社にご相談ください。
【特長】
- 組込み開発のすべてをバックアップ
OSポーティング、ドライバ開発、ミドルウェア開発、アプリ開発、性能チューニング、トレーニングのすべてに対応いたします。 - Windows Embeddedへの取り組み

- Windows Embedded Gold Partnerの認定を取得
- マイクロソフト社認定トレーナー資格を保有
- Windows Embedded MVPに表彰された技術者が3名在籍
- Windows Embedded Excellence Award 2007を受賞
- Linuxへの取り組み

- エンタープライズ向けLimuxの開発経験が豊富で、カーネルレベルの内容にも詳しい技術者が対応
- 組込み機器メーカへのサポート実績が多数
- CE Linux Forumなど、Linuxコミュニティにも積極的に参加
関連リンク
- 先進の組込み技術を紹介「FST Embedded Flash」ページへもどる
お客様のデバイス企画・開発に役立つ先進の組込み技術についてご紹介します。
- 組込み開発トータルサービス
お客様の要望にお応えする最高の技術により、品質・コスト・納期を追求した組込みシステム開発をお約束します。 - 組込み関連のケーススタディ
お客様ごとの課題に合わせ、最適な解決策をご提供します。 - 当社が提供する組込みソリューション
組込みソフト開発のベストバートナーとして、新製品の研究/試作機開発から製品開発、サポートまで、お客様のPoC(Proof of Concept)に先進技術と高品質でお応えします。
