最新T-Kernelの活用テクニック(1) ―― 小規模システム向けμT-Kernelとは何か
●○● Column1 ●○●
「弱い標準化」から「強い標準化」へ
ITRONの仕様書は社団法人 トロン協会から公開されていますが,その実装は各社(個人の場合もある)に任されています.
このため,同じITRONと呼ばれるOSであっても,実装ごとに少しずつ挙動に違いがあります.その上,ITRON仕様では対象とするシステムに合わせてサービス・コールのサブセット化も可能です.これは「弱い標準化」という考え方に基づいた実装方法です.
ITRONの初期の仕様が決められたのが1987年,今から20年も前(パソコンでさえ16ビットCPUが出始めたころ)であり,当時の組み込み機器のCPUパワーを考えると,実用的な機器を開発するためには必要最低限の内容だけを決める弱い標準化という考え方は妥当であったといえます.
ところが,この弱い標準化には移植性を阻害するという弊害があります.ITRONが普及していろいろなソフトウェアが作られるようになりましたが,それを別のITRONに移植しようとすると余計な作業が発生するため,ソフトウェアの再利用が思うように進みませんでした.
一方,近年の組み込み機器は機能の複雑化と納期の短縮が進み,ソフトウェアの生産性の向上が至上命題となってきました.
T-Engineプロジェクトではソフトウェアの再利用性を向上させることでこの問題を解決しようと考えています.ハードウェアの仕様(T-Engine)からOS(T-Kernel)までをトータルに標準化してソフトウェアの移植の手間を最小限に抑え,再利用性を向上させることにしました.これを「強い標準化」と呼び,同プロジェクトの基本的なコンセプトになっています.
●○● Column2 ●○●
μT-KernelとμT-Engine
T-EngineとT-Kernel,μT-EngineとμT-Kernelが1対1に対応しているわけではありません.大ざっぱな説明になりますが,T-EngineとμT-Engineはハードウェアの分類,T-KernelとμT-Kernelはソフトウェア(リアルタイムOS)の分類で,この二つの分類は直交しています."μ"を付けることで「小型版」という意味を持たせています.T-Engineで動作してもμT-Engineで動作してもT-KernelはT-Kernel,μT-KernelはμT-Kernelです.
図A T-KernelとT-Engine
●○● Column3 ●○●
デバッガ・サポート機能
デバッガ・サポート機能はデバッガ専用の機能であり,原則としてアプリケーションから利用されることがないため,μT-Kernelとしてサポートする必要はないことになっています.実行プラットホームとしても必須ではなく,省略されても移植性に問題が発生することはない,という判断に基づいています.
ただし,以下の点を明記することで,中途半端なサブセットが実装されないようにしています.
- 同じような機能を実装する場合は,仕様書にある対応するSVCを用いること
- 別の機能を実装する場合は,仕様書にあるSVCを用いないこと
なお,リファレンス・コードにはデバッガ・サポート機能も含まれています.