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標準として正式に成立した。 2023年5月、IEEEはTRONプロジェクトが提案、作成、公開してきたリアルタイムOSを "TRON Real-time Operating System Family, 1984" の名称でIEEE Milestoneと認定した。認定銘板はTRONプロジェクトのリーダーである坂村健が1984年当時に助手として勤務していた東京大学のキャンパスに設置されている。 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-License(ティー・ライセンス)という独自のライセンスに従って無償で配布している。 2022年8月23日現在、T-KernelやμT-KernelなどのソフトウェアはT-License2.2に基づいてオープンソースとして公開されており、商利用を含めて無償で使用することができる。 T-Licenseでもソースコードは自由に改変することが可能であり、個人での利用はもちろん、製品に組み込んでの商利用も無償となっていたが、T-Kernelの"Single One Source"という方針の下、ソースコードの自由な再配布ができない条件になっていた。 一方、T-License 2.0からはオリジナルソースコードの再配布や改変版ソースコードの配布が可能となり、ソースコードの配布に関する自由度が高くなるように改良されている。 ターゲットハードウェアの多様化に合わせて、マルチプロセッサ／マルチコアに対応した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でもソースコードと仕様書が公開されるようになった。 [脚注の使い方] ^ 「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 第４条 第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月号》ＣＱ出版株式会社、2012年。  公式ウェブサイト, TRON Forum トロンフォーラム日本語サイト パーソナルメディアT-Engineソリューション Tron-forum - GitHub Sakamura home page ITRON Project Archive Introducing the μT-Kernel Information about T-Engine, T-Kernel, and μT-Kernel Programming 表示 編集 表示 編集