第1章 なぜ,いまBSDが注目されているのか?
組み込みに使う
BSD

はじめに

 筆者はこれまで,本誌や他誌を通じて,BSDを使った組み込み製品向けソフトウェアの開発方法などを紹介してきた.筆者をこのような活動へと向かわせた原動力としては,以下の二つの理由がある.

 一つは,UNIXというOSがソフトウェアを開発するという目的のために発展してきたという歴史をもっているため,開発に必要なさまざまなツールをそろえやすいということ,もう一つはインターネットの普及と同調して普及したPCの価格とパフォーマンスの比率が飛躍的に増大し,BSDを動作させることが手軽になったことによるものである.

 さて,一方で開発用の環境としてではなくて,BSDそのものを組み込みたいというニーズも増えてきている.もちろん,組み込み機器開発者はOSを名前まで指定して「これを使いたい」という人は少ないだろう.たいていの要求は,「ネットワークが使えてディスクが使えてJavaも欲しいかな」などといった,あいまいな形でくるものである.

 最近の傾向としては,ここで「じゃあLinuxを使おう」という話になるようなのだが,本当にLinuxを組み込み機器に使って良いのだろうか?

 本稿は,これまでとは少し切り口を変えて,組み込み装置そのものに使うOSとしてのBSDを考えてみたい.

インターネット時代の組み込みOSに対するニーズ

 さて,本稿では組み込みシステムに関して,下記のような条件を前提に物事を考えていきたい.

1)ネットワークにつながったシステムであること
2)つながるネットワークはTCP/IP v4もしくはv6のようなオープンなネットワークであること
3)フィールド・リ・コンフィギュアブルであること

 1)に関しては,これからシステムを開発するうえではもはや「当然必要」であり,あらためて説明する必要はないだろう.「インターネット」や「ブロードバンド」あるいは「常時接続」などという単語があたりまえの用語になり,実際にそのようなインフラストラクチャが急速に立ち上がっているいま,とくに必要のない限りネットワークにつながらないシステムを開発する必要はない.

 2)に関して若干の補足をすると,TCP/IPに限らず,なんらかの業界に対して標準的な意味をもつ規格として定義された接続方法により,ほかのシステムとの通信が行われることを前提としたシステムという意味である.物理媒体が光ファイバであるとかEthernetであるとか,あるいはRS-232-Cであるとかいうことは関係ない.もちろん無線も含まれる.携帯電話も広い意味ではこういったデバイスの一つである.

 3)に関しては,若干の補足説明が必要だろう.これまで,とくに一般の組み込み機器の例では,ブートコードとアプリケーションをROMに焼いて出荷し,通常はそのままで製品が廃棄されるまで動き続けるという姿が一般的だったと思う.ROMデバイスがマスクROMからフラッシュメモリに変化したが,依然としてファームウェアの変更には一部のパソコン周辺機器を除いては「修理」扱いでメーカーの人間の手によってなされることに変わりはない.

 これまで,ネットワークに直接つながらない機器を作っている間は,これでもそれほどの問題はなかったといってよい.出荷前に十分にデバッグをすませておけば,出荷先で異常動作をするということは滅多に起こらないことだったからだ.

 しかし,装置がネットワークにつながるようになると,話が変わってくる.製品の設計時には考えもしなかったようなパケットがネットワーク越しに飛んで来て,製品自体の動作を止めてしまったり,その製品が接続されているネットワークに対する危害を加えたり,あるいはウイルスのようにその製品に潜伏し,ユーザーの情報を発信し続ける,といったことは現実に起こりうるのである.

 このような現象は同時多発的に発生することが多い注1ため,これまでのようにセンドバックや現地調整によるサポートでは対応仕切れないことはちょっと計算して見れば簡単にわかる.であるならば,どうせその装置がネットワークにつながっているのなら,ネットワークを経由して保守してしまえばよい(図1).というより,それ以外に方法は考えられないのだ.

〔図1〕従来の保守とネットワークを経由した保守

Column1
フィールド・リ・コンフィギュアブル

 現在,パーソナルコンピュータの現実的な寿命はせいぜい3年でしかない.次々と登場する新しいソフトウェアを使おうとすると少なくとも3年に一度程度は新しいコンピュータを買わないと追い付かないのである.

 当然,ユーザーはそのたびに新しいソフトウェアを同時に導入することになる.一方で家電製品,業務用組み込み製品の寿命はものにもよるが5年〜15年くらいはある.半世紀は動き続けることを宿命付けられることもありえない話ではない.事実,筆者宅にはもう10年近く前に買った家電製品が数多くあり,ほとんどのものはまだ動いている.

 一方でソフトウェアのことを考えると,UNIXの開発が始まったのがいまからおよそ30数年前,TCP/IPがネットワークプロトコルスタックの標準となったのがおよそ10年前である.その間に起こったソフトウェアの進歩はべらぼうなスピードであったことがわかる.

 機器がスタンドアロンで動いている限りは,購入した製品をなんらいじることなく現在の環境とともに使うことが可能なのだが,ネットワーク装置となると話は大幅に異なってくる.新しいプロトコルは当然開発されるだろうし,その中には既存の機器のもつプロトコルスタックで問題を起こす可能性のあるプロトコルすらありうる.

 技術的にはたった数バイトのパッチを当てるだけで問題なく共存可能な場合でも,センドバック修理などという話となるととんでもなくコストがかかってしまうのである.これまでであれば,オンサイト保守や,保障の範囲内でどうのこうのという話をしていたかもしれないが,IPv6が普及し,End to Endで通信ができる状態が一般になれば,こういった機器をネットワーク経由でメンテナンスすることが可能になる.

 近い将来の利益に向けて,このような努力は当然行うべきである.

インデックス
 ◆インターネット時代の組み込みOSに対するニーズ
 ◆ネットワークOSの必要条件
 ◆組み込みに使うBSD

今月号特集トップページへ戻る


Copyright 2002 増田佳泰