4. OSとミドルウェアの関係

 昔は男子厨房に入らずとか,台所をウロチョロするゴキブリ亭主などという言葉があった.最近では死語と化しているが,今でも自分で冷蔵庫を開けない人がいるだろうか.

 家の中心はどこだろうかとよく考えてみると,冷蔵庫に意外と動作線が集中している.冷蔵庫は,24時間電源を入れっぱなしだし,扉のところが掲示板化してメモとか伝言が貼り付けてあったりする.ここに着目して,冷蔵庫をインターネットにつなぐ実験を岡山県でやっている.

 冷蔵庫の扉のところにディスプレイをつけ,町内のお知らせやごみの収集日,防災情報などをインターネットからインタラクティブに配信するらしい.また,老人世帯で留守でもないのに冷蔵庫を開けなかったらようすを見に行くなどのシステムも検討されているらしい.

 組み込み機器が制御だけやっている時代であれば,それは閉じた世界であり,共通の通信プロトコルなど考慮する必要はなかった.しかし,ネットワーク化した新たなアプリケーションを考えると,異機種間や異業種間でも使用できる共通のプロトコルが必要になる.

 ホームネットワーク構想は,約20年前にもあった.しかし,当時は共通のプロトコルなどは存在しなかった.通産省と郵政省が別々の規格を調査研究し,家電メーカーもそれぞれ独自の規格を提唱していた.このため,ほとんど何の成果も残さず構想倒れに終わっているが,現在では外国生まれのEthernetやUSB,IrDA,IEEE1394などの共通のプロトコルが存在している.

 また,さらに上位のJiniやHAVi,LONTalkなどといった規格もあり,ホームネットワークも現実性を帯びてきた.そこで重要になってくるのが,これらをサポートするミドルウェア類である.OSを利用する理由の一つに,これらのミドルウェアの存在がある.

 ハードウェアとは独立したJiniやHAViといった上位のミドルウェアでは,ソフトウェア部品として流通させることは比較的容易と考えられるが,下位のミドルウェアでは使用するハードウェアに応じてドライバを開発しなければならない.

 ドライバの開発を容易にするためには,OSがI/Oを抽象化したモデルとして提案する必要がある.ドライバ構造をもっているOSであれば,ドライバ開発はテンプレート化されているので容易だが,たとえば現状のITRONのようにユーザーまかせになっている場合には問題がある.

 開発が大変というだけでなく,OS自身が一貫性のあるI/Oモデルをもたないと,複数のミドルウェアを組み込んだ場合に正常に動作しない場合がある.たとえば,slp_tsk/wup_tskによる同期をドライバとミドルウェアの間で使用している場合,アプリケーションタスク自身やほかのミドルウェアはslp_tsk/wup_tskによる同期が使用できない.

 ドライバをカーネルモジュールとしてOS内に組み込むようなOSでは,少なくともドライバ同士の衝突はない.ただし,一般にこのようなOSの場合,ドライバは単純な入出力関数の集まりとして作られるので,パフォーマンスが出ず,しかもDMAを使用する複合デバイスには対応できない場合がある.

 ドライバ間でなく,ミドルウェア同士の衝突はITRONに限らずすべてのOSに存在しうるので注意が必要である.しかし,バイナリで提供されるOSに,やはりバイナリで提供されるサードパーティのミドルウェアをのせた場合は注意のしようがないのが現実である.

 今後,ミドルウェア類の流通の活発化にともない,ドライバ開発からミドルウェアのインストールなどを行う組み込みSIがビジネスとして定着するというレポート5)も報告されている.

1. 産業用OSの特徴と変遷
2. OSの構成
3. リアルタイム性
4. OSとミドルウェアの関係
   参考文献

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


Copyright 2000 藤倉 俊幸