IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第8回は、日本以外でじわじわと人気が出始めているRTOS「RT-Thread」を取り上げる。
「RT-Thread」は日本ではほとんど話題になっていないリアルタイムOS(RTOS)である。ただし、オープンソースベースでの開発がもう15年ほど続いており、広範な(しかも最近の)プロセッサのサポートや軽量といった特徴も相まって、(日本以外で)じわじわと人気が出始めている。
プロジェクト開始は2006年で、2009年には最初のリリースが登場している。主なターゲットは「ARM 7/9」で、C言語で記述されつつ、オブジェクト指向を考慮したカーネル構成である。2009年にはスタブメモリやダイナミックメモリ、lwIP(軽量なTCP/IPスタック)、ビルドツールである「GNU Make」のサポートが、2010年には例外処理に用いるNested Interruptやスレッド間同期、仮想ファイルシステム、GUIである「RTGUI」などが追加され、またターゲットに「Cortex-M3」が追加された。
2011年にはついに初の正式バージョンとなる「v1.0.0」がリリースされている。より安定性を増したカーネルやエラーチェック機構、POSIXサポートに加え、「Cortex-M4」や「MIPS」「AVR32」「V850E」「M16C」などサポートされるターゲットが大幅に増えた。
2012年にはUSBホスト/デバイススタックやSDIO、SPI、I2C、WDT、RTC、NOR&NANDフラッシュなどさまざまな周辺機器のサポート、新しいファイルシステムのサポートやPowerPCのサポートなども追加された。Win32環境で動くエミュレータも2012年に追加されている。2014年にはプログラミングマニュアルやSQLiteの統合、(なぜか)Ymodemのサポートに加え、ターゲットには「Cortex-A8」や「Cortex-R4」なども追加されている。
2015年にはJavaScriptや、RT-ThreadとLinuxのデュアルシステムに対応したVMM(仮想マシンモニター)、GDBスタブなどを加えたものがv2.0.0としてリリースされる。翌2016年にはログトレース機能、CANのサポート、タイマドライバの追加などを行い、サポートデバイスをさらに増やしている。
2017年にはIoT(モノのインターネット)向けOSを目指し、MQTTやCoAP、HTTP、TLSなどをサポートした他、構成時にカーネルやコンポーネントの構成要素を変更して必要なものだけにする「Kconfig」や「menuconfig」という機能を追加し、これをv3.0.0としてリリースした。
2018年にはより多くのチップや開発ボード、SMP(対称形マルチプロセッシング)環境、さらにクラウドサービスのサポートを追加したv4.0.0がリリースされている(図1)。
現状、v5.0.0に関してはまだ具体的な方向性は決まっていない。RT-Threadの開発をリードする午夜熊氏によれば「而在2019年,则在潜行中仔细思考,没做大版本发布,但却开始走向新的领域。 在RT-Thread发展过程中我们深知“无生态不OS”,一款操作系统是需要开发者使用,需要开发者对它的认可(その一方2019年は、特定の分野に深入りすることは避け、新しい分野向けを模索する(ことにした))」とあり、v5.0.0が登場するのはもう少し先になりそう、とされている。もっとも、英語版のページではもうv5.0.0の要件が示されているあたり、微妙に同期がとれていない感は否めないが(図2)。
Copyright © ITmedia, Inc. All Rights Reserved.