ITRON
ITRON(アイトロン、Industrial TRON)は、TRONプロジェクトが策定・維持している組み込みOS・リアルタイムOSカーネルの仕様である。
仕様に準拠した実装を指して、ITRON OS等と呼ぶ場合もある。
トロンフォーラムが組込み総合技術展(主催:一般社団法人組込みシステム技術協会)で毎年実施している、「組込みシステムにおけるリアルタイムOSの利用動向に関するアンケート調査」によれば、日本では長年組み込みOSのトップシェアを占めており、業界標準のOSとして採用されている。例えば2016年度の調査では、組み込み系において(ITRONやT-Kernelなどを含む)TRON系OSのシェアが全体の約6割を占めたが、(μITRONを含む)ITRON系OSのシェアだけで全体の43%に達し、TRONに続くシェア2位となった(POSIXを含む)UNIX系OSの20%を引き離している。
なお、海外では2010年代の時点ではAndroidやUbuntuなどのLinux系OSが組み込み用としては圧倒的で、ITRONやT-Kernelなどを含むTRON系OSは全く使われておらず、海外でも販売されている日本製家電製品やトヨタ自動車の車載用OSとして使われて来たという歴史的事実のみ知られている(Usage_share_of_operating_systemsおよびITRON projectを参照)。
海外ではあまり知名度がないが、日本製家電に搭載されて世界に輸出されているため、OSのシェア自体は高い。2003年の時点でOSのシェアが世界1位とされた。ライセンスが緩く、無料だったので、Linuxが普及する2000年代以前はアジアでもかなり使われていた。
極めて性能の低いシステムから、大規模なシステムにまで対応できることから、組み込み系OSで大きなシェアを占めるITRONのサブセット。μITRON3以降はITRONと言うとμITRONのことを指す。
TRONプロジェクトにおいて、インフラとなるシステムとして最初に設計が開始され、情報処理学会の第29回全国大会で基本設計の概要を発表している。
1984年頃 TRONプロジェクトのサブプロジェクトとしてITRONの開発開始。
1987年 ITRON1の仕様が公開。
1989年 ITRONのバージョン2となるITRON2、およびそのサブセットとなるμITRON2の仕様が公開。
ITRON2では、32bitの大規模なシステム向けに策定されたITRONと、8~16bitの小規模なワンチップマイコン等を対象としたサブセット的な仕様であるμITRONとに分けて公開された(このため、μITRONにはバージョン1は存在せず、最初のバージョンがμITRON2.0である)。このうちμITRON2は、非常に性能の低いMCUでも利用できたことから、組み込み向けで主要なMCUのほぼすべてで採用されるほど極めて広範囲に使われ、32bitの大規模システムにまでμITRONが採用されることとなったため、それらの事例のフィードバックから、μITRON3では8-32bitまでに対応できるスケーラビリティを持った仕様が策定されることとなった。
1993年 μITRON3の仕様が公開。
μITRON3ではシステムコールのレベル分けによって、一つの仕様で小規模システムから大規模システムまでをカバーしている。ITRON2のフルセットにほぼ相当する機能を定めている。
1996年頃 ITRONサブプロジェクトの第2フェーズが開始。
この頃より組み込みシステムが急速に大規模化・複雑化していったため、アプリケーションの移植性を高めるための要望が高まった。また、組み込み向けシステムが高性能化し、ITRON仕様の策定時点ではオーバヘッドが大きすぎるために見送られた機能でも入れられるようになった。μITRON4の仕様書で紹介されているTRON協会のアンケートでは、当時の現場では「OSの使用リソースが大きすぎる」という悩みよりも「技術者が使いこなせない」「仕様の違いが大きく切り替えの負担が大きい」といった悩みの方が大きかったという。
1999年 μITRON4の仕様が公開。
従来のITRONでは性能の低いCPUでも利用できるように「弱い標準化」の思想だったが、ITRON上でのミドルウェアの利用が広まるとともに、ソフトウェアの移植性を高める「強い標準化」の要望が出てきたことから、仕様の互換性や厳密性が高められた。
2000年 T-Engineプロジェクト開始。
ITRONの標準化を進め、「より強い標準化」を志向した次世代リアルタイムOSであるT-Kernelプロジェクトが開始された。
2016年現在のμITRON仕様の最新は、1999年公開のμITRON4仕様で、μITRON4仕様の最新は、2006年12月公開の4.03.03である。仕様書では、μITRONからT-Kernelへの移行がスムーズに果たせるような仕様を今後策定したいという予定が語られている。
坂村曰く、μITRONは2000年の時点ですでに「成熟した技術」とのこと。ユビキタス・コンピューティング時代にはITRONプロジェクトよりもT-Kernelプロジェクトに注力すべきとの立場で、従来μITRONが得意とした小規模システム向けにもμT-Kernelが用意され、IoT時代に向けたμT-Kernel 2.0も用意されている。
T-Kernelは高度な情報処理を必要とする組み込み系システムで主に採用されているが、それほどでもないシステムでは依然としてμITRONが使われている。
組み込み用として、一般消費者の身近にはない機器や、エアコン・電子レンジ・炊飯器・テレビやゲーム機のリモコンなど、身近ではあっても見えないところのOSとして採用されている。
テレビ録画サーバーや自動車と言った高度な機器にも採用されており、これらの機器ではシステム全体を制御する高度なOSの下に、複数のMCUとそれらを制御する複数のOSが搭載されている場合があるので、メインOSとしては組込Linuxや組込Windowsを採用していても、録画サーバーのメディア書き込み用MCUや自動車のエンジン制御用MCUなどその下の見えないところではμITRONが稼働している場合がある。例えば、任天堂が2017年に発売したゲーム機・Nintendo Switchは、メインOSとしてFreeBSD準拠のOSを採用しているが、コントローラー(Joy-Con)の近距離無線通信(NFC)制御用としてμITRON4.0仕様に準拠したイーソル社のリアルタイムOSを採用している。Nintendo Switchは、本体のファイルシステムはイーソル社のT-Kernelベースの「eCROS」プラットフォームの一部である「PrFILE2 exFAT」を採用しており、またNFCを扱う通信スタックとしてAndroidプラットフォームの一部である「Libnfc-nci」を採用するなど、TRON系OSを含む様々なプラットフォームを採用していることが分かっている(任天堂のゲーム機はマニアがいるので詳しく解析されているが、ゲーム機以外にも自動車やスマートフォンなどの高度な機器ではメインOS以外にリアルタイムOSを含む複数のOSを搭載しているのが一般的である)。
一般消費者の見えるところのOS、つまりGUIを搭載したOSとしては、2000年代前半から後半にかけて日本で普及した高機能携帯電話(ガラケー)のOSとして広く使われていた。例えば、ルネサスが2004年に発売し、2000年代中頃に日本で発売された高機能携帯電話の多くでメインCPUとして採用されたSH-Mobile3など、携帯電話メーカーにプロセッサを提供するマイコンメーカーがプラットフォームの一部としてITRON仕様OSを提供していた。しかし、ITRONは標準化が弱く、各社で各携帯電話ごとにカスタマイズして使っていたため、ソフトウェア規模が大きくなる第3世代移動通信システム(3G)携帯ではOSのカスタマイズ費用や手間が大きすぎることが問題となった。そのため、例えばNTTドコモは2003年に、同社の3GサービスであるFOMAではOSとして今後はSymbian OSとLinuxを推奨することを表明するなどして、2005年頃よりガラケーにおいてもITRONのようなリアルタイムOSではなくLinuxのような汎用性のあるOSが使われるようになった。
携帯電話のメインOSとして使用されなくなった後も、カメラ制御用のマイコンなどに搭載されて動いている可能性がある。例えば、例えば、富士通が2003年に発売し、2000年代前半に日本で普及したカメラ付き高機能携帯電話の多くに採用された画像処理LSI「Milbeaut Mobile」がμITRONをOSとして採用していた。Milbeautシリーズは、2010年代においてもドライブレコーダー、ドローン、監視カメラなどの画像処理LSIとして販売されている。
1990年代から2000年代前半のマルチメディア機器においては、低性能なプロセッサの性能を最大限に引き出して動画処理やネット通信をリアルタイムで並列的に制御するような高度な機能を実現するために、ITRONのようなリアルタイムOSを使わざるを得なかったが、一方で技術者の負担が非常に大きく、マイコンの性能が大きく向上した2010年代以降、このような高機能な機器の制御にリアルタイムOSを使うことは推奨されていない。基本的にAndroidなどの組み込みLinuxが使われ、どうしてもリアルタイム性が必要な部分にのみリアルタイムOSが使われる。ITRONは標準化が弱いため、高機能な組込みシステム向けのリアルタイムOSとして、トロンフォーラムではT-Kernelを推奨しており、実際に2000年代前半の一般消費者向け組み込み機器でも、2008年当時のセイコーエプソンのプリンターカラリオシリーズではイーソル社のT-Kernelベースのソフトウェアプラットフォーム「eCROS」を採用していた。
T-EngineフォーラムによるT-KernelはμITRON3.0仕様の発展版である。
ITRONでは「弱い標準化」の思想から、極めて性能の低いシステム(安価で大量に製造される組み込み系システム)から大規模な組み込みシステムにも対応できる柔軟性を持ったシステムであったが、そのぶん実装がハードウェアに依存する部分が大きく、システム自体のコストよりも技術者の教育や開発にかかる人的コストが相対的に重視される大規模な組み込みシステムでは「ソフトウェアの移植性が低い」「ミドルウェアの導入ができない」「技術者の負担が大きい」といった問題があった。
その反省から、T-Kernelは「より強い標準化」の思想でITRONの標準化を進め、互換性や移植性を高めることでミドルウェアの流通を推進し、大規模組み込みシステムにおける開発の効率を高めることを目的としている。
TOPPERSはITRONの主要な実装のひとつで、TOPPERS/JSPカーネルはμITRON仕様4.03に基づいている。TOPPERS新世代カーネルは、ITRON仕様に必ずしも準拠させないとしているが、ITRONベースである。