IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第46回は、フロッピーディスク(FD)1枚にOSとアプリケーション一式が収まる「MenuetOS」と、MenuetOSからフォークした「KolibriOS」について紹介する。
だんだんと連載テーマであるリアルタイムOS(RTOS)から外れつつある気もしなくもないのだが、今回ご紹介するのは「MenuetOS」と「KolibriOS」である。KolibriOSはMenuetOSからフォークしている(ただしフォーク後に開発は完全に分離)ので、まずはMenuetOSからご紹介したいと思う。【訂正あり】
【訂正】初出の記事タイトルで「FDDにOSとアプリ一式が入る」と表記しておりましたが、装置であるFDD(フロッピーディスクドライブ)にOSとアプリ一式が収まるわけではないため「FDDからブートできる」に変更しました。
MenuetOSは、2000年にVille M. Turjanmaa氏によって開発されたOSである。どんなものか? というのは、以下の動画を見ていただくのが早いかと思う。
WindowsやGNOMEを連想する、GUI経由で利用できるOSの見た目になっているのが分かる。もちろんGUIは別に必須ではないのだが。これだけ見ていると「どの辺がRTOSなんだ?」と思われるかもしれないが、これら(OSとアプリケーション一式)が1.44MBのFDDからブートできる(FDDが必須というわけではなく、OSとアプリケーション全部込みで1.44MB未満に収まるという意味)という辺りが、いわゆるWindowsやLinuxなどと全く異なるルーツであることを物語っている。
そもそもTurjanmaa氏はなぜMenuetOSを開発したのか。その当時、同氏はスクリプト言語を使って複数のWebページを巡回するということをしていたが、そのスクリプト言語の動作が遅いことに不満を持っていたらしい。同氏が購入した(所有する中では相対的に新しい)PCでもスクリプトの処理が猛烈に遅かったそうで、「だったらOSをアセンブラで書き直せば高速にできるはずだ」というのがMenuetOSの開発動機だそうである。
「普通そうはならんやろ」と突っ込みたくなるのだが、2000年5月16日に最初のバージョンである16.5.2000が完成する。この時は32ビットのx86プロセッサをターゲットとしており、まだGUIはなく、本当にカーネルだけのものである。ただし、2002年には単にグラフィック表示が可能というのではなく、きちんとGUIとして動作するバージョンがリリースされる。GUIに加えてネットワークやゲーム類まで動作し、それでいて1.44MBのFDDに収まるというものだった。当然ながらこれらは全てFASM(Flat Assembler)を利用したアセンブラで記述されている。
2005年からMenuetOSは64ビット対応に移行した。この頃になると、すでに32ビットのみに対応したx86プロセッサなどごくわずかで、新製品はIntel/AMDともに64ビットに移行していたからこの判断は正しいと思うが、32ビットのMenuetOSはオープンソース(ライセンスはGPL)だったのがクローズソースライセンス化されてしまった。理由はその32ビット版でライセンス違反の事例が幾つかあったかららしい。
ちなみに64ビット版は、32ビットのプログラムも当然動作する。SMP(対称型マルチプロセッシング)の対応は割と早い段階から行われたが、SMT(同時マルチスレッディング)への対応はやや遅れた(2001年のTurjanmaa氏へのインタビューによれば、やらないわけではないが優先順位が低いといったニュアンスだった)が、Threadをサポートというよりも単にSMTを利用した仮想コアを物理コアと同等に扱うようにした、という感じである。
Copyright © ITmedia, Inc. All Rights Reserved.