ITRON(API)からT-Engine(インフラ)へ組み込み向けリアルタイムOS最新動向(3/4 ページ)

» 2005年11月10日 00時00分 公開
[松為彰(パーソナルメディア 開発本部),@IT MONOist]

T-EngineとT-Kernelへの発展

T-EngineとT-Kernel

 「T-Engine」とは、組み込み機器のソフトウェアやハードウェアを開発するための標準開発プラットフォームである。T-Engineプロジェクトが始まったのは、ITRONプロジェクトの開始から18年後の2002年である。今年(2005年)で4年目になるが、ITRONから移行したユーザーも含めて、すでに多くの成果を出している。

 T-Engine用の標準リアルタイムOSが「T-Kernel」である。T-Kernelは、組み込み機器の分野において多くの実績があるITRONの成果を生かしつつ、デバイスドライバとのAPIの標準化、OS自身の機能拡張やプログラムのモジュール化に役立つ機能の追加などを行ったリアルタイムOSである。タスク管理や同期通信など、リアルタイムOSの基本機能についてはITRONとほぼ同じである。これによりITRONからの移行が容易な一方で、新機能の活用により、小規模な制御系のシステムから高度で大規模な情報端末系のシステムまで対応可能なスケーラビリティを備えているのがT-Kernelの特徴である。

 T-Kernelには、ITRONと同様にリアルタイムカーネルとしての基本機能のみが含まれており、ファイル管理やプロセス管理、仮想記憶を含むMMU対応などの機能は含まれていない。これらの機能は、T-Kernel上で実行される基本的なミドルウェア「T-Kernel Extension」として提供されている。T-KernelにT-Kernel Extensionを組み合わせて利用することにより、ほぼLinuxのカーネルに相当する機能が実現される。

T-Kernelを中心としたT-Engineのソフトウェア構成 図1 T-Kernelを中心としたT-Engineのソフトウェア構成
関連リンク:
T-Engineフォーラム

開発用プラットフォームとしての強い標準化

 T-Engineの基本方針は「強い標準化」であり、これは前述したITRONの「弱い標準化」の裏返しである。具体的には、リアルタイムOSである「T-Kernel」のみならず、デバイスドライバ、ミドルウェア、開発環境、ライブラリなどの周辺環境や開発評価用ボードの仕様まで含めた広範囲の標準化を行っている。中核となる「T-Kernel」については、APIなどの仕様だけではなく、その実装方法(ソースプログラム)も一本化していることなどがITRONとは異なっている。

ITRONプロジェクト T-Engineプロジェクト
CPU 規定なし 規定なし(32bit)
開発評価用ボードの物理形状 規定なし 標準化(*)
開発評価用ボードのハードウェア(シリアル、USBなど) 仕様(機能) 規定なし 標準化(*)
実装 規定なし 自由
BIOS相当機能(非OS動作環境下でのハード操作用デバッガ) 仕様 規定なし 標準化(T-Monitor)
実装 規定なし 自由
リアルタイムOS基本機能(タスク管理、同期通信など) 仕様(API) 標準化 標準化(T-Kernel/OS)
実装 規定なし 一本化(シングルソース)
システム管理機能(デバイスドライバとのI/Fなど) 仕様(API) 規定なし 標準化(T-Kernel/SM)
実装 規定なし 一本化(シングルソース)
開発環境(コンパイラ、ライブラリなど) 仕様(I/F) 規定なし 標準化
実装 規定なし 自由
基本ミドルウェア(ファイルシステムなど) 規定なし 標準化(T-Kernel Extensionなど)
表3 ITRONとT-Engineにおける標準化の範囲の違い
(*)開発評価用ボードについては後述

 T-Kernelの機能はITRONと似た部分が多く、ITRONのバージョンアップ版と考えていただいても差し支えない。ただしT-Engineプロジェクト全体から見ると、T-Kernelはごく一部の構成要素にすぎない。T-Engineを説明しようという場合、T-Kernelの説明だけでは不十分なのである。

 T-Engineが生まれた21世紀になると、組み込みシステムといえどもソフトウェアの高機能化や大規模化、複雑化が進み、ソフトウェアの開発効率向上が大きな課題となった。例えば、ファイルシステムを扱う組み込みシステム(例:デジタルカメラ)やLANに接続可能な組み込みシステムは、最近では珍しくないが、ファイルシステムにしてもLANとの接続に必要なミドルウェアであるTCP/IPにしても、もはや1人が2〜3カ月で開発できるような小規模のソフトウェアではない。短い期間でその組み込みシステムを完成させようとすれば、これらのミドルウェアを自分自身で開発する余裕はなく、既存の開発済みミドルウェアを移植し、組み込んで使うしかない。

 こういった移植や組み込みの作業をスムーズに行うには、リアルタイムOSのカーネルのAPIはもちろんのこと、SDカードやCFカードをアクセスするデバイスドライバやLANの転送をつかさどるLANドライバとのインターフェイス、開発環境、ライブラリ、オブジェクトコードの形式などについても仕様を合意しておく必要がある。そうなると、ITRON時代のような「弱い標準化」ではもはや対応できない。一方、ITRONの時代に問題となっていた標準化によるオーバーヘッドについては、ハードウェアの性能向上などにより、あまり気にならなくなってきた。ITRONからT-Engineへの移行が進んでいるのは、こういった背景による。

Copyright © ITmedia, Inc. All Rights Reserved.