FDDからブートできる「MenuetOS」とCPUキャッシュにOSが載る「KolibriOS」:リアルタイムOS列伝(46)(3/3 ページ)
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第46回は、フロッピーディスク(FD)1枚にOSとアプリケーション一式が収まる「MenuetOS」と、MenuetOSからフォークした「KolibriOS」について紹介する。
「KolibriOS」はIntelの「Galileo」が存命なら最適だった?
さて、このMenuetOSから2004年にフォークする形で生まれたのがKolibriOSである。2004年なのでまだ64ビット移行前であり、どうもMenuet OS Version 0.74あたりをベースにフォークした模様だ。こちらも実際に動いている環境の動画があるが、細かい違いはあるにしても基本MenuetOSとほぼ変わらない感じになっている。
ではKolibriOSは、MenuetOSと何が違うのだろうか。
- 32ビットのみのサポート。Pentium互換のCPUであれば動作するとされる。逆に言えば、今後FRED対応のCPUが出てくると、動作しなくなる可能性がある
- サポートするハードウェアなどはMenuetOSと大きくは変わらない。ただし、例えばIntelのi915やAMDのRadeonのように、統合グラフィックス用のドライバも搭載されるなど、多少方針が変わっている
- ライセンスは当初の32ビットのMenuetOSと同様、引き続きGPLv2の形で提供される
- より広範なファイルシステム(FAT32の読み書きや、NTFS、exFAT、ISO9660、Ext 2/3/4の読み込み)をサポート
以上のように、既存のWindows/Linuxとの共存が容易になっている点がMenuetOSとの違いと言えるだろう。ただし、OSの構造そのものは32ビットのMenuetOSと同じである。やはりAPI呼び出しはSystem Callを利用しての形になるし、Monolithic Kernel、Pre-emptive Kernelで、Multi-Taskをサポートする構造だ。またFASMで記述されているのも変わらない。
このKolibrisOSに関しては、2011年に“Kolibri-A: a lightweight 32-bit OS for AMD platforms”という論文が出ているのだが、これはKolibriOSをAMDプラットフォーム向けにカスタマイズしたというものだ。もともとはx86ベースのマシンにCMOSイメージセンサーを接続し、これで取り込んだ映像をリアルタイムで表示しながら分析するという処理を行おうとしたが、従来のOSのままだと遅すぎて間に合わないということでKolibrisOSを使った、という話である。
そこで、画像表示の速度をWindows XPと比較した結果が図3である。ちなみにOSのサイズは73KBに収まったそうで、OSが丸ごとCPUのキャッシュに収まるレベルである。
図3 ターゲットはAthlonII×3(3GHz駆動)にAMDのRS780チップセット搭載マザーボードを利用したものだそうだ 出所:Kolibri-A: a lightweight 32-bit OS for AMD platforms
ただし、ハードウェアのサポートが乏しい(Pentium互換のプラットフォームを前提としており、より高速に動かすためのドライバがない)ことと、BIOSサービスが遅いのがボトルネックになる、としていた。そこでKolibrisOSに手を入れて、PCI Express周りやグラフィックスのアクセスを高速化(図4)することで、Kernel Codeを10KB程度にまで削減しつつ、1割以上の高速化を実現した、という話になっている。
図4 そもそもVBEのサポートというのは、CPUで全部描画処理を行うという意味であり、GPUのサービスを使うことで飛躍的に高速化される。またI/OアクセスもポートI/OからMMIOのサポートを追加するなどにより、高性能化が実現したというわけだ 出所:Kolibri-A: a lightweight 32-bit OS for AMD platforms
恐らくだが、Intelがかつて展開していた「Galileo」「Edison」や、「Curie」をベースにしたArduino 101をさっさと放り投げずにちゃんと販売を続けていれば、KolibrisOSは最適なOSだった気がしてならない。メモリフットプリントも小さいし、組み込みに最適だっただろう。FASMでプログラムを記述するのはちょっと障害だったかもしれないが、別にC/C++でもSystem CallベースでAPIを呼ぶだけだから、IDE側が少し頑張れば何とかなる範囲だったと思う。
この連載で取り上げるOSとしては珍しく、MenuetOSとKolibriOSはともにアクティブにアップデートされている。原稿執筆時点での最新リリースはMenuetOSが2024年3月、KolibriOSは2024年4月である。組み込みというにはちょっと変な扱いではある(特にKolibriOSの方はGPLv2なので商用製品には使いにくい感はある。MenuetOSはCommercial Licenseが用意されている)が、レスポンスの良いHMIを安価に構成しようと思った場合は、案外に使えるかもしれない。
また、最近で言えば、IntelのN100を搭載するシングルボードコンピュータとして話題になっているLattePanda MuをベースにHMIを構築するのであれば、MenuetOS/KolibriOSはなかなかに手ごろなOSになるのではないだろうか。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 連載記事「リアルタイムOS列伝」バックナンバー
- IBMのメインフレーム向け実験OSが源流の「CapROS」はディスクレスで動作する
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第45回は、IBMのメインフレームであるSystem/370向けに開発された「GNOSIS」を源流に持つ「CapROS」について紹介する。 - MCUとDSPのデュアルモードに対応した先進的RTOS「RTXC Quadros」の末路
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第44回は、MCUとDSPのデュアルモードに対応した先進的RTOS「RTXC Quadros」について紹介する。 - Fiberもどきの「Protothreads」は既存RTOSとの組み合わせで力を発揮する
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第43回は、実装がFiberの一種のようになっている「Protothreads」を取り上げる。 - マイクロソフトにWindows以外のOSは無理?「Azure RTOS」は「Eclipse ThreadX」へ
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第42回は、第4回で紹介した「Azure RTOS」がMicrosoftの手を離れて「Eclipse ThreadX」としてオープンソース化される話題を取り上げる。 - UNIXを逆順で読んだ「Xinu」は教育向け、RTOS開発者のレファレンスにも
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第41回は、パデュー大学 教授のDouglas Comer氏が開発した、教育向けのRTOS「Xinu」はを取り上げる。