T-Kernelは、 32ビットマイクロコントローラ向けに設計されたオープンソースのリアルタイムオペレーティングシステム(RTOS)です[ 4 ] 。T -Engine Forum [ 4 ]によって標準化され、T -License契約に基づいて配布されています 。16ビットまたは8ビットマイクロコントローラを搭載した組み込みシステム向けに設計された対応するMicro T-Kernel(μT-Kernel)実装もあります[ 5 ] 。
現在、T-Engine Forumの後継であるTRON Forumによって、T-License 2.2に基づいて配布されている。
1984年、当時東京大学の研究助手であった坂村健博士は、オープンなリアルタイムオペレーティングシステム(RTOS)カーネルの設計を目標に、東京大学でリアルタイムオペレーティングシステム核(TRONプロジェクト)を開始しました。TRONフレームワークは、さまざまなアプリケーションのニーズに対応するために、さまざまなコンピューティングアーキテクチャ層の完全なアーキテクチャを定義しようとしています。産業用TRON(ITRON)仕様OSは、OSカーネル層で最も人気のあるTRONアーキテクチャです。ITRON仕様の普及は、商用実装を販売するさまざまな企業によって行われました。
TRONプロジェクトで開発された別のRTOSはBTRONと呼ばれていました。BTRONはBusiness TRONの略で、ウィンドウ環境を備えたデスクトップPC向けに開発されました。1989年、現在のパナソニック株式会社である松下電器産業株式会社は、このBTRON OSを使用したTRON PCを発表しました。このパーソナルコンピュータは、 8MHzのIntel 80286 チップとわずか2MBのメモリを搭載していましたが、動画を表示することができました。また、 BTRON OSとDOSの両方を実行できるデュアルブートシステムを備えていました。日本政府はかつて日本の学校でTRON PCを使用すると発表したものの、米国との経済問題などが原因で計画は中止されました。
しかし、ITRON仕様OSは、日本、中国、その他の国々で、多くのデバイス、家電製品、自動車用電子機器、ロボット、衛星、工場自動化システムで使用されています。組み込みシステム開発者は、ITRON仕様OSは日本と米国の両方で組み込みチップ向けのナンバーワンOSであると主張しています。[ 6 ]
T-Kernelは、ITRON仕様RTOSの後継として開発されました。T-Kernelは仕様の名前であると同時に、TRON Forum(旧T-Engine Forum )からT-License 2.2の下で無償で入手可能な公式ソースコードに基づく単一の実装でもあります。T-KernelはT-Engineハードウェアプラットフォーム向けに開発されました。T-Engineは、リリース当時、おそらく世界で最も先進的なユビキタスコンピューティングプラットフォームでした。[ 7 ]
現在、一部のユーザーはITRON仕様のOSからμT-Kernelへの移行を開始している。
2013年9月に打ち上げられた日本の国産ロケット「イプシロン」と、地球周回軌道に投入された観測衛星「ひさき」は、それぞれμITRONとT-Kernelを使用した。[ 8 ] 2014年12月3日にH-IIAロケットで打ち上げられた「はやぶさ2」の制御システムにはT-Kernel 2.0が使用された。[ 9 ]
2017年12月11日、μT-Kernel 2.0仕様の著作権譲渡契約が電気電子学会(IEEE)と締結されたことが発表された。[ 10 ]
2018年9月11日、「μT-Kernel 2.0」に基づく規格「IEEE 2050-2018」がIEEE規格として正式に承認されました。[ 11 ]
2023年5月、IEEEはTRONプロジェクトによって提案、作成、リリースされたRTOSを「TRONリアルタイムオペレーティングシステムファミリー、1984」というタイトルのIEEEマイルストーンとして認定しました。[ 12 ]認定されたマイルストーンの銘板は、1984年に坂村健がTRONプロジェクトを開始した東京大学のキャンパスに設置されています。
T-Kernelは、T-Engine向けの組み込みRTOSとしてリリースされました。その後のバージョンアップにより、T-Engine以外のターゲットハードウェアもサポートするようになりました。
T-Kernel 2.0は、QEMUと呼ばれるプロセッサエミュレータもサポートしています。TRON Forumが配布するT-Kernel 2.0ソフトウェアパッケージには、T-Engineリファレンスボードをエミュレートするように構成されたQEMU(tef_em1d用エミュレータ)が含まれているため、PC単体でT-Kernel 2.0アプリケーションを開発することが可能です。
従来のITRON仕様OSと同様に、T-Kernelは静的メモリ割り当てを用いたカーネルベースのプログラミングを可能にする。しかしながら、T-Engine本来の目的である「ミドルウェアの配布」を実現するためには、動的メモリ割り当てとプロセスベースのプログラミングを可能にするT-Kernel/Standard Extensionを利用できることが望ましい。
ミドルウェアの配布を容易にするため、T-Kernelはサブシステムとデバイスドライバ用に個別の仕様を用意しており、様々なタイプのミドルウェアAPIに対応できます。T-Kernel Extensionと呼ばれるミドルウェアをT-Kernelと組み合わせることで、個々のアプリケーションに適したRTOSを作成できます。T-Monitorはコンピュータハードウェアを初期化し、起動時に設定された割り込みを処理します。T-MonitorはT-Kernelのハードウェア依存性を軽減し、アプリケーションの移植性を向上させます。
Tカーネルは、機能の観点から以下の3つのコンポーネントから構成される。[ 13 ]
これはRTOSとしての基本機能を提供します。(μITRONの機能に対応する機能は、主にこのコンポーネントによって処理されます。)
これは、デバイスドライバやサブシステムなどのミドルウェアを管理するために、システムメモリ管理機能やアドレス空間管理機能などの機能を提供します。このコンポーネントは、TカーネルのμITRONから拡張されたものです。
これにより、開発ツールで使用されるデバッガーの機能を提供します。
T-Kernel のソースコードは、TRON Forum が独自のライセンスである T-License の下で無償で配布しました。2024 年 9 月現在、T-Kernel や μT-Kernel などのソフトウェアは、T-License 2.2 に基づくオープンソースとしてリリースされており、商用利用を含め無償で使用できます。[ 14 ] 元の T-License では、ソースコードは自由に修正でき、製品に組み込む場合は個人利用と商用利用の両方で無料で使用できました。しかし、T-Kernel の「単一ソース」ポリシーの下では、元の T-License の下でソースコードを自由に再配布することはできませんでした。[ 15 ] T-License 2.0 では、元のソースコードの再配布と修正されたソースコードの配布が許可されるように改良され、ソースコードの配布に関してユーザーにより多くの自由が与えられています。[ 16 ]
eSol CorporationのeBinderは、Tカーネルをターゲットとしたソフトウェアのクロス開発によく使われる統合開発環境(IDE)の一つです。 [ 17 ]
T-Kernel 2.0 の現在のリリースには、 Eclipse IDE用のプラグインが付属しています。また、 QEMUベースのエミュレータ上で動作する T-Kernel のバージョンと、QEMU ベースのエミュレータ自体も利用可能で、ターゲット ハードウェアなしで PC 上でテスト、トレーニング、開発を行うことができます。[ 18 ] wolfSSLなどの一般的なSSL/TLSライブラリによってサポートされています。[ 19 ]
ターゲットハードウェアの多様化に伴い、マルチプロセッサとマルチコアをサポートするMP T-Kernelや、小規模組み込みシステムを対象としたμT-Kernelなどの追加機能を備えたT-Kernelが開発されており[ 20 ]、それぞれの仕様[ 21 ]とソースコードは日本語と英語の両方で公開されています。
マルチプロセッサには、非対称マルチプロセッサ (AMP) と対称マルチプロセッサ (SMP) の 2 種類があります。AMP 用の T カーネルは AMP T カーネルと呼ばれ、SMP 用の T カーネルは SMP T カーネルと呼ばれます。両方の T カーネルはまとめて MP T カーネルと呼ばれます。[ 22 ] [ 23 ]
このMP Tカーネルは、非対称マルチプロセッサ(AMP)をサポートしています。
AMPシステムは一般的に複数のプロセッサで構成されます(各プロセッサは同じ種類である必要はありません)。AMP Tカーネルのコピーが各プロセッサに割り当てられるため、システム全体ではプロセッサの数と同じ数のAMP Tカーネルが存在します。
各AMP T-Kernelには、システム内の他のAMP T-Kernelと同期および通信するための機能が備わっています。AMP T-Kernel内のプロセッサ間のこれらの機能は、T-Kernel 1.00のプロセス間同期および通信機能を拡張したもので、プロセッサ間でも使用できるようになっています。
ユーザープログラムはAMP Tカーネルの1つ上で実行され、AMP Tカーネルの同期および通信機能を使用することで、他のAMP Tカーネル上のユーザープログラムと同期および通信することが可能です。[ 24 ]
このMP Tカーネルは、対称型マルチプロセッサ(SMP)をサポートしています。
一般的に、SMPシステムは同一タイプの複数のプロセッサで構成されます。各プロセッサは同じ基本機能を持ち、同じプログラムコードを実行でき、メインメモリはすべてのプロセッサで共有されます。
すべてのプロセッサは、単一のSMP Tカーネルのコピーによって管理されます。
T-Kernelによって管理および実行されるプログラムは、プロセッサに動的に割り当てられます。タスクスケジューリングとオブジェクト管理は、システム全体で使用される単一のSMP T-Kernelによって一元的に管理されます。
ユーザープログラムは個々のプロセッサを意識する必要はありません。単一プロセッサ上のTカーネル用のユーザープログラムと同様に、プログラムは単一のSMP Tカーネル上で実行されます。[ 25 ]
これは、小規模組み込みシステム向けのリアルタイムオペレーティングシステム(RTOS)です。
μT-Kernelの仕様は、小規模な組み込みシステム向けに容易に最適化および適応できるように設計されています。一方、T-Kernelとの互換性を確保するため、T-Kernelに共通する関数は同じインターフェースを使用して定義され、データ型の定義もT-Kernelで使用されているものと同じです。
μT-Kernelのソースコードは、TRON Forumのウェブサイトでリファレンスコードとして入手可能です。
μT-Kernel 3.0 [ 26 ]以降、ソースコード[ 27 ]と仕様書[ 28 ]も GitHub で公開されています。