オープンソースITRON仕様のTOPPERSカーネルを基盤とし、独自にメモリ管理機能やローディング機能の対応などを強化しています。
SOLID-OSは、プロセッサの種類やTOPPERS仕様により、以下のように展開しています(2020/11/13時点の計画を含みます)。
注意:本ロードマップの計画は、予告なく変更することがあります。
Arm®v7AやArm®v8AクラスのCPUを使う場合、ネットワーク、ファイルシステム、GUI など、豊富な機能のあるLinuxなどの高機能OSが採用されることが多いのですが、従来の組み込み文化との乖離が大きくソフトウエア開発者にとって、環境構築だけでも負担になる場合があるのではないでしょうか。
SOLID-OSとして「わかりやすい」「コンパクト」「学習コストが低い」組み込み機器として実績のあるμITRON 4.0仕様準拠のTOPPERSカーネル(ASP3、FMP、FMP3)を採用、OS機能も必要な機能だけをリンクしコンパクト化が可能です。
TOPPERSカーネルの特徴
SOLIDでは、カーネル本体、プロセッサ依存部に加えて、代表的な評価ボードのBSPも提供します。ロイヤリティーフリーです。
「コンパクトなカーネル」「ティックレスタイマ採用による高精度・省電力設計可能な時間管理(左図)」などが大きな特徴で、従来のμITRONと同様なAPI体系であり、既存のITRON/T-KERNELベースのシステムからの移植コストが小さいというメリットもあります。SOLID-OSではさらに以下のような機能を拡張しています。
Arm®v7AやArm®v8AクラスのCPUにおいて、メモリプロテクションやカーネル・ユーザ空間の完全分離にMMUを活用する事が有効です。また64bitメモリ空間にも対応しています。
SOLID-OSでは
● プロテクション使ったデバッグ支援
● 仮想アドレスを使ったデバッグ支援
を実現するため、OSに依存しないMMU対応のベアメタルローダーを新規開発し、単一空間で、複数実行モジュール、仮想メモリ、プロテクションに対応しています。
SOLIDではRTOSが求めるリアルタイム性を保持するために、単一の仮想空間をMMUを活用して管理しています。その代表的なものがベアメタルローダーで、SOLIDが各モジュールの要素を解析し、仮想空間中に適切に配置し、ロードします。
この機能を使うと、改修したモジュールだけをビルド・ロードすることができるので、開発効率が大幅に向上します。
● あらかじめ仮装デバイスで(1)と(2)の間の隙間を大きくしておく64M単位でも1Gの中に16エリア確保できます。
● モジュールのサイズに応じて、ローダのメモリマネージャが物理メモリを割り当てるので、メモリの無駄が少なくてすみます。
● (1)が(1)'に変更されても、(2)の変更(再ビルド)や転送が不要です。
TCP/IP、ファイルシステムなどはオープンソースベースの物がSOLID-OSに標準機能として提供します(OSS以外のメーカー様提供の物に変更する事も可能です)。また各パートナー企業製のミドルウエアの実装や連携も、当社が窓口となって対応します。