DUICUO

新しいオープンソースの組み込みオペレーティングシステム

現在、組み込みOSの需要は非常に高く、開発するOSはオープンソースであることが理想的です。RT-Threadプロジェクトの開発チームは、2年間を費やして最新の成果であるRT-Thread Smartを開発しました。これは、RISC-VやArm Cortex-Aプロセッサなどのメモリ管理ユニット(MMU)を備えたミッドレンジからハイエンドのプロセッサを主にターゲットとしたマイクロカーネルOSであり、組み込みシステム分野のあらゆる業界に競争力のあるPOSIXベースのソフトウェアプラットフォームを提供します。

RT-Thread Smart が必要な人は誰ですか?

RT-Thread Smartは、リアルタイムアプリケーション向けのプロフェッショナル向け高性能マイクロカーネルオペレーティングシステムです。セキュリティ(IPカメラ)、産業用制御、車載機器、民生用電子機器、その他の組み込み技術アプリケーションなど、あらゆる市場の組み込みデバイスにオープンソースの基盤を提供し、ほぼあらゆるシナリオに対応します。その重要性は、従来のIoTオペレーティングシステムとは異なり、マイクロカーネルオペレーティングシステムが従来のリアルタイムオペレーティングシステム(RTOS)とLinuxなどの比較的大規模なオペレーティングシステムとの間のギャップを埋め、リアルタイム性能、コスト、セキュリティ、起動速度などのさまざまな側面の最適なバランスを実現できることにあります。

RTスレッドスマートアーキテクチャ

RT-Thread Smart は、MMU とシステム コールを通じてシステムをカーネル モードとユーザー モードに分割し、各モードのアドレス空間を区別します (32 ビット システムは 4G のアドレス空間を提供できます)。

RTスレッドスマートアーキテクチャ

(RTスレッド、CC BY-SA 4.0)

RT-Thread Smartカーネルは、プラットフォームのコア機能を備え、カスタマイズをサポートします。RT-Thread Smartユーザーアプリケーション環境は、POSIXインターフェース呼び出しとCランタイムサポートを提供するためにmusl libcを使用します。また、SConsやAutotools、Makefile、CMakeなどのビルドツール、そしてRT-Threadのすぐに使えるオンラインパッケージ(執筆時点で342種類以上)など、オリジナルのRT-Threadエコシステムを継承しています。さらに、wget/cURL、BusyBox、OpenSSL、Simple DirectMedia LayerなどのLinuxアプリケーションをプラットフォームに移植することも可能です。

圧縮されたRT-Thread Smartカーネルはわずか217KBで、ルートファイルシステムは127KBです。約2MBのストレージを占有します。ファイルシステム、ネットワークプロトコルスタック、マルチメディア機能のフルサポートが含まれています。RT-Threadの起動時間はわずか3~5秒で、他のコンポーネントが動作していない場合、RT-Thread Smartの起動と準備には500ミリ秒未満しかかかりません。

統合されたPersimmonユーザーインターフェース(UI)コンポーネントのおかげで、RT-Thread Smartは電源投入からUIの起動まで約1秒しかかかりません。つまり、非常に軽量で高速なシステムです。もちろん、「リアルタイム」とは起動時間ではなく、システムの経時的な一貫性を指します。RT-Threadではリアルタイム性能が最優先事項であり、割り込みレイテンシは1μs未満です。これにより、厳しいリアルタイム要件を持つほとんどのシナリオのニーズを満たします。

RT-Thread SmartとRT-Thread

RT-Thread SmartとRT-Threadの違いについて疑問に思われるかもしれません。簡単に言うと、RT-Thread SmartはRT-Thread RTOSをベースにしたオペレーティングシステムですが、ユーザー空間処理が統合されています。RT-Smartのカーネルは基本的にRT-Thread RTOSであり、仮想アドレス上で動作し、プロセス管理、プロセス間通信(IPC)メカニズム、仮想メモリ/アドレス空間管理、ELFローダーなどが追加されています。これらの機能はすべてRT-Thread RTOS内に実装されています。これらのコンポーネントを無効にすると、RT-SmartはRT-Thread RTOSに戻ります。

比較すると次のようになります。

<一部表示されない場合は左右にスワイプしてください>


RTスレッド

RTスレッドスマート

サポートされているチップ

Cortex-M/R、RISC-V RV32IMAC(および類似品)、Cortex-A MPU

Cortex-AなどのMMU搭載MPU

コンピレーション

カーネルとアプリケーションの両方が 1 つのイメージにコンパイルされます。

カーネルとアプリケーションは別々にコンパイルして実行できます。

ストレージ

線形アドレス空間 (MMU を使用) でも物理アドレスを使用した仮想アドレス指定。

カーネル サイズが 1 GB を超える 32 ビット オペレーティング システムでは、完全な 4 GB アドレス空間を持つユーザー空間プロセスは互いに分離されており、周辺機器ドライバーは仮想アドレスを介して周辺機器にアクセスする必要があります。

ランタイムエラー

1 つのアプリケーションに障害が発生すると、システム全体がクラッシュします。

アプリケーションに障害が発生しても、カーネルやその他のプロセスの実行には影響しません。

動作モード

マルチスレッドモデル

マルチプロセス モデル (プロセス内ではマルチスレッドがサポートされ、カーネル スレッドはカーネルによってサポートされます)。

ユーザーモデル

シングルユーザーモデル

シングルユーザーモデル

API

RTスレッドAPI、POSIX PSE52

RTスレッドAPI(カーネルモードとユーザーモード)、および完全なPOSIX API

リアルタイム

プリエンプティブハードリアルタイムシステム

プリエンプティブハードリアルタイムシステム

リソースの使用

とても小さい

比較的小さい

デバッグ

通常、エミュレータのデバッグが必要になります。

GDB デバッグをサポートします。エミュレータは必要ありません。


RT-Thread RTOS は非常にコンパクトで、すべてのアプリケーションとサブシステムがイメージにコンパイルされ、マルチスレッド アプリケーションが同じアドレス空間で実行され、共有されます。

RT-Thread Smartはスタンドアロンです。システムとアプリケーションは別々にコンパイルされ、実行されます。アプリケーションは完全に分離されたアドレス空間を持ちます。また、RT-Threadの優れたリアルタイム性能を継承しながら、POSIX環境の特性も備えています。

同様に、これらはすべてRT-Thread APIと互換性があります。RT-Thread RTOSのアプリケーションは、RT-Thread Smartにスムーズに移植できます。

組み込みオープンソース

RT-Thread SmartはGitHubで公開されているオープンソースプロジェクトです。コードとドキュメントをダウンロードして試用し、コメントやフィードバックを送信して、より多くのオープンソース支持者に広めることができます。組み込みシステムはユーザーのものであり、多くの組み込み開発者が利用可能な組み込みシステムを見つけるのに苦労しています。

開発者の皆様は、RT-Thread Smart の改善にご協力ください。RT-Thread プロジェクトが発展を続ける中で、IoT とエッジコンピューティングのための刺激的なオープンソースの世界を築き上げていきたいと考えています。