特集
» 2009年01月01日 00時00分 UPDATE

組み込み分野に浸透進むオープンソースソフトウエア (1/2)

複雑化/大規模化が進む組み込みシステム向けのソフトウエア。これを限られた予算や期間で開発するために、オープンソースのソフトウエアの存在が大きくクローズアップされている。しかしながら、これを有効に活用するためには、注意すべき事柄が数多く存在する。本稿では、組み込み機器分野でオープンソースのソフトウエアの利用を考えるに当たって知っておくべきことをまとめる。

[Warren Webb,EDN]

「正しい理解」が肝要

 旧来の組み込み機器は、設計リソースが限られる状況にあっても何とか対処可能なレベルのものだった。しかし現在の組み込み機器は、高速ネットワークやワイヤレス通信、あるいは対話型のグラフィカルユーザーインターフェース(GUI)、データの暗号化機能など、以前は適用されることのなかったソフトウエア機能を備える高機能/高性能のシステムへと変貌しつつある。このような背景から、組み込みシステムの開発に携わる者にとって、オープンソースのソフトウエア(以下、オープンソースソフト)は無視できない存在となってきている。ロイヤルティが不要である、開発スケジュールの短縮が図れるといった面で、オープンソースソフトのメリットが非常に魅力的なものに映るからだ。実際、オープンソースソフトは組み込みの分野でも広く利用されつつある。現在では、無償ダウンロードによって入手したOSや各種ライブラリ、コンポーネントなどと、自社で開発した専用ソフトウエアを統合することによって、数1000人・時間にも達する大幅な開発工数の削減が可能となっているのである。

 利用可能なオープンソースソフトとしては、種々のバリエーションを持つLinux OSから、高度なデバッギングツールに至るまで広範囲にわたる。例えば、オープンソースソフトの開発を支援する最大のサイトSourceForge.netには、18万件に達するプロジェクトが登録されている。それらのプロジェクトは、データベース、セキュリティ、ゲーム、クラスタリング、マルチメディア、VoIP(Voice over Internet Protocol)など、多様なシステムに関するものである。

 しかし、こうした時流にのってコードをダウンロードして使用する前に、まずはオープンソースソフトの特質をよく見極めておかなければならない。オープンソースソフトがこれほど注目される存在になったのはなぜなのか、その利用を避けている設計者たちはどのようなことを問題点としてとらえているのか。こうしたことを検討/確認しておくことが重要である。カスタマイズ、サポート、ライセンス、ハードウエアのコスト、開発ツール、さらにはリアルタイム性能など、さまざまな事柄について判断しなければならないのだ。

改変は、ほぼ必須

写真1 組み込みボード製品に添付される開発キット 写真1 組み込みボード製品に添付される開発キット WinSystems社の組み込みボード製品には、オープンソースの開発キットが添付されている。同キットにはドライバ、各種ドキュメント、組み込み向けのLinux実装が含まれる。

 組み込みシステムでオープンソースソフトを使用する場合、対象となるハードウエアの構成に適合するよう、コードを編集しなければならないことが多い。もともと、多くのオープンソースソフトは広範な分野を対象とすべく汎用性を高めたものとなっている。すなわち、特定の用途に向けたものではないことがほとんどだ。汎用性の高いソフトウエアをそのまま使用すると、必要なメモリー容量が増大する。ロイヤルティが不要であることはコスト面でメリットとなるが、そのまま用いると、結果的にコストが増大してしまうことにもなりかねないのである。

 標準仕様にのっとった既製のボードに、オープンソースのサポートソフトウエアが添付されているケースがある。その種のソフトウエアは、ボードのメーカーが汎用性の高いオープンソースソフトを自社のボードに適合するよう構成し直したものだ。例えば、米WinSystems社は標準仕様にのっとったボード製品群に、オープンソースソフトをカスタマイズしたものを含めた開発キットを添付している(写真1)。その開発キットには、デバイスドライバ、各種ドキュメント、ケーブル、スタートガイドなどが含まれている。さらに、この開発キットにはBlue Collar Linuxがバンドルされている。このBlue Collar Linuxは、組み込み用に実装されたLinux OSであり、公開されているソースファイルから、特別なツールを使うことなくバイナリコードを生成することができる。

オープンソースソフトの問題点

 商用ソフトウエアのベンダーであれば、コンフィギュレーションのカスタム対応、サポートパッケージの定期的な更新、開発ツールキット/サンプルプログラムなどの提供といった要求に応えられる。例えば、米MontaVista Software社は、サブスクリプション(一定期間の使用権/サポート権)を購入したユーザーに対しては、組み込み用Linuxに対する技術サポートを提供している。

 オープンソースソフトの利用を考えるユーザーが感じる最大の不安は、こうしたサポート体制が不十分なことである。すなわち、商用ソフトウエアのベンダーから受けられるのと同様のサポートは得られない。何らかの問題が発生した際、インターネット上で必要な解決策を見つけることも不可能ではないが、質問に対して調査/回答してくれるような専門部隊は用意されていない。

 この問題に対しては、専門的なサポートチームを自社内に設けることや、サポート業務を担うサードパーティ企業と契約するといったことが方策として考えられる。多くの人がオープンソースソフトの大きなメリットは無償で利用できることだと認識しているが、設計者は、設計の容易化を実現するためであれば、専門的なサポート/専用ツール、カスタマイズサービス、プレコンフィギュレーションパッケージなどを得るために費用が発生するのはやむを得ないことだと考えるだろう。

 また、オープンソースソフトに関して、設計者は似たような内容の多数のバージョンが存在してしまうことに危険性を感じる。あるユーザーが組み込み機器への適用時に発生した問題を解決しようとオープンソースソフトのコードにパッチを当てたとする。また別のユーザーが、同様の内容だが互換性のない改変を行うと、そのコードには3種類のバージョンができてしまうことになる。ある開発者が自分の用途に合わせて行った改変は、ほかの用途においては互換性のないものになるだろう。製品化済みの組み込みシステムではアプリケーションソフトとOSが一体化されているため、こうした複数のバージョンの存在は、開発者ではなくエンドユーザーにとっての大きな問題になる。

 こうした観点から、Linuxのオープンソースコミュニティでは、リアルタイムLinuxなどの特定バージョンを有するものを除いては、更新の提案/配布を入念に管理している。それにより、多数のバージョンが存在してしまうことを避けている。

さまざまなライセンス

 一般に、オープンソースソフトは著作権が放棄された状態で提供されるわけではない。各種のオープンソースライセンスが適用されているので、利用に当たってはそれぞれのライセンスに規定されたルールに従わなければならない。

 例えば、Linuxには有名なGNU GPL(General Public License)が適用される。GNU GPLを適用したソフトウエアでは、それを改変して配布する場合に、改変後のソフトウエア(派生ソフトウエア)にも自動的に同じライセンスが適用される。その結果、求めがあれば、改変後のソフトウエアのソースコードも提供しなければならなくなる。こうした事情から、組み込みシステム開発者の多くは、自社で開発したソフトウエアのソースコードを公開しなければならないことを恐れてLinuxを敬遠している。ただし、アプリケーションプログラムやデバイスドライバがLinuxカーネルから明確に分離でき、GNU GPLが適用されるコードを含んでいない場合には、それらを公開しなくて済むこともある。それでも、こうしたコードの分離の必要性が開発者の間では心配の種になっている。特に、小規模の組み込みシステムの開発者にその傾向が強い。

 このような制限事項があるものの、Linuxを無料でコピーして製品に組み込み、その製品をロイヤルティを払うことなく自由に販売できることのメリットは大きい。OSI(Open Source Initiative)は、GNU GPLを含めて20件以上のオープンソースソフトライセンスに対して承認を与えている。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

RSSフィード

EDN 海外ネットワーク

All material on this site Copyright © 2005 - 2017 ITmedia Inc. All rights reserved.
This site contains articles under license from UBM Electronics, a division of United Business Media LLC.