UNIXを逆順で読んだ「Xinu」は教育向け、RTOS開発者のレファレンスにも:リアルタイムOS列伝(41)(3/3 ページ)
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第41回は、パデュー大学 教授のDouglas Comer氏が開発した、教育向けのRTOS「Xinu」はを取り上げる。
ソースコードのほとんどをC言語で記述
他にも幾つかの事例(どんな用途だったのかは不明だが、三菱電機が自動車向けにXinuを採用した、ゲーム機メーカーのBallyがピンボールゲーム機の制御にXinuを利用した、といった話も挙がっている)が聞こえてきており、2019年にはSTM32にXinuが移植され、現在も公開されている(図4)。また、教材という意味では、2021年にXinuを利用した授業が少なくとも3つあったことは明らかにされている。教育用だけでなく実際の機器の制御にも使えるレベルのRTOSであることの傍証にはなるだろう。
Xinu自身はプリエンプティブなカーネルを持ち、プロセスベースの制御を行う。マルチプロセッサシステムへの対応は(標準では)備えておりらず、プライオリティベースでのスケジューリングが実装されている。プロセス間通信としてはセマフォとメッセージが用意されている程度であるが、その一方で仮想記憶やファイルシステム、リモートディスク/リモートファイル、名前空間などへの対応が用意されているというあたりはいかにも教育用という感じではある。APIは独自のものなので、POSIXへの対応とかはちょっと骨だろう。
前述の「Operating System Design: The XINU Approach」には、ドライバの書き方やArmとx86での割り込みの処理の仕方の違い、システム初期化の中で行う処理の一覧、シェルの実装例、他のプラットフォームへの移植の方法なども説明されており、この本を読みながらソースコードを眺めると、その処理の意味や目的などが分かるような配慮がなされている。その意味でもこれは教科書であって、逆にソースコードだけ眺めていてもちょっと分かりづらい。ちなみにコードはほとんどがCで記述されており、例えばBeagleBone Black向けのカーネルの中でアセンブラで記述されているのはシステム初期化(intr.S)と、この中から呼ばれるメモリ初期化(start.S)、それとコンテキストスイッチ(ctxsw.S)の3つだけしかない。
ソースコードやバイナリは、パデュー大学のXinuのWebサイトから今もダウンロード可能だが、現状はBeagleBone Black用とGalileo用、それとOracleのVirtualBox Hypervisor上で動作するものが用意されており、いずれも2015年リリースとなっている(逆に言えばその後のアップデートはない)。
ただし、古いコードも公開されている他、先述したようにSTM32への移植例もあるので、他の環境で使うことも不可能ではないだろう。RTOSの勉強用、というよりもRTOSを自分で作る人向けの教材として今後もXinuは参考にされていくものと思われる。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 連載記事「リアルタイムOS列伝」バックナンバー
- 出自はデンマークとAda、ボーイングやエアバス採用のRTOS「Deos」と「HeartOS」
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第40回は、ボーイングやエアバスをはじめ航空機で広く採用されているRTOS「Deos」と「HeartOS」を取り上げる。 - “組み込みUNIX”を目指した「ChorusOS」は企業買収の波に飲まれて消えた
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第39回は、“組み込みUNIX”を目指したものの企業買収の波に消えた「ChorusOS」を取り上げる。 - 組み込みエンジニアの本能的な欲求から生まれた? ポーランド発RTOS「DioneOS」
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第38回は、マルチタスクに焦点を当てたポーランド発の省フットプリントRTOS「DioneOS」を取り上げる。 - 今は亡きセンサーネットワーク向けRTOS「Nano-RK」はカーネルを持たない
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第37回は、現在は入手がほぼ不可能になってしまった「Nano-RK」を取り上げる。 - 今やBlackBerryの主力事業に、下克上を果たしたRTOS「QNX Neutrino」
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第36回は、1980年代からの長い歴史を持つ「QNX Neutrino」を取り上げる。