T-Kernel

ウィキペディアから無料の百科事典

T-Kernel
開発元 トロンフォーラム
初版 2004年1月[1]
最新版
T-Kernel 2.02.00[2] / 2015年6月24日
プログラミング
言語
C言語, アセンブリ言語
種別 リアルタイムオペレーティングシステム
ライセンス T-License 2.2
公式サイト トロンフォーラム - T-Kernel 2.0 Release
テンプレートを表示

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]

T-Kernelの構造[編集]

T-Kernelは機能的に以下の3つの部分に分かれている[10]

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に基づいてオープンソースとして公開されており、商利用を含めて無償で使用することができる[11]

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

T-Kernelのシリーズ展開[編集]

ターゲットハードウェアの多様化に合わせて、マルチプロセッサ/マルチコアに対応したMP T-Kernel(エムピー・ティー・カーネル)、小規模組込みシステムをターゲットとしたμT-Kernel(マイクロ・ティー・カーネル)などのシリーズ展開があり[14]、それぞれの仕様書[15]とソースコード[16]も一般公開されている。

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と総称する[17][18]
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上のユーザ・プログラムとの同期や通信を行うことができる[19]
SMP T-Kernel
対称型マルチプロセッサ(SMP:Symmetric Multiple Processor)に対応したMP T-Kernelである。
SMPのシステムは複数のプロセッサから構成される。各プロセッサは基本的な機能に相違がなく、同一のプログラム・コードの実行が可能であり、メイン・メモリはすべてのプロセッサから共有可能である。
全てのプロセッサは一つのSMP T-Kernelにより管理され、実行するプログラムは各プロセッサに動的に割り当てられる。タスクのスケジューリングやオブジェクトの管理は、SMP T-Kernelによりシステム全体で一元管理される。
ユーザ・プログラムは、個々のプロセッサを意識する必要はない。シングルプロセッサにおけるT-Kernelのユーザ・プログラムと同様に、一つのSMP T-Kernel上で動作するプログラムとなる[20]
μT-Kernel
小規模な組込みシステム向けのリアルタイムOSである。
μT-Kernel仕様は、小規模な組込みシステム向けに最適化・適応化を行ないやすい仕様となっている一方で、T-Kernelとの互換性を考慮してT-Kernelと共通の機能は同一のインタフェースで定義されており、型の定義もT-Kernelと共通になっている。
μT-Kernelのソースコードは、トロンフォーラムのwebサイトにおいてリファレンスコードとして公開されている。
μT-Kernel 3.0[21]からはGitHubでもソースコード[22]と仕様書[23]が公開されるようになった。

脚注[編集]

  1. ^ 「TRONWARE VOL.89」、2004年10月5日、23頁
  2. ^ tkernel_2、GitHub
  3. ^ 「T-Kernel標準ハンドブック」(改訂新版)、2005年6月10日、10頁
  4. ^ サポートCPU一覧」、トロンフォーラム
  5. ^ Interface 2012年5月号」、2012年3月24日、56頁
  6. ^ 「TRONWARE VOL.146」、2014年4月5日、"Welcome to T-Engine Forum & Ubiquitous ID Center"
  7. ^ “再び脚光を浴びる国産アーキテクチャ「TRON」 - 坂村節がきわ立った「2014 TRON Symposium」記者会見より”. マイナビニュース. (2014年12月7日). https://news.mynavi.jp/article/20141207-tron/ 2015年8月22日閲覧。 
  8. ^ “IoT対応「トロン」OS、IEEEの世界標準に”. 日刊工業新聞. (2017年12月12日). https://newswitch.jp/p/11323 2018年1月11日閲覧。 
  9. ^ μT-Kernel 2.0がベースのIEEE 2050-2018がIEEE標準として正式に成立”. www.tron.org. トロンフォーラム (2018年9月11日). 2019年2月25日閲覧。
  10. ^ 「T-Kernel標準ハンドブック」(改訂新版)、2005年6月10日、12頁
  11. ^ ソフトウェアのライセンス」、トロンフォーラム
  12. ^ T-License 第4条 第2項」、トロンフォーラム
  13. ^ T-License 2.0 FAQ」、トロンフォーラム
  14. ^ T-Kernelとは?、トロンフォーラム
  15. ^ 仕様書、トロンフォーラム
  16. ^ TRON Forum Download Center、トロンフォーラム
  17. ^ 「AMP T-Kernel仕様書」(Ver.1.00.01)、2017年1月、9頁
  18. ^ 「SMP T-Kernel仕様書」(Ver.1.00.01)、2017年1月、9頁
  19. ^ 「AMP T-Kernel仕様書」(Ver.1.00.01)、2017年1月、9頁~11頁
  20. ^ 「SMP T-Kernel仕様書」(Ver.1.00.01)、2017年1月、9頁~11頁
  21. ^ μT-Kernel 3.0、トロンフォーラム
  22. ^ tron-forum/mtkernel_3、GitHub
  23. ^ μ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年。 

外部リンク[編集]