もうすぐ正式リリースされるT-Kernel/SEからμT-Kernel、マルチプロセッサ対応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なのか。要点をまとめると以下のようになる。
それぞれについて説明していこう。
リアルタイムOSであることが、組み込みシステム向けのOSであるT-Kernelの第一の特徴である。
リアルタイムOSとは、機器制御などマイクロ(μ)秒の単位で発生するイベントに対して高い応答性を実現したOSである。また、単に処理速度が速いだけでなく、処理時間が予測可能であり、時間制約を守る必要がある。リアルタイムOSとして、現在広く使われているのはITRONであり、組み込みシステムで使用されているOSの過半数がITRONである、というデータもある(注)。
T-Kernelは、ITRONの機能と性能を継承している。表2にT-KernelとITRONの機能比較を示す。見てのとおり、ITRONの機能のほとんどがT-Kernelにも実装されている。
また、表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の処理時間(実測例) |
組み込みシステムのソフトウェアは、年々大規模/高機能化を続けている。例えば、ITRONが誕生した20年ほど前の家庭用ビデオといえばビデオテープであった。ソフトウェアといっても、ビデオに組み込まれた8bitや4bitのマイコンでモーターの制御やタイマー録画を行う程度であった。しかし、近年のハードディスクやDVDを使ったビデオレコーダは、動画自体をデジタルデータとして扱い、ディスク上のファイルシステムに記録する。これは機能的には従来の組み込みシステムよりもPCに近いものであり、当然OSに対する要求も変わってくる。
また、ソフトウェアの大規模化は開発工数の増大を招き、かつてはハードウェアごとに使い捨てに近かった組み込みソフトウェアも、再利用性や移植性が重視されるようになった。開発期間を短縮するためにソフトウェア部品、ミドルウェアの要求も高まっている。
これらの要求はITRONが生まれた当時には考えられなかったことであり、それが現在におけるITRONの欠点ともなっている。もちろんITRONの仕様も拡張され続けているが、限界がある。そこで、ITRONの長所を残し新たに設計されたリアルタイムOSがT-Kernelである。
具体的には、T-Kernelでは実装依存性を極力排除し、プロセッサが異なるハードウェアに対しても、再コンパイルするだけでソフトウェアの移植を可能にしている。最近のCPUが持つMMUにも対応している。さらに、後述のT-Kernel/Standard Extensionにより、ファイルシステムやネットワークに対応したシステムの構築も可能となっている。
T-Engineフォーラムは、T-Kernelのソースコードを一般公開している。「T-License」と呼ぶライセンスに同意すれば、誰もが無償で自由にT-Kernelを使用できる。T-Kernelを使用した製品を販売したとしても、一切費用(ロイヤリティなど)は掛からない。もちろん、その際にソースコードを改変することも自由である。
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つのソースコードが公開されている方が望ましい、という考えである。
Copyright © ITmedia, Inc. All Rights Reserved.