第2世代 Xiaoの検討その1

作成日:2020/07/07
最終更新日:2020/07/08

第2世代 Xiaoの検討その1

作成日:2020/07/07
最終更新日:2020/07/08

概要

第2世代のXiaoの仕様について検討します。

第1世代のXiao

第1世代のXiaoは実質12ステップ本[1]を参考にLPC1114に実装し直しただけのOSでした。LPC810へのポーティングや各種ドライバを作ったりしましたがはっきりとコレが特徴だ!と言い切れる点がないように感じており、目指すべき姿を明確にしないままなんとなく機能を作り続けてきたことが原因ではなかろうかと反省しています。

そこで、第2世代のXiaoは仕様を考えた上で実装を進めていこうと考えました。

ITRON

ITRONはトロンプロジェクトの成果物の一つで、組込みシステム用のリアルタイムOSの仕様です。この仕様は公開されており[2]現在の最新VersionはμITRON4.0仕様です。ITRONは仕様が巨大になったため、リアルタイムOS仕様のみに機能を絞ったμITRONが登場したようです。本稿ではμITRONのことをITRONと称します。ITRONの最大の特徴は弱い標準化であり実装時に仕様の取捨選択及び解釈を変えることができる点と考えます。ITRONの直接の後継であるT-Kernelは強い標準化を行っており解釈のズレが発生しないように意図されています。ITRONは2019年時点でも使われており国内の組込みOSのAPIシェアの45%を占めているようです[3]

第2世代のXiaoのAPI仕様としてはITRONの仕様に則ると色んな面で都合が良さそうです。

TOPPERS/SSPカーネル

TOPPERS SSPカーネルはμITRON4.0仕様のスタンダードプロファイルを拡張して実装されたASPカーネルをベースとして開発されたカーネルです。SSPはSmallest Set Profileの略でROM 3 kByte、Ram 24 Byteの環境で動作します[4]。ただし、SSPカーネルはASPカーネルにない機能もシステム全体のプログラムサイズを小さくするために例外的に実装されており完全な下位互換にはなっていません。また、SSPカーネルが提供する機能はμITRON4.0仕様の「仕様準拠の最低限の条件」をベースに策定されていますが、ASPカーネル自体がμITRON4.0仕様を拡張した仕様で実装されているのでμITRON4.0仕様に沿う形での最小の実装はないのかもしれません。

TOPPERS/SSPカーネルの仕様やμITRON4.0仕様に準拠する最低限の機能を調べていくと第2世代のXiaoの仕様をどうすべきか見えてきそうです。

μITRON4.0仕様

μITRON4.0仕様 Ver.4.03.03[2]の中で「最小セット」の文言は出てきますが、仕様としては規程されていないようです(見落としているだけかもしれませんが)。 プロファイルとして規程されているのは、「フルセット」、「スタンダード」、「ベーシック」、「自動車制御」の4つです。

「最小セット」の規程がない以上、上記のどのプロファイルにも準拠しないOSを設計・実装するとなるとITRONとはいえない可能性が高そうです。 5章に記述を見つけました。別途まとめます。 また、ITRONの仕様を変更する場合はトロンフォーラムに加入する必要がある[2]ようで、個人で加入するのもなかなか年会費が厳しそう[5]です。 過去にTOPPERS projectにも準会員として参加していましたが年会費が厳しかったので退会してしまいました...[6]。そうすると、ITRONに準拠したOSを目指すのではなくITRONライクなAPIをもつOSを目指すことになるのかなぁ...。

参考文献

  1. 坂井弘亮, 12ステップで作る組込みOS自作入門, カットシステム, 2010
  2. 社団法人トロン協会, μITRON4.0仕様 Ver.4.03.03, 社団法人トロン協会, 1999-2008
  3. ITmedia, Inc., 組み込みOSのAPIはTRON系OSがシェア60%、24年連続トップ, MONOist, 2020
  4. 斉藤直希, 杉本明加, リアルタイムOS「TOPPERS/SSP」誕生!(第1回)カーネルの機能と構造, インターフェース, vol. 38, no. 11, pp. 122-127, Nov. 2012
  5. トロンフォーラム, 入会のご案内(個人), トロンフォーラム, 2015-2020
  6. TOPPERS Project, Inc., 入会のススメ, TOPPERS, 2000-2020