さて、このMenuetOSから2004年にフォークする形で生まれたのがKolibriOSである。2004年なのでまだ64ビット移行前であり、どうもMenuet OS Version 0.74あたりをベースにフォークした模様だ。こちらも実際に動いている環境の動画があるが、細かい違いはあるにしても基本MenuetOSとほぼ変わらない感じになっている。
ではKolibriOSは、MenuetOSと何が違うのだろうか。
以上のように、既存の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になるのではないだろうか。
IBMのメインフレーム向け実験OSが源流の「CapROS」はディスクレスで動作する
MCUとDSPのデュアルモードに対応した先進的RTOS「RTXC Quadros」の末路
Fiberもどきの「Protothreads」は既存RTOSとの組み合わせで力を発揮する
マイクロソフトにWindows以外のOSは無理?「Azure RTOS」は「Eclipse ThreadX」へ
UNIXを逆順で読んだ「Xinu」は教育向け、RTOS開発者のレファレンスにもCopyright © ITmedia, Inc. All Rights Reserved.
組み込み開発の記事ランキング
コーナーリンク