組み込み開発
出典: Wiki@browncat.org
組み込み開発に対する目標というか雑感というか、愚考してみる。2006/7/10
[編集] Linuxを組込みの開発ホストにしたい。現在はわかっている人にしか使えない。 さらに考える。 [編集] 組み込み開発のOpen化をもっと進めたい。もともと組み込み開発はそのターゲットの多様性から ソースコードの必要性はPC上のソフトなどと比べて大きい。 実際、組み込み向けのソフトはソースコード提供が含まれるものは珍しくない。 しかし様々な理由からオープン化はなかなか行われていない。 組み込み開発のOpen化はGNUツールチェインが基礎となり、 今EclipseがIDEの主流となって発展しつつある。 やっと業界が統一的な方向性へと移りつつある雰囲気である。 PC上のソフトは単体アプリケーションからサービスへの移行が叫ばれて久しい。 すなわちWindowsやLinuxなどと比べると数年の隔たりの感がある。 これは多様な開発ターゲット、メーカ主導のツール、デバッガ、 企業秘密からOpen Source採用の困難性などの要因があり、 製品は長期の安定した動作が必要とされ、業界全体がコンサバティブである。 またデバイス向けプログラマは数が少なく、 一般OSやWEB開発にさほど長けていないという隔たりもある。 能力的には可能であっても、そんな時間はない、というのが一般的であろう。 しかし、インフラにOpenなシステムが有効なことはGCCの方向性からも明白であった。
プログラマや設計者は目的物の開発により時間を割き、 企業もまた製品自体に力を注ぐべきである。 [編集] サービスへ企業秘密などのベールは、しかしそう厚いものではない。と考える。 もちろん製品に採用されるほとんどのアルゴリズムやコードは公開されない。 単に自社技術の保護だけではなく、 特許などの関連、また採用技術に対する契約の問題もあり、 そう公開できるものではない。 また公開すべきものでもない。 共通のベースとなる部分は主にデバイスメーカやOSメーカが提供し、 先も書いたように多くの場合ソースコード提供である。 特にデバイスメーカはライブラリを含む開発ツールを無償提供する場合も少なくはない。 当然デバイスメーカにとって自社製品のノウハウなどは 広まってくれた方が、採用実績が増えるものである。 では採用する側はどうか? 自社製品や過去の遺産など種々の制約はあるであろうが、 ベストなコストパフォーマンスの製品や構成を採用するのが最善である。 そしてそのデバイスなどを使うためのコードは一部メーカが提供している。 しかし、現在も車輪の再生産は行われているのである。 メーカ提供のソフトウェアは互いに互換性がなく、多くの場合移植は困難である。 ハードウェアもソフトウェアも一つのメーカを採用すれば、 続いて同じメーカの製品を採用することが多い。囲い込みである。 また、同じ目的のコードは一企業内では再利用されるかもしれないが、 Openに企業を超えた利用はされないのである。 これを打開する一つの方法がLinuxの採用である。 組込みLinuxは従来の組み込みOSと比べ、多くの機能を持つ。 POSIX準拠のライブラリ、ファイルシステム、ネットワークスタックを備え、数種のGUIもある。 またUSBやBluetoothなどのモダンなインターフェースに対するスタックも組み込むことが可能である。 アプリケーションは基本的にPC上で動作するものと同じものが動作する可能性が高く、 リッチなターゲットが作成可能である。 しかし問題もある。組み込みに使用するにはリソースを多く必要とし、 リアルタイム性も低い。また高度な機能を必要としない製品も多い。 これらを改善するuCLinuxやRTLinuxなどが存在するが、やはりiTronやvxWorks、デバイスメーカ提供OSなどに及ぶものではない。 逆にミドルウェアが貧弱なiTronなどではLinuxと同じような高機能なターゲットを作成するのは困難であり また費用もかかる。vxWorksなどは機能的に中間であるがもともと高価である。 また、制約によりOSは無しというケースも少なくはない。 こういった多様性を前提とした新しいインフラが必要なのではないか? まあ、大風呂敷を広げてしまったが、
実際出来うることは限られている。
共有できるミドルウェアやベースとなるライブラリ、
GNUなどでは提供されないツール。
アプリケーション以前の部分を包括したコンフィグレータ。
ノウハウや基礎を解説したドキュメント。 |
[編集] 次は?また今必要なものは?書いてしまうと陳腐ではある...
|
