T-Kernel (ティー・カーネル) は、オープンソース のリアルタイムオペレーティングシステム (RTOS)である。
概要
T-KernelはT-Engine (ティー・エンジン)用の組み込みオペレーティングシステム として公開された[ 3] が、その後のバージョンアップに伴い、T-Engine以外のターゲットハードウェアもサポートするようになった[ 4] 。
T-Kernel 2.0からはQEMU というプロセッサ エミュレータ にも対応している。
トロンフォーラムが配布するT-Kernel 2.0 Software Package には、T-Engineリファレンスボード をエミュレーションするように設定されたQEMU(emulator for tef_em1d )が含まれており、PCだけでT-Kernel 2.0用アプリケーションの開発を開始することが可能である[ 5] 。
T-Kernelは、従来からのITRON と同様、スタティックメモリアロケーションによるカーネルベースでのプログラミング が可能。しかし、T-Engine本来の目的である「ミドルウェア の流通」を実現するためには、ダイナミックメモリアロケーションが可能でプロセス ベースでのプログラミングも可能なT-Kernel/Standard Extensionを使いこなすことが望まれる。
2013年9月に打ち上げられた国産ロケットイプシロン と、それに搭載された観測衛星ひさき に、μITRONとT-Kernelがそれぞれ使われた[ 6] 。2014年 12月3日にH-IIAロケット で打ち上げられたはやぶさ2 の制御システムにT-Kernel 2.0が用いられた[ 7] 。
2017年12月11日、μT-Kernel 2.0をIEEE に著作権 譲渡契約を結んだと発表された[ 8] 。
2018年9月11日、「μT-Kernel 2.0」ベースの「IEEE 2050-2018 」が、IEEE 標準として正式に成立した[ 9] 。
2023年5月、IEEEはTRONプロジェクトが提案、作成、公開してきたリアルタイムOSを "TRON Real-time Operating System Family, 1984" の名称でIEEE Milestoneと認定した。認定銘板はTRONプロジェクトのリーダーである坂村健が1984年当時に助手として勤務していた東京大学のキャンパスに設置されている[ 10] [ 11] 。
T-Kernelの構造
T-Kernelは機能的に以下の3つの部分に分かれている[ 12] 。
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に基づいてオープンソースとして公開されており、商利用を含めて無償で使用することができる[ 13] 。
T-Licenseでもソースコードは自由に改変することが可能であり、個人での利用はもちろん、製品に組み込んでの商利用も無償となっていたが、T-Kernelの"Single One Source"という方針の下、ソースコードの自由な再配布ができない条件になっていた[ 14] 。
一方、T-License 2.0からはオリジナルソースコードの再配布や改変版ソースコードの配布が可能となり、ソースコードの配布に関する自由度が高くなるように改良されている[ 15] 。
T-Kernelのシリーズ展開
ターゲットハードウェアの多様化に合わせて、マルチプロセッサ/マルチコアに対応したMP T-Kernel(エムピー・ティー・カーネル)、小規模組込みシステムをターゲットとしたμT-Kernel(マイクロ・ティー・カーネル)などのシリーズ展開があり[ 16] 、それぞれの仕様書[ 17] とソースコード[ 18] も一般公開されている。
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と総称する[ 19] [ 20] 。
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上のユーザ・プログラムとの同期や通信を行うことができる[ 21] 。
SMP T-Kernel
対称型マルチプロセッサ(SMP:Symmetric Multiple Processor)に対応したMP T-Kernelである。 SMPのシステムは複数のプロセッサから構成される。各プロセッサは基本的な機能に相違がなく、同一のプログラム・コードの実行が可能であり、メイン・メモリはすべてのプロセッサから共有可能である。 全てのプロセッサは一つのSMP T-Kernelにより管理され、実行するプログラムは各プロセッサに動的に割り当てられる。タスクのスケジューリングやオブジェクトの管理は、SMP T-Kernelによりシステム全体で一元管理される。 ユーザ・プログラムは、個々のプロセッサを意識する必要はない。シングルプロセッサにおけるT-Kernelのユーザ・プログラムと同様に、一つのSMP T-Kernel上で動作するプログラムとなる[ 22] 。
μT-Kernel
小規模な組込みシステム向けのリアルタイムOSである。 μT-Kernel仕様は、小規模な組込みシステム向けに最適化・適応化を行ないやすい仕様となっている一方で、T-Kernelとの互換性を考慮してT-Kernelと共通の機能は同一のインタフェースで定義されており、型の定義もT-Kernelと共通になっている。 μT-Kernelのソースコードは、トロンフォーラムのwebサイト においてリファレンスコードとして公開されている。 μT-Kernel 3.0[ 23] からはGitHubでもソースコード[ 24] と仕様書[ 25] が公開されるようになった。
脚注
^ 「TRONWARE VOL.89」、2004年10月5日、23頁
^ tkernel_2 、GitHub
^ 「T-Kernel標準ハンドブック」(改訂新版)、2005年6月10日、10頁
^ 「サポートCPU一覧 」、トロンフォーラム
^ 「Interface 2012年5月号 」、2012年3月24日、56頁
^ 「TRONWARE VOL.146」、2014年4月5日、"Welcome to T-Engine Forum & Ubiquitous ID Center"
^ “再び脚光を浴びる国産アーキテクチャ「TRON」 - 坂村節がきわ立った「2014 TRON Symposium」記者会見より” . マイナビニュース . (2014年12月7日). https://news.mynavi.jp/article/20141207-tron/ 2015年8月22日 閲覧。
^ “IoT対応「トロン」OS、IEEEの世界標準に” . 日刊工業新聞 . (2017年12月12日). https://newswitch.jp/p/11323 2018年1月11日 閲覧。
^ “μT-Kernel 2.0がベースのIEEE 2050-2018がIEEE標準として正式に成立 ”. www.tron.org . トロンフォーラム (2018年9月11日). 2019年2月25日 閲覧。
^ “TRONリアルタイムOSファミリーがIEEEマイルストーンとして認定 ”. www.tron.org . 2024年5月10日 閲覧。
^ “IEEE Milestone受賞一覧 ”. ieee-jp.org . 2024年5月10日 閲覧。
^ 「T-Kernel標準ハンドブック」(改訂新版)、2005年6月10日、12頁
^ 「ソフトウェアのライセンス 」、トロンフォーラム
^ 「T-License 第4条 第2項 」、トロンフォーラム
^ 「T-License 2.0 FAQ 」、トロンフォーラム
^ T-Kernelとは? 、トロンフォーラム
^ 仕様書 、トロンフォーラム
^ TRON Forum Download Center 、トロンフォーラム
^ 「AMP T-Kernel仕様書」(Ver.1.00.01)、2017年1月、9頁
^ 「SMP T-Kernel仕様書」(Ver.1.00.01)、2017年1月、9頁
^ 「AMP T-Kernel仕様書」(Ver.1.00.01)、2017年1月、9頁~11頁
^ 「SMP T-Kernel仕様書」(Ver.1.00.01)、2017年1月、9頁~11頁
^ μT-Kernel 3.0 、トロンフォーラム
^ tron-forum/mtkernel_3 、GitHub
^ μT-Kernel 3.0仕様書 (Ver.3.00.01) 、GitHub
参考文献
『T-Kernel標準ハンドブック』《改訂新版》パーソナルメディア株式会社、2005年。
『TRONWARE』《VOL.89》パーソナルメディア株式会社、2004年。
『TRONWARE』《VOL.146》パーソナルメディア株式会社、2014年。
『Interface』《2012年5月号》CQ出版株式会社、2012年。
外部リンク