2006年、T-Kernelはこうなる!T-Kernelロードマップで見る最新事情(1/3 ページ)

もうすぐ正式リリースされるT-Kernel/SEからμT-Kernel、マルチプロセッサ対応T-Kernelまで。最新事情から今後の展開までを解説

» 2006年03月10日 00時00分 公開
[豊山 祐一 YRPユビキタス・ネットワーキング研究所 基盤システム研究室 室長,@IT MONOist]

T-Kernelとは

 「T-Kernel」とは、組み込みシステム向けの新しいリアルタイムOSである。新しいといっても、組み込みシステムにおいて多くの実績を持つTRONの技術が基になっている。

 T-Kernelは、2004年2月よりそのソースコードが一般公開されている。「T-License」というライセンス契約(後述)に同意すれば、誰もが無償で自由に使用できる。現在公開されているソースコードは表1に示すCPUに対応している。組み込みシステムで一般的なCPUの多くに対応可能であることが分かる。


CPUコア CPU型番
SH3-DSP SH7727
SH4 SH7751R
SH4 SH7760
ARM926EJ-S MB87Q1100
ARM920T MC9328MX1
ARM7TDMI S1C38000
MIPS IV VR5500
MIPS II VR4131
M32104 M32104
表1 T-Kernelの対応CPU

 T-KernelとはどのようなOSなのか。要点をまとめると以下のようになる。

・組み込みシステムで普及し実績のあるITRONの機能、性能を継承したリアルタイムOSである
・大規模化、高機能化が進む組み込みシステムの要求に対応した各種機能を提供している
・組み込みシステムに適したライセンスにより無償でソースコードが公開され、自由に製品に使用できる

 それぞれについて説明していこう。

ITRONの機能・性能を継承したリアルタイムOS

 リアルタイムOSであることが、組み込みシステム向けのOSであるT-Kernelの第一の特徴である。

 リアルタイムOSとは、機器制御などマイクロ(μ)秒の単位で発生するイベントに対して高い応答性を実現したOSである。また、単に処理速度が速いだけでなく、処理時間が予測可能であり、時間制約を守る必要がある。リアルタイムOSとして、現在広く使われているのはITRONであり、組み込みシステムで使用されているOSの過半数がITRONである、というデータもある(注)。

※注:
トロン協会「2005年度リアルタイムOS利用動向アンケート調査結果について」。


 T-Kernelは、ITRONの機能と性能を継承している。表2にT-KernelとITRONの機能比較を示す。見てのとおり、ITRONの機能のほとんどがT-Kernelにも実装されている。

T-KernelとITRONの機能比較 表2 T-KernelとITRONの機能比較/○:同等の機能あり ×:同等の機能なし △:代替えの機能あり

 また、表3にT-Kernelの処理時間実測値の例を示す。特に最適化しなくとも、T-KernelがITRONと同様のマイクロ秒の処理を実現しているのが分かる。

サービスコール 機能 実測値(μ秒)
tk_sta_tsk タスクの起動 6.07
tk_wup_tsk タスクの起床 7.36
tk_sig_sem セマフォ資源解放 7.58
tk_wai_sem セマフォ資源獲得 9.21
表3 T-Kernelの処理時間(実測例)
測定条件
・T-Engine/SH7727 (144MHz)を使用
・T-Kernelは一般公開されているものをそのまま使用
・各コールによりディスパッチが発生する場合の時間を測定

大規模化、高機能化への対応

 組み込みシステムのソフトウェアは、年々大規模/高機能化を続けている。例えば、ITRONが誕生した20年ほど前の家庭用ビデオといえばビデオテープであった。ソフトウェアといっても、ビデオに組み込まれた8bitや4bitのマイコンでモーターの制御やタイマー録画を行う程度であった。しかし、近年のハードディスクやDVDを使ったビデオレコーダは、動画自体をデジタルデータとして扱い、ディスク上のファイルシステムに記録する。これは機能的には従来の組み込みシステムよりもPCに近いものであり、当然OSに対する要求も変わってくる。

 また、ソフトウェアの大規模化は開発工数の増大を招き、かつてはハードウェアごとに使い捨てに近かった組み込みソフトウェアも、再利用性や移植性が重視されるようになった。開発期間を短縮するためにソフトウェア部品、ミドルウェアの要求も高まっている。

  これらの要求はITRONが生まれた当時には考えられなかったことであり、それが現在におけるITRONの欠点ともなっている。もちろんITRONの仕様も拡張され続けているが、限界がある。そこで、ITRONの長所を残し新たに設計されたリアルタイムOSがT-Kernelである。

 具体的には、T-Kernelでは実装依存性を極力排除し、プロセッサが異なるハードウェアに対しても、再コンパイルするだけでソフトウェアの移植を可能にしている。最近のCPUが持つMMUにも対応している。さらに、後述のT-Kernel/Standard Extensionにより、ファイルシステムやネットワークに対応したシステムの構築も可能となっている。

※コラム:リアルタイムOSと情報系OS
リアルタイムOSに対して、PCやサーバなどで使用されるLinuxやWindowsなどのOSがある。適当な総称がないので、ここでは「情報系OS」と呼ぶことにする。情報系OSは、そもそも人間を相手にサービスを提供することを目的として設計されてきた。リアルタイムOSが機器制御を目的としていたのと対照的である。この目的の相違は、マルチタスク・プログラムのスケジューリングといったOSの基本的な設計にまで違いとなって表れている。

情報系OSは、時分割によるラウンドロビン・スケジューリングを基本とする。この方式では、マルチタスクで動作する個々のタスクは平等に扱われる。これに対して、リアルタイムOSでは、絶対優先度によるイベント駆動型のスケジューリングを行う。個々のタスクには個別に優先度が付けられ、常に優先度の高いタスクが動作する。これによって処理時間の制約を守るわけである(図1)。

リアルタイムOSと情報系OSのスケジューリング 図1 リアルタイムOSと情報系OSのスケジューリング

リアルタイムOSと情報系OSの違いは、どちらが優れているというより、そもそも開発された目的が違っていると考えるべきである。近年、Linuxなどの情報系OSのリアルタイム性を向上させ、組み込みシステムへの適応が試みられているが、実際には100マイクロ秒のレベルのリアルタイム性能にとどまっているのも、このようなOSの基本的な設計の問題と考えられる。もちろん時間をかけて改善・変更を続けることにより、より高いリアルタイム性能を実現することも可能ではあろう。しかし、それはOS自体を大幅に変更し、新しいOSを作るのに近い作業になるのではないだろうか。


T-Licenseとシングル・ソースコード

 T-Engineフォーラムは、T-Kernelのソースコードを一般公開している。「T-License」と呼ぶライセンスに同意すれば、誰もが無償で自由にT-Kernelを使用できる。T-Kernelを使用した製品を販売したとしても、一切費用(ロイヤリティなど)は掛からない。もちろん、その際にソースコードを改変することも自由である。

※コラム:T-Engineフォーラムとは
T-Engineフォーラムは、組み込み型リアルタイムシステムの標準プラットフォーム「T-Engine」の開発・普及そしてT-Engineを応用した活動を目的として、2002年に発足した。会員には、半導体メーカーから組み込みシステムのソフトウェアベンダ、ユーザーである製品メーカー、そのほかさまざまな分野の企業や大学などの研究機関が参加し、会員数は2006年1月20日現在495団体に及ぶ。

T-Engineフォーラムの活動の一環として、T-Kernelの開発や配布が行われている。具体的な活動は、フォーラム内で分野ごとにワーキンググループが設けられ、その分野に興味を持つ会員が参加して運営される。T-Kernelの開発を担うのは、その中の「カーネル・開発環境ワーキンググループ」である。このワーキンググループにて、T-Kernelの仕様策定や改定が行われ、さらに試作版の評価・検証を経て、会員外への一般公開となる。

T-Engineフォーラムの詳細は、公式サイト(http://www.t-engine.org/)を参照されたい。


 T-Licenseは、組み込みシステムの製品においてT-Kernelを使用するのに最適なライセンスとして考案されている。その内容は、例えば最も有名なソフトウェア・ライセンスの1つであるGPLと比べると大きく異なる。

 GPLとの最大の違いは、T-Kernelを使用してもソースコードの公開義務が一切ない点であろう。T-Kernelを改変しても、そのフィードバックすら求められない。これは、組み込みシステムのソフトウェアがその製品のノウハウと直結しており、ソフトウェアの公開を避けたいという利用者の要望に応えたものである。事実、組み込み製品では、GPLのソフトウェアを製品に利用する際、いかにソフトウェア全体を公開せずに済ませるかが1つのテクニックとなっている。このような余計な努力は、T-Kernelでは必要ない。

 逆に、T-Licenseではソースコードの配布は厳しく制約される。ソースコードを配布できるのは原則としてT-Engineフォーラムのみであり、改変したT-Kernelのソースコードを配布するには別途契約が必要となる。これは、T-Kernelのソフトウェアの再利用性と移植性を維持するためである。改変したソースコードの流通を自由にすると、T-Kernelの派生バージョンが生まれて再利用性や移植性が低下してしまうからだ。組み込みシステムの世界では、1つのOSにさまざまなバリエーション/ディストリビューションが存在するよりも、機能や品質が保証された1つのソースコードが公開されている方が望ましい、という考えである。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.