IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第35回は、第27回で取り上げた「RTAI」と同じくLinuxでハードリアルタイムを実現する選択肢となる「Xenomai」を紹介する。
今回ご紹介するリアルタイムOS(RTOS)「Xenomai」は、実は連載第27回にちょこっと名前が出ている。第27回では、Linux上でハードリアルタイム環境を提供する「RTAI」を紹介したのだが、このRTAIと一時期は開発がマージされ、その後に再び分かれたのがXenomaiなのである。
XenomaiはGNU/Linuxのフレームワークを利用した、Linux向けのリアルタイム拡張である。それもあってプロジェクトのURLは「http://freesoftware.fsf.org/projects/xenomai/」(現在このURLにはアクセスできない)に置かれた。fsf.orgの下にあるということからもこれが確認される。Xenomaiの当初のターゲットは、いわばLinuxの上でRTOSのエミュレーションを行えるようなAPIを提供するという話であり、その際のエミュレーション層は「ADEOS」やRTAI、LinuxのThread上などで稼働することをもくろんだ。なお、ADEOS/RTAIについては第27回で説明しているので割愛する。最初のリリースであるXenomai 1.0は2001年にリリースされた。
このXenomaiは2003年、いったんRTAIのプロジェクトにマージされる。理由としては、RTAIもXenomaiも、Linux上のRTOSの環境をポートするもので、よく似た2つを別々に開発する必要はないと判断されたためだが、2005年に再びプロジェクトは分離する。
理由は、目指すところが異なったからだ。これも第27回で紹介した話だが、Xenomaiの方が内部構成がクリーンであり(図1)、移植性も高い(図2)。x86だけをターゲットにしているならRTAIの方が性能を出しやすいが、さまざまなOSに移植したり、さまざまなRTOSを移植したりするのはXenomaiの方がやりやすいというわけだ。
RTAIから分離した2005年にはXenomai 2.0がリリースされた。1.0との相違点は、I-pipe(Interrupt-pipe) Layerが新たに追加されたことと、複数のプラットフォームに対応したことだ。といっても、2005年10月にリリースされたXenomai 2.0.0で対応しているアーキテクチャはまだx86のみだったが、Xenomai 2世代で最後となる2.6.5(2016年9月リリース)になるとArm、Blackfin、Nios II、PowerPC、SH、x86という6種類のアーキテクチャに対応している。
Copyright © ITmedia, Inc. All Rights Reserved.