変わりゆくITRON,保護機能追加のその先は...
2002年7月9日,東京都港区の機械振興会館において,社団法人トロン協会のセミナ「μITRON4.0仕様 保護機能拡張の仕様解説と実装」が開催された.従来,ITRONでは,仕様のみを公開し,その実装や利用方法についてはユーザの裁量にまかせる「弱い(ゆるやかな)標準化」策をとってきた.しかし,組み込みシステムを取り巻く環境が変化するにつれて,これまでとは異なる標準化の方法にも取り組まざるを得ない状況になっている.今回のセミナでは,こうした標準化手法に関する議論に注目が集まっていた.
セミナでは,まずμITRON4.0仕様の策定と並行して進められた実装カーネル開発プロジェクト「IIMP(An Implementation of ITRON with Memory Protection)プロジェクト」のプロジェクト・リーダである高田広章氏が,仕様の概要と今後の計画を示した.その後,リファレンス実装であるIIMPカーネルについて,開発を担当したデンソークリエイトの高木哲郎氏,エルミックシステムの金田一 勉氏,富士通デバイスの稻光一豊氏,AICエンジニアリングの原田雅章氏が実装のポイントを解説した.
●組み込みシステムの品質や信頼性が犠牲に
IIMPプロジェクトは,2001年度の情報処理振興事業協会(IPA:Information-technology Promotion Agency)の支援を受けて進められた.今回のセミナでもIPAの佐藤昭男氏が組み込みシステム開発の現状について,開発期間の短縮やコスト・ダウンに対する強い要求により「システムの品質や信頼性の確保が犠牲になっているのではないか」と訴え,保護機能の重要性を強調した.また,IIMPカーネルについて,「どんどん利用してIPAに良い報告をしてほしい」と呼びかけた.
●今回の機能は最初のステップ,1~2年内に改版を予定
メモリ保護機能が追加された今回の仕様は,μITRON4.0/PX仕様と呼ばれている.μITRON4.0仕様に保護機能(PX:Protection eXtention)を追加したものという意味で,保護機能のバージョンは1.0である.トロン協会では,今後,さらなるOSの保護機能の追加を予定している.
OSの保護機能とは,OS上で動作する一つのアプリケーション・ソフトウェアに起因する障害が,OS自身やほかのアプリケーション・ソフトウェアに影響を及ぼすのを防ぐための機能である.もっとも典型的なのがメモリ保護機能で,アプリケーション・ソフトウェアやOSが使用するメモリ領域を,ほかのアプリケーション・ソフトウェアによるアクセスから保護し,故意あるいは過失によるメモリ破壊を防ぐ.
μITRONは,1987年に最初の仕様が策定された.1999年に公開されたμITRON4.0仕様は,現在のリアルタイムOS技術の範囲では十分な完成度を持つため,8~10年間は基本仕様のバージョン・アップが不要であるとトロン協会では見ている(図1).
そのμITRON4.0に対して,今回のメモリ保護機能は拡張仕様という位置付けで追加された.今回は最初のステップということで,複雑な機能(保護ドメインの動的な生成・削除など)はあえて外した.実装の経験を積み上げて,できれば1~2年の内に最低1回はバージョン・アップしたいという.
なお,IIMPカーネルを利用する際には,これがメモリ保護機能仕様のすべてを実装したものではないことに注意する必要があるという.IIMPカーネルの基になっているカーネル「TOPPERS/JSP」がμITRON4.0のうちスタンダード・プロファイル(標準的な機能セット)規定に従って実装したものであるため,IIMPカーネルにはスタンダード・プロファイルに対応したメモリ保護機能しか実装されていない.
●岐路に立つITRON
ITRONは,これまで仕様のみを公開し,ユーザが自由にそれを利用でき,かつそれを利用していることを明記する必要がないという「弱い標準化」策をとってきた.一方,これまでITRON仕様が得意としてきたコンシューマ向けの「小さい」機器にも大規模なソフトウェアが組み込まれるようになってきている.ところが,大規模なソフトウェアに「弱い標準化」で対応しようとすると,実装に微妙な違いがあることが障害となり,なにか不ぐあいが起こった場合の原因究明に時間がかかるという問題がある.これに対して,トロン協会は以下の三つの新しい取り組みを始めているという.
一つ目は,今回のセミナで取り上げられたメモリ保護機能の追加である.保護機能を導入する目的はいくつかに分類でき,その目的によって要求する仕様の程度が変わってくる.また,仕様に多くの要求を盛り込むほどOSのオーバヘッドは大きくなる.そのトレード・オフを考慮した結果,メモリ保護機能仕様には十分な機能を盛り込み,かつオーバヘッドの大きい機能は外しやすいようにする,という方針をとることにした.
二つ目は,携帯電話や携帯型情報機器,情報家電機器などの組み込みシステムを効率良く開発するためのプラットホーム「T-Engine」を開発するプロジェクトである.T-Engineは,ソフトウェアの仕様だけでなく,ハードウェアやリアルタイムOS,オブジェクト・フォーマットまでを規定する「より強い標準化」路線をとる.
三つ目は,仕様だけでなく実装したカーネルをオープン・ソースのフリー・ソフトウェアとして公開する「TOPPERS(Toyohashi OPen Platform for Embedded Real-time Systems)プロジェクト」である.これは,前述の豊橋技術科学大学の高田広章氏が中心となって進めている.実装カーネルとして提供されたIIMPカーネルは,このプロジェクトが開発したカーネル「TOPPERS/JSP」を基に保護機能を追加して実装したものである.
今回の保護機能は仕様の策定と並行して実装が進められ,その成果の発表は仕様公開と同時に行われた.実装上の問題点などを仕様へフィードバックした結果,より実用的な仕様が完成したという.
参考URL
・トロン協会のホームページ
・IIMPプロジェクトのホームページ
・T-Engineプロジェクトのホームページ
・TOPPERSプロジェクトのホームページ