T-Kernel

T-Kernel (ティー・カーネル) は、オープンソースのリアルタイムオペレーティングシステム(RTOS)である。

概要 

T-KernelはT-Engine(ティー・エンジン)用の組み込みオペレーティングシステムとして公開されたが、その後のバージョンアップに伴い、T-Engine以外のターゲットハードウェアもサポートするようになった。

T-Kernel 2.0からはQEMUというプロセッサエミュレータにも対応している。
トロンフォーラムが配布するT-Kernel 2.0 Software Packageには、T-Engineリファレンスボードをエミュレーションするように設定されたQEMU(emulator for tef_em1d)が含まれており、PCだけでT-Kernel 2.0用アプリケーションの開発を開始することが可能である。

T-Kernelは、従来からのITRONと同様、スタティックメモリアロケーションによるカーネルベースでのプログラミングが可能。しかし、T-Engine本来の目的である「ミドルウェアの流通」を実現するためには、ダイナミックメモリアロケーションが可能でプロセスベースでのプログラミングも可能なT-Kernel/Standard Extensionを使いこなすことが望まれる。

2013年9月に打ち上げられた国産ロケットイプシロンと、それに搭載された観測衛星ひさきに、μITRONとT-Kernelがそれぞれ使われた。2014年12月3日にH-IIAロケットで打ち上げられたはやぶさ2の制御システムにT-Kernel 2.0が用いられた。

2017年12月11日、μT-Kernel 2.0をIEEEに著作権譲渡契約を結んだと発表された。

2018年9月11日、「μT-Kernel 2.0」ベースの「IEEE 2050-2018」が、IEEE標準として正式に成立した。

T-Kernelの構造 
T-Kernelは機能的に以下の３つの部分に分かれている。
 T-Kernel/OS (Operating System)  リアルタイムOSとしての基本機能を提供する。(μITRONに相当する機能は主にこの部分が受け持っている。)
 T-Kernel/SM (System Manager)  デバイスドライバやシステムメモリの管理など、システム全体の管理機能を提供する。T-KernelにおいてμITRONから拡張された機能となる。
 T-Kernel/DS (Debugger Support)  デバッガなどの開発ツールが使用するための機能を提供する。

T-Kernelのライセンス 
T-Kernelのソースコードは、トロンフォーラムがT-License(ティー・ライセンス)という独自のライセンスに従って無償で配布している。
2022年8月23日現在、T-KernelやμT-KernelなどのソフトウェアはT-License2.2に基づいてオープンソースとして公開されており、商利用を含めて無償で使用することができる。

T-Licenseでもソースコードは自由に改変することが可能であり、個人での利用はもちろん、製品に組み込んでの商利用も無償となっていたが、T-Kernelの"Single One Source"という方針の下、ソースコードの自由な再配布ができない条件になっていた。
一方、T-License 2.0からはオリジナルソースコードの再配布や改変版ソースコードの配布が可能となり、ソースコードの配布に関する自由度が高くなるように改良されている。

T-Kernelのシリーズ展開 
ターゲットハードウェアの多様化に合わせて、マルチプロセッサ／マルチコアに対応したMP T-Kernel(エムピー・ティー・カーネル)、小規模組込みシステムをターゲットとしたμT-Kernel(マイクロ・ティー・カーネル)などのシリーズ展開があり、それぞれの仕様書とソースコードも一般公開されている。
 MP T-Kernel  マルチプロセッサには、非対称型マルチプロセッサ(AMP: Asymmetric Multiple Processor)と対称型マルチプロセッサ(SMP: Symmetric Multiple Processor)がある。AMPを対象としたT-KernelをAMP T-Kernel、SMPを対象としたT-KernelをSMP T-Kernelと称する。両者を合わせてMP T-Kernelと総称する。
 AMP T-Kernel  非対称型マルチプロセッサ(AMP:Asymmetric Multiple Processor)に対応したMP T-Kernelである。AMPのシステムは複数のプロセッサから構成される(各プロセッサが同じ種類である必要は無い)。AMP T-Kernelは各プロセッサに一つずつ割り当てられるので、システム全体としてプロセッサと同数のAMP T-Kernelが存在することになる。個々のAMP T-Kernelは、システム中の他のAMP T-Kernelと同期や通信を行う機能を有する。AMP T-Kernelのプロセッサ間の同期・通信の機能は、T-Kernel 1.00仕様の同期・通信機能をプロセッサ間で使用可能に拡張した仕様となっている。ユーザ・プログラムはいずれかのAMP T-Kernelにおいて実行され、AMP T-Kernelの同期・通信機能を利用することで、他のAMP T-Kernel上のユーザ・プログラムとの同期や通信を行うことができる。
 SMP T-Kernel  対称型マルチプロセッサ(SMP:Symmetric Multiple Processor)に対応したMP T-Kernelである。SMPのシステムは複数のプロセッサから構成される。各プロセッサは基本的な機能に相違がなく、同一のプログラム・コードの実行が可能であり、メイン・メモリはすべてのプロセッサから共有可能である。全てのプロセッサは一つのSMP T-Kernelにより管理され、実行するプログラムは各プロセッサに動的に割り当てられる。タスクのスケジューリングやオブジェクトの管理は、SMP T-Kernelによりシステム全体で一元管理される。ユーザ・プログラムは、個々のプロセッサを意識する必要はない。シングルプロセッサにおけるT-Kernelのユーザ・プログラムと同様に、一つのSMP T-Kernel上で動作するプログラムとなる。
 μT-Kernel  小規模な組込みシステム向けのリアルタイムOSである。μT-Kernel仕様は、小規模な組込みシステム向けに最適化・適応化を行ないやすい仕様となっている一方で、T-Kernelとの互換性を考慮してT-Kernelと共通の機能は同一のインタフェースで定義されており、型の定義もT-Kernelと共通になっている。μT-Kernelのソースコードは、トロンフォーラムのwebサイトにおいてリファレンスコードとして公開されている。μT-Kernel 3.0からはGitHubでもソースコードと仕様書が公開されるようになった。

脚注

参考文献

外部リンク 
 , TRON Forum
 トロンフォーラム日本語サイト
 パーソナルメディアT-Engineソリューション
 
 Sakamura home page
 ITRON Project Archive
 Introducing the μT-Kernel
 Information about T-Engine, T-Kernel, and μT-Kernel Programming

TRONプロジェクト
組み込みオペレーティングシステム
リアルタイムオペレーティングシステム
2004年の作品