エッジコンピューティングの逆襲 特集

FDDからブートできる「MenuetOS」とCPUキャッシュにOSが載る「KolibriOS」リアルタイムOS列伝(46)(2/3 ページ)

» 2024年05月07日 07時00分 公開
[大原雄介MONOist]

「MenuetOS」の特徴

 MenuetOSの特徴は以下の通り。なかなかキマった特徴を持つOSとなっている。

  • Monolithic Kernel、Pre-emptive Kernelで、Multi-Taskをサポートする。ProcessやThreadではなく、あくまでもTaskレベルである。またRing-3保護(ユーザープログラムはRing-3、KernelはRing-0で動作)が提供される
  • Schedulerはデフォルトで1kHz(つまり1msのTime Slice)、オプションで100kHz(10μsのTime Slice)まで引き上げられる。ただしTime critical process supportがあり、任意のプロセッサ上で割り込みを一切入れない形でTaskを実行できる
  • Hard real-time data fetchのサポート
  • SMP対応。最大32CPUまで管理できる
  • APIに当たるものは全てSystem Call 0x60で実装される。つまりMS-DOSで使っていたInt 60Hである。このため、アプリケーション開発時にSystem LibraryなどをLinkする必要がない(というか、できない)。System Callの一覧はWebサイトで公開されている。OSの機能やGUI、USBの制御など、全てSystem Callで実装される
  • アプリケーションはFASMではなく、C/C++やその他の言語を使って開発することが可能。というかInt xxHのSystem Callが実行できれば問題ない。ただし、提供されるサンプルコードは当然全てFASMを利用したアセンブラで提供される。一応Cのライブラリは存在するが、バージョンはかなり古い
  • Function Callを使っているが故に、既存のOSのAPI(POSIXやWin32など)とは一切互換性がない。ネットワークI/Fも同じで、TCP/IPのSocket I/Fをサポートしているものの、呼び出しはInt 60HのFunction 53を利用する形になっているため、コードそのものは既存のSocket Libraryと互換性がない
  • GUIに対応しているが、グラフィックはVBE(VESA Bios Extensions)を利用して表示される。つまりグラフィックハードウェアは利用しない(つまり、どんなGPUであってもVBEに対応していれば利用できる)
  • USB 1.1(Keyboard&Mouse)とUSB 2.0(Storage/Printer/Webcam/TV/Radioの各Class対応)
図1 図1 「MenuetOS」のWebサイト[クリックでWebサイトへ移動]

 標準でGUIが提供されるが、別にGUIが必須というわけではなく、Time critical process supportやHard real-time data fetchなどの機能に加え、メモリ/ストレージのフットプリントが小さいことを含めて、RTOSというよりも組み込み向けに最適といえるだろう。2024年3月にリリースされたVersion 1.50.00でもBoot Imageは1.44MBに収まっているほどだ。

 対応しているハードウェアはやや古いものが多いが、逆に言えばIntelのAtomベースの組み込み向けCPUなどでも十分なスピードで動作するという言い方もできる。QEMUやVirtualBoxなどでも動作するので、簡単に試せることも長所といえるだろう。

Copyright © ITmedia, Inc. All Rights Reserved.